Kenneth Graunke
90274bd48f
iris: fix alpha channel for RGB BC1 formats
2019-02-21 10:26:10 -08:00
Jason Ekstrand
47d4ea1a16
iris: Allocate buffer resources separately
...
(cleaned up by Ken - make sure a bunch of things were more obviously
not using res->surf, do allow checking res->surf.tiling == LINEAR,
drop format cpp checks that aren't needed, drop memzone handling for
images, assume buffers / non-buffers in a few places...)
2019-02-21 10:26:10 -08:00
Kenneth Graunke
585c95f8cc
iris: Don't bother considering if the underlying surface is a cube
...
Dave fixed it to consider whether the sampler view is a cube.
With that, there's no point (possibly harm) in looking if the original
resource was a cube...if it's an array view, we don't want to treat it
as a cube anymore...
2019-02-21 10:26:10 -08:00
Kenneth Graunke
773adeb9e9
iris: move some non-buffer case code in a bit
2019-02-21 10:26:10 -08:00
Kenneth Graunke
2c0f001295
iris: Stop leaking iris_uncompiled_shaders like mad
...
Now shader-db actually executes. We still need a plan for culling
dead iris_compiled_shaders...
2019-02-21 10:26:10 -08:00
Kenneth Graunke
68d531d7d7
iris: Destroy the bufmgr
...
Plugs a 12360 byte leak
2019-02-21 10:26:10 -08:00
Kenneth Graunke
7c29c3d01e
iris: Fix IRIS_MEMZONE_COUNT to exclude the border color pool
...
This is supposed to exclude single address zones. We were getting
too many VMA allocators but failing to set them up, which worked out
because we also forgot to destroy them...
2019-02-21 10:26:10 -08:00
Kenneth Graunke
6cb211121b
iris: Unref unbound_tex resource
...
Plugs a 12536 byte leak
2019-02-21 10:26:10 -08:00
Kenneth Graunke
f73fdb4001
iris: Destroy the border color pool
...
This plugs a 12224 byte leak
2019-02-21 10:26:10 -08:00
Kenneth Graunke
3d55e9a2aa
iris: Destroy transfer helper on screen teardown
...
Plugs a 16 byte leak
2019-02-21 10:26:10 -08:00
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