anv: correctly predicate ray tracing
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 25 Nov 2022 11:05:07 +0000 (13:05 +0200)
committerEric Engestrom <eric@engestrom.ch>
Wed, 14 Dec 2022 20:47:00 +0000 (20:47 +0000)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 7479fe6ae093 ("anv: Implement vkCmdTraceRays and vkCmdTraceRaysIndirect")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20011>
(cherry picked from commit af3f7948d149faded1b4f24ec5e6ae03001e7cfb)

.pick_status.json
src/intel/vulkan/genX_cmd_buffer.c

index 929bd47..08b74ca 100644 (file)
         "description": "anv: correctly predicate ray tracing",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "7479fe6ae0935fb8f9e3c64c16c7e6855481d1da"
     },
index 1aa997f..b59f57b 100644 (file)
@@ -5824,7 +5824,7 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer,
 
    anv_batch_emit(&cmd_buffer->batch, GENX(COMPUTE_WALKER), cw) {
       cw.IndirectParameterEnable        = is_indirect;
-      cw.PredicateEnable                = false;
+      cw.PredicateEnable                = cmd_buffer->state.conditional_render_enabled;
       cw.SIMDSize                       = dispatch.simd_size / 16;
       cw.LocalXMaximum                  = (1 << local_size_log2[0]) - 1;
       cw.LocalYMaximum                  = (1 << local_size_log2[1]) - 1;