Kenneth Graunke
bdc1269eb2
iris: Fix failed to compile TCS message
2019-02-21 10:26:10 -08:00
Kenneth Graunke
fbf3124771
iris: Rework tiling/modifiers handling
...
We were being very picky about things being Y tiled. But, not
everything can be - for example, > 16382 surfaces on SKL GT1-3
have to fall back to linear.
Instead, give ISL options and let it pick.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
761a5fb36a
iris: fix conditional compute, don't stomp predicate for pipelined queries
2019-02-21 10:26:10 -08:00
Kenneth Graunke
40b12c103c
iris: check query first
...
this lets us avoid the predicate bit in more cases, which is nice
2019-02-21 10:26:10 -08:00
Kenneth Graunke
0c3ea03e4b
iris: for BLORP, only use the predicate enable bit when USE_BIT
2019-02-21 10:26:10 -08:00
Dave Airlie
7bbf3ff4a9
iris: add conditional render support
2019-02-21 10:26:10 -08:00
Kenneth Graunke
dbe198d6ba
iris: drop key_size_for_cache
...
dead since my program cache API rework. we could still use it for one
function, but it's so trivial to pass the size, that it's probably not
worth the extra code
2019-02-21 10:26:10 -08:00
Dave Airlie
e4115eaca0
iris: iris add load register reg32/64
...
These will be needed for broadwell and conditional render
2019-02-21 10:26:10 -08:00
Dave Airlie
311a1b3198
iris: execute compute related query on compute batch.
...
This only happens for the compute invocations query.
2019-02-21 10:26:10 -08:00
Dave Airlie
00645ea01c
iris: fix cube texture view
2019-02-21 10:26:10 -08:00
Kenneth Graunke
39d1056d10
iris: fix some SO overflow query bugs and tidy the code a bit
2019-02-21 10:26:10 -08:00
Dave Airlie
527e5bcdc7
iris: add initial transform feedback overflow query paths (V3)
...
v2: fix cpu overflow calc
v3: use a struct
2019-02-21 10:26:10 -08:00
Kenneth Graunke
0ded23a552
iris: actually flush for storage images
2019-02-21 10:26:10 -08:00
Kenneth Graunke
69e97670bc
iris: add an extra BT assert from Chris Wilson
2019-02-21 10:26:10 -08:00
Kenneth Graunke
4312784674
iris: add assertions about binding table starts
2019-02-21 10:26:10 -08:00
Kenneth Graunke
240615695d
iris: drop pull constant binding table entry
...
nothing uses this
2019-02-21 10:26:10 -08:00
Kenneth Graunke
10d04cdaa4
iris: Use program's num textures not the state tracker's bound
...
the state tracker might bind more textures than the program is using.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
855ff47d36
iris: Enable precompiles
2019-02-21 10:26:10 -08:00
Kenneth Graunke
ed4ffb9715
iris: rework program cache interface
...
This exposes iris_upload_shader() without having to bind it, which will
be useful for precompiles. It also lets us examine the old programs and
flag dirty bits at a higher level, rather than cramming all that
knowledge into the cache layer.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
701a6b6006
iris: Use wrappers for create_xs_state rather than a switch statement
2019-02-21 10:26:10 -08:00
Kenneth Graunke
e628095b9a
iris: fix comment location
2019-02-21 10:26:10 -08:00
Kenneth Graunke
e5df8913e1
iris: export iris_upload_shader
2019-02-21 10:26:10 -08:00
Kenneth Graunke
d525b3dfad
iris: fix prototype warning
2019-02-21 10:26:10 -08:00
Kenneth Graunke
84a8c63527
iris: Re-pin even if nothing is dirty
2019-02-21 10:26:10 -08:00
Kenneth Graunke
415ede346d
iris: Flush for history at various moments
...
When we blit, transfer, or copy_resource to a buffer, we need to flush
to ensure any stale data for that buffer is invalidated in the caches.
bind_history will inform us which caches need to be flushed.
Also, for any push constant buffers, we need to flag those dirty so
that we re-emit 3DSTATE_CONSTANT_*, causing the data to be re-pushed.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
c8579e708e
iris: add iris_flush_and_dirty_for_history
2019-02-21 10:26:10 -08:00
Kenneth Graunke
d169747a3e
iris: Track a binding history for buffer resources
...
This will let us know what caches to flush / state to dirty when
altering the contents of a buffer.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
f49f506b13
iris: drop long dead XXX comment
2019-02-21 10:26:10 -08:00
Kenneth Graunke
5dbd6df9f7
iris: Do the 48-bit vertex buffer address invalidation workaround
2019-02-21 10:26:10 -08:00
Kenneth Graunke
1b1ea23766
iris: Fix VIEWPORT/LAYER in stream output info
...
Fixes glsl-1.50-transform-feedback-builtins and
ext_transform_feedback-builtin-varyings gl_PointSize
2019-02-21 10:26:10 -08:00
Kenneth Graunke
c5b22441f1
iris: Fix buffer -> buffer copy_region
...
Size can be too large for a surf, blorp_buffer_copy chops things up
into segments we can actually handle
Fixes map_buffer_range_test and copy_buffer_coherency
2019-02-21 10:26:10 -08:00
Kenneth Graunke
beb2d5e065
iris: Lie about indirects
...
fixes interpolateAt tests
2019-02-21 10:26:10 -08:00
Kenneth Graunke
b9ccb00e2c
iris: Enable ctx->Const.UseSTD430AsDefaultPacking
...
hooray for obscurely named pipe caps with bizarre descriptions!
2019-02-21 10:26:10 -08:00
Kenneth Graunke
39cb10613c
iris: update comment
2019-02-21 10:26:10 -08:00
Kenneth Graunke
f9612e7682
iris: RT flush for memorybarrier with texture bit
...
PIXEL_BUFFER_BARRIER_BIT turns into PIPE_BARRIER_TEXTURE and it ought
to trigger an RT flush, according to brw_memory_barrier
2019-02-21 10:26:10 -08:00
Kenneth Graunke
2c23721397
iris: PIPE_CONTROL workarounds for GPGPU mode
2019-02-21 10:26:10 -08:00
Kenneth Graunke
f1a7392be1
iris: Put batches in an array
...
We keep re-making this array all over the place
2019-02-21 10:26:10 -08:00
Kenneth Graunke
c2a77efa71
iris: put render batch first in fence code
...
this shouldn't matter, but it will make the next refactor easier
2019-02-21 10:26:10 -08:00
Kenneth Graunke
d918c09975
iris: flush the compute batch too if border pool is redone
2019-02-21 10:26:10 -08:00
Kenneth Graunke
017b556609
iris: leave a TODO
2019-02-21 10:26:10 -08:00
Chris Wilson
f459c56be6
iris: Add fence support using drm_syncobj
2019-02-21 10:26:10 -08:00
Kenneth Graunke
db199d9d07
iris: Add wait fences to properly sync between render/compute
...
When flushing a batch due to a data dependency, we need to not only
kick off the other batch's work, but stall our execution until it
completes. Just wait on last_syncpt after flushing it.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
d69bc4ac12
iris: Hang on to the last batch's sync-point, so we can wait on it
2019-02-21 10:26:10 -08:00
Chris Wilson
fae74234d9
iris: Tag each submitted batch with a syncobj
...
(adjusted by Ken to make the signalling sync object immediately on
batch reset, rather than batch finish time. this will work better
with deferred flushes...)
2019-02-21 10:26:10 -08:00
Kenneth Graunke
3e332af611
iris: Drop vestiges of throttling code
2019-02-21 10:26:10 -08:00
Chris Wilson
54347c078e
iris: Merge two walks of the exec_bos list
2019-02-21 10:26:10 -08:00
Kenneth Graunke
3455f57575
iris: replace vestiges of fence fds with newer exec_fence API
...
patch by me and Chris Wilson
2019-02-21 10:26:10 -08:00
Kenneth Graunke
11da219be9
iris: Avoid synchronizing due to the workaround BO
2019-02-21 10:26:10 -08:00
Kenneth Graunke
30d7bebc8a
iris: Avoid cross-batch synchronization on read/reads
...
This avoids flushing batches just because e.g. both are reading the same
dynamic state streaming buffer, or shader assembly buffer.
2019-02-21 10:26:10 -08:00
Kenneth Graunke
b21e916a62
iris: Combine iris_use_pinned_bo and add_exec_bo
2019-02-21 10:26:10 -08:00