radv: enable conditional discard optimisation on radv.
authorDave Airlie <airlied@redhat.com>
Wed, 2 Nov 2016 01:23:11 +0000 (01:23 +0000)
committerDave Airlie <airlied@redhat.com>
Wed, 9 Nov 2016 19:46:49 +0000 (05:46 +1000)
This fixes a bunch of GPU hangs introduced in some CTS
tests like
dEQP-VK.memory.pipeline_barrier.host_write_uniform_buffer.65536

It works around an issue seen in the LLVM backend, but
also makes the radv code work more like the radeonsi stack.

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_pipeline.c

index fe1eac8743d2dc77c51fe45b96239f0c8715cc2c..bb975311c077d5506c3924415050463c18ead8fe 100644 (file)
@@ -144,6 +144,7 @@ radv_optimize_nir(struct nir_shader *shader)
                 NIR_PASS(progress, shader, nir_opt_algebraic);
                 NIR_PASS(progress, shader, nir_opt_constant_folding);
                 NIR_PASS(progress, shader, nir_opt_undef);
+                NIR_PASS(progress, shader, nir_opt_conditional_discard);
         } while (progress);
 }