Dave Airlie
7bbf3ff4a9
iris: add conditional render support
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
00645ea01c
iris: fix cube texture view
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
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
84a8c63527
iris: Re-pin even if nothing is dirty
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
5dbd6df9f7
iris: Do the 48-bit vertex buffer address invalidation workaround
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
1b69b14c2a
iris: Fix SLM
...
Now that Jason has set up the L3 we can do this. Also, my assert was
useless because we hadn't set up the field in the first place. Oops.
2019-02-21 10:26:10 -08:00
Jason Ekstrand
f9c5e277ac
iris: Don't set constant read lengths at upload time
...
They're set in derived_data as part of store_cs_state
2019-02-21 10:26:10 -08:00
Jason Ekstrand
a90a0e22cb
iris: Configure the L3$ on the compute context
2019-02-21 10:26:10 -08:00
Kenneth Graunke
25a41b1aef
iris: properly pin stencil buffers
2019-02-21 10:26:10 -08:00
Kenneth Graunke
da5590496e
iris: more todo notes
2019-02-21 10:26:10 -08:00
Kenneth Graunke
5207a5f5d5
iris: Fix independent alpha blending.
...
independent_blend_enable means per-RT blending, not RGB != A
2019-02-21 10:26:10 -08:00
Kenneth Graunke
b2c04aa3a0
iris: Fix SourceAlphaBlendFactor
2019-02-21 10:26:10 -08:00
Kenneth Graunke
983e2ae7d2
iris: only clip lower if there's something to clip against
2019-02-21 10:26:10 -08:00
Kenneth Graunke
2ddbc1025e
iris: don't forget to upload CS consts
2019-02-21 10:26:10 -08:00
Kenneth Graunke
6d19fe376d
iris: enable push constants if we have sysvals but no uniforms
2019-02-21 10:26:09 -08:00
Kenneth Graunke
50743eb748
iris: fix num clip plane consts
2019-02-21 10:26:09 -08:00
Kenneth Graunke
a98634a28f
iris: actually upload clip planes.
2019-02-21 10:26:09 -08:00
Kenneth Graunke
c60ce3f4fd
iris: bypass params and do it ourselves
...
the backend keeps dead code eliminating them all, so we can't do that,
plus we don't want to because params[] is lame
2019-02-21 10:26:09 -08:00
Kenneth Graunke
2b0a2915dc
iris: hook up key stuff for clip plane lowering
2019-02-21 10:26:09 -08:00
Kenneth Graunke
80c856cbee
iris: only bother with params if there are any...
2019-02-21 10:26:09 -08:00
Kenneth Graunke
d3e8ff143d
iris: add param domain defines
2019-02-21 10:26:09 -08:00
Kenneth Graunke
ed08f022f0
iris: Defer cbuf0 upload to draw time
2019-02-21 10:26:09 -08:00
Kenneth Graunke
2727a942a4
iris: partial set_query_active_state
...
used to avoid OQ during clears for example
fixes occlusion_query_meta_no_fragments
2019-02-21 10:26:09 -08:00
Kenneth Graunke
64af1d9248
iris: Fix multiple RTs with non-independent blending
...
rt[i] isn't filled out in this case, so we have to use rt[0]
2019-02-21 10:26:09 -08:00
Kenneth Graunke
e5d84bbd36
iris: Fix MSAA smooth points
...
Fixes bin/ext_framebuffer_multisample-point-smooth 2 -auto -fbo
2019-02-21 10:26:09 -08:00
Kenneth Graunke
4d219b0eb3
iris: implement scratch space!
...
we borrow the approach from anv rather than i965, as it works better
with pre-baked state that needs to contain scratch BO addresses
fixes a bunch of varying packing tests
2019-02-21 10:26:09 -08:00
Kenneth Graunke
c3cc525c7a
iris: Cross-link iris_batches so they can potentially flush each other
...
This makes e.g. the render batch aware of the compute batch, so it can
ask questions like "is this BO referenced by some other batch?" and do
something about that.
2019-02-21 10:26:09 -08:00
Dave Airlie
ed016b2a0b
iris: fix crash in sparse vertex array
...
this fixes crash in array-stride piglit.
2019-02-21 10:26:09 -08:00
Kenneth Graunke
bcac11c8f1
iris: Use at least 1x1 size for null FB surface state.
...
Otherwise we get 0 - 1 = 0xffffffff and fail to pack SURFACE_STATE.
Fixes some object namespace pollution gltexsubimage2d tests
2019-02-21 10:26:09 -08:00
Kenneth Graunke
3e6aaa1ba5
iris: Disable a PIPE_CONTROL workaround on Icelake
2019-02-21 10:26:09 -08:00
Kenneth Graunke
317ba8796f
iris: allow binding a null vertex buffer
...
PBO upload apparently does this...
2019-02-21 10:26:09 -08:00
Kenneth Graunke
aef1ba5ce4
iris: fix overhead regression from "don't stomp each other's dirty bits"
...
The change from dirty = 0ull to dirty &= ~NOT_MY_BITS broke the "nothing
to do? skip it!" optimization. thanks to Chris for noticing this!
2019-02-21 10:26:09 -08:00
Kenneth Graunke
a3e813c5af
iris: SO_DECL_LIST fix
2019-02-21 10:26:09 -08:00
Kenneth Graunke
927c4a21bd
iris: Fall back to 1x1x1 null surface if no framebuffer supplied
...
If the state tracker never gave us the framebuffer dimensions via
a set_framebuffer_state() call, just fall back to the unbound texture
null surface, which is 1x1x1. Otherwise we'd use a NULL resource
(no pun intended).
2019-02-21 10:26:09 -08:00
Kenneth Graunke
5d1a9db720
iris: Fix off by one in scissoring, empty scissors, default scissors
2019-02-21 10:26:09 -08:00
Kenneth Graunke
ba2a4207f9
iris: Clamp UBO and SSBO access to the actual BO size, for safety
2019-02-21 10:26:09 -08:00
Kenneth Graunke
a9b32f2bbf
iris: Fix texture buffer / image buffer sizes.
...
Also fix image buffers with offsets.
2019-02-21 10:26:09 -08:00
Kenneth Graunke
d1f8947792
iris: fix SF_CLIP_VIEWPORT array indexing with multiple VPs
...
fixes bunches of viewport stuffs
2019-02-21 10:26:09 -08:00
Kenneth Graunke
d98967d936
iris: fix UBOs with bindings that have an offset
2019-02-21 10:26:09 -08:00
Kenneth Graunke
97125e9bb3
iris: fix SBA flushing by refactoring code
2019-02-21 10:26:09 -08:00
Kenneth Graunke
8fa99481e7
iris: do PIPELINE_SELECT for render engine, add flushes, GLK hacks
2019-02-21 10:26:09 -08:00
Kenneth Graunke
f8796079da
iris: better dirty checking
2019-02-21 10:26:09 -08:00