nv50,nvc0: serialize between before/after using a zeta surface as color
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 8 Jan 2021 06:37:35 +0000 (01:37 -0500)
committerMarge Bot <eric+marge@anholt.net>
Mon, 11 Jan 2021 20:06:44 +0000 (20:06 +0000)
commitec668e2fd142db27dfa9ea1084005db328889721
tree6ba419f463479e7422d2aad937486859a5bc918a
parentf763d0f1952151e0fcae596e85600e7f391ea442
nv50,nvc0: serialize between before/after using a zeta surface as color

This happens during "3d" blit operations, where we must reinterpret it
as color in order to support stencil/depth masking. However the hardware
isn't necessarily amused by this, esp when multiple draws are queued up.
Throw in serialize calls in order to get it to flush out previous draws.

This was noticeable in the test
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil,
although 3d blit operation had to be forced on nvc0 where it's much
rarer.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8396>
src/gallium/drivers/nouveau/nv50/nv50_surface.c
src/gallium/drivers/nouveau/nvc0/nvc0_surface.c