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

Author: Timur Kristóf <[email protected]>
Date:   Mon Jul 10 10:36:20 2023 +0200

radv: Move radv_select_hw_stage to radv_shader_info.

Signed-off-by: Timur Kristóf <[email protected]>
Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24005>

---

 src/amd/vulkan/radv_aco_shader_info.h | 46 -----------------------------------
 src/amd/vulkan/radv_shader.h          |  2 ++
 src/amd/vulkan/radv_shader_info.c     | 46 +++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 46 deletions(-)

diff --git a/src/amd/vulkan/radv_aco_shader_info.h 
b/src/amd/vulkan/radv_aco_shader_info.h
index 8f54ccf6c48..ec7ef65034b 100644
--- a/src/amd/vulkan/radv_aco_shader_info.h
+++ b/src/amd/vulkan/radv_aco_shader_info.h
@@ -39,52 +39,6 @@ static inline void radv_aco_convert_ps_epilog_key(struct 
aco_ps_epilog_info *aco
                                                   const struct 
radv_ps_epilog_key *radv,
                                                   const struct 
radv_shader_args *radv_args);
 
-static enum ac_hw_stage
-radv_select_hw_stage(const struct radv_shader_info *const info, const enum 
amd_gfx_level gfx_level)
-{
-   switch (info->stage) {
-   case MESA_SHADER_VERTEX:
-      if (info->is_ngg)
-         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-      else if (info->vs.as_es)
-         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
-      else if (info->vs.as_ls)
-         return gfx_level >= GFX9 ? AC_HW_HULL_SHADER : AC_HW_LOCAL_SHADER;
-      else
-         return AC_HW_VERTEX_SHADER;
-   case MESA_SHADER_TESS_EVAL:
-      if (info->is_ngg)
-         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-      else if (info->tes.as_es)
-         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
-      else
-         return AC_HW_VERTEX_SHADER;
-   case MESA_SHADER_TESS_CTRL:
-      return AC_HW_HULL_SHADER;
-   case MESA_SHADER_GEOMETRY:
-      if (info->is_ngg)
-         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-      else
-         return AC_HW_LEGACY_GEOMETRY_SHADER;
-   case MESA_SHADER_MESH:
-      return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-   case MESA_SHADER_FRAGMENT:
-      return AC_HW_PIXEL_SHADER;
-   case MESA_SHADER_COMPUTE:
-   case MESA_SHADER_KERNEL:
-   case MESA_SHADER_TASK:
-   case MESA_SHADER_RAYGEN:
-   case MESA_SHADER_ANY_HIT:
-   case MESA_SHADER_CLOSEST_HIT:
-   case MESA_SHADER_MISS:
-   case MESA_SHADER_INTERSECTION:
-   case MESA_SHADER_CALLABLE:
-      return AC_HW_COMPUTE_SHADER;
-   default:
-      unreachable("Unsupported HW stage");
-   }
-}
-
 static inline void
 radv_aco_convert_shader_info(struct aco_shader_info *aco_info, const struct 
radv_shader_info *radv,
                              const struct radv_shader_args *radv_args, const 
struct radv_pipeline_key *radv_key,
diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h
index 4f63e7b8972..f3333ec7315 100644
--- a/src/amd/vulkan/radv_shader.h
+++ b/src/amd/vulkan/radv_shader.h
@@ -698,6 +698,8 @@ VkResult radv_dump_shader_stats(struct radv_device *device, 
struct radv_pipeline
 /* Returns true on success and false on failure */
 bool radv_shader_reupload(struct radv_device *device, struct radv_shader 
*shader);
 
+enum ac_hw_stage radv_select_hw_stage(const struct radv_shader_info *const 
info, const enum amd_gfx_level gfx_level);
+
 extern const struct vk_pipeline_cache_object_ops radv_shader_ops;
 
 static inline struct radv_shader *
diff --git a/src/amd/vulkan/radv_shader_info.c 
b/src/amd/vulkan/radv_shader_info.c
index ff8c99fb02f..129997b2602 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -1660,3 +1660,49 @@ radv_nir_shader_info_link(struct radv_device *device, 
const struct radv_pipeline
       }
    }
 }
+
+enum ac_hw_stage
+radv_select_hw_stage(const struct radv_shader_info *const info, const enum 
amd_gfx_level gfx_level)
+{
+   switch (info->stage) {
+   case MESA_SHADER_VERTEX:
+      if (info->is_ngg)
+         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+      else if (info->vs.as_es)
+         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
+      else if (info->vs.as_ls)
+         return gfx_level >= GFX9 ? AC_HW_HULL_SHADER : AC_HW_LOCAL_SHADER;
+      else
+         return AC_HW_VERTEX_SHADER;
+   case MESA_SHADER_TESS_EVAL:
+      if (info->is_ngg)
+         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+      else if (info->tes.as_es)
+         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
+      else
+         return AC_HW_VERTEX_SHADER;
+   case MESA_SHADER_TESS_CTRL:
+      return AC_HW_HULL_SHADER;
+   case MESA_SHADER_GEOMETRY:
+      if (info->is_ngg)
+         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+      else
+         return AC_HW_LEGACY_GEOMETRY_SHADER;
+   case MESA_SHADER_MESH:
+      return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+   case MESA_SHADER_FRAGMENT:
+      return AC_HW_PIXEL_SHADER;
+   case MESA_SHADER_COMPUTE:
+   case MESA_SHADER_KERNEL:
+   case MESA_SHADER_TASK:
+   case MESA_SHADER_RAYGEN:
+   case MESA_SHADER_ANY_HIT:
+   case MESA_SHADER_CLOSEST_HIT:
+   case MESA_SHADER_MISS:
+   case MESA_SHADER_INTERSECTION:
+   case MESA_SHADER_CALLABLE:
+      return AC_HW_COMPUTE_SHADER;
+   default:
+      unreachable("Unsupported HW stage");
+   }
+}

Reply via email to