Module: Mesa
Branch: main
Commit: 7e00ec1c6f45b34844c8a49493910ad256a59bfd
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e00ec1c6f45b34844c8a49493910ad256a59bfd

Author: Samuel Pitoiset <[email protected]>
Date:   Thu Sep 21 14:01:34 2023 +0200

radv: declare shader_query_state for mesh/task shaders

This will control whether mesh/task queries is enabled.

Signed-off-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25331>

---

 src/amd/vulkan/radv_shader_args.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_shader_args.c 
b/src/amd/vulkan/radv_shader_args.c
index 81fe6ce0729..e754123a8c9 100644
--- a/src/amd/vulkan/radv_shader_args.c
+++ b/src/amd/vulkan/radv_shader_args.c
@@ -393,7 +393,9 @@ declare_shader_args(const struct radv_device *device, const 
struct radv_pipeline
 {
    const enum amd_gfx_level gfx_level = 
device->physical_device->rad_info.gfx_level;
    bool has_shader_query = info->has_prim_query || info->has_xfb_query ||
-                           (stage == MESA_SHADER_GEOMETRY && 
info->gs.has_pipeline_stat_query);
+                           (stage == MESA_SHADER_GEOMETRY && 
info->gs.has_pipeline_stat_query) ||
+                           (stage == MESA_SHADER_MESH && info->ms.has_query) ||
+                           (stage == MESA_SHADER_TASK && info->cs.has_query);
    bool has_ngg_provoking_vtx =
       (stage == MESA_SHADER_VERTEX || stage == MESA_SHADER_GEOMETRY) && 
key->dynamic_provoking_vtx_mode;
 
@@ -451,6 +453,10 @@ declare_shader_args(const struct radv_device *device, 
const struct radv_pipeline
 
       if (stage == MESA_SHADER_TASK) {
          add_ud_arg(args, 1, AC_ARG_INT, &args->ac.task_ring_entry, 
AC_UD_TASK_RING_ENTRY);
+
+         if (has_shader_query) {
+            add_ud_arg(args, 1, AC_ARG_INT, &args->shader_query_state, 
AC_UD_SHADER_QUERY_STATE);
+         }
       }
 
       for (int i = 0; i < 3; i++) {

Reply via email to