iris: Fix write enable in pinning of depth/stencil resources
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 9 Mar 2019 09:02:06 +0000 (01:02 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 11 Mar 2019 22:04:08 +0000 (15:04 -0700)
commitd75f84cb6521c323092f50af41bce435d515a647
tree634b4708f59c61c8e58da5e0b75ab2944321be19
parent863e810a19d31cab58f4a7e579306ce1f8f2d16f
iris: Fix write enable in pinning of depth/stencil resources

We may bind new Z/S buffers (which come via the framebuffer CSO,
triggering IRIS_DIRTY_DEPTH_BUFFER), but with writes disabled.

The next draw may enable Z or S writes (which come via the ZSA CSO,
triggering IRIS_DIRTY_WM_DEPTH_STENCIL), which requires us to update
our pin to have the write flag.

So, update pinning if either dirty flag changes.  To clarify, pass
cso_zsa to the pinning function rather than pulling the random values
out of ice->state, which unfortunately have to exist for the resolve
code since iris_depth_stencil_alpha_state only exists in iris_state.c.
src/gallium/drivers/iris/iris_state.c