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

Author: Timur Kristóf <[email protected]>
Date:   Mon Jul 10 11:06:02 2023 +0200

radeonsi: Move si_select_hw_stage to si_shader_info.

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

---

 src/gallium/drivers/radeonsi/si_shader_aco.c      | 32 ----------------------
 src/gallium/drivers/radeonsi/si_shader_info.c     | 33 +++++++++++++++++++++++
 src/gallium/drivers/radeonsi/si_shader_internal.h |  3 +++
 3 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader_aco.c 
b/src/gallium/drivers/radeonsi/si_shader_aco.c
index 4eadb0eecfc..89965a98a03 100644
--- a/src/gallium/drivers/radeonsi/si_shader_aco.c
+++ b/src/gallium/drivers/radeonsi/si_shader_aco.c
@@ -58,38 +58,6 @@ si_fill_aco_options(struct si_shader *shader, struct 
aco_compiler_options *optio
    options->debug.private_data = debug;
 }
 
-static enum ac_hw_stage
-si_select_hw_stage(const gl_shader_stage stage, const union si_shader_key 
*const key,
-                   const enum amd_gfx_level gfx_level)
-{
-   switch (stage) {
-   case MESA_SHADER_VERTEX:
-   case MESA_SHADER_TESS_EVAL:
-      if (key->ge.as_ngg)
-         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-      else if (key->ge.as_es)
-         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
-      else if (key->ge.as_ls)
-         return gfx_level >= GFX9 ? AC_HW_HULL_SHADER : AC_HW_LOCAL_SHADER;
-      else
-         return AC_HW_VERTEX_SHADER;
-   case MESA_SHADER_TESS_CTRL:
-      return AC_HW_HULL_SHADER;
-   case MESA_SHADER_GEOMETRY:
-      if (key->ge.as_ngg)
-         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
-      else
-         return AC_HW_LEGACY_GEOMETRY_SHADER;
-   case MESA_SHADER_FRAGMENT:
-      return AC_HW_PIXEL_SHADER;
-   case MESA_SHADER_COMPUTE:
-   case MESA_SHADER_KERNEL:
-      return AC_HW_COMPUTE_SHADER;
-   default:
-      unreachable("Unsupported HW stage");
-   }
-}
-
 static void
 si_fill_aco_shader_info(struct si_shader *shader, struct aco_shader_info *info)
 {
diff --git a/src/gallium/drivers/radeonsi/si_shader_info.c 
b/src/gallium/drivers/radeonsi/si_shader_info.c
index ca133d4a47c..cebb57db58e 100644
--- a/src/gallium/drivers/radeonsi/si_shader_info.c
+++ b/src/gallium/drivers/radeonsi/si_shader_info.c
@@ -5,6 +5,7 @@
  */
 
 #include "si_pipe.h"
+#include "si_shader_internal.h"
 #include "util/mesa-sha1.h"
 #include "util/u_prim.h"
 #include "sid.h"
@@ -826,3 +827,35 @@ void si_nir_scan_shader(struct si_screen *sscreen, const 
struct nir_shader *nir,
       }
    }
 }
+
+enum ac_hw_stage
+si_select_hw_stage(const gl_shader_stage stage, const union si_shader_key 
*const key,
+                   const enum amd_gfx_level gfx_level)
+{
+   switch (stage) {
+   case MESA_SHADER_VERTEX:
+   case MESA_SHADER_TESS_EVAL:
+      if (key->ge.as_ngg)
+         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+      else if (key->ge.as_es)
+         return gfx_level >= GFX9 ? AC_HW_LEGACY_GEOMETRY_SHADER : 
AC_HW_EXPORT_SHADER;
+      else if (key->ge.as_ls)
+         return gfx_level >= GFX9 ? AC_HW_HULL_SHADER : AC_HW_LOCAL_SHADER;
+      else
+         return AC_HW_VERTEX_SHADER;
+   case MESA_SHADER_TESS_CTRL:
+      return AC_HW_HULL_SHADER;
+   case MESA_SHADER_GEOMETRY:
+      if (key->ge.as_ngg)
+         return AC_HW_NEXT_GEN_GEOMETRY_SHADER;
+      else
+         return AC_HW_LEGACY_GEOMETRY_SHADER;
+   case MESA_SHADER_FRAGMENT:
+      return AC_HW_PIXEL_SHADER;
+   case MESA_SHADER_COMPUTE:
+   case MESA_SHADER_KERNEL:
+      return AC_HW_COMPUTE_SHADER;
+   default:
+      unreachable("Unsupported HW stage");
+   }
+}
diff --git a/src/gallium/drivers/radeonsi/si_shader_internal.h 
b/src/gallium/drivers/radeonsi/si_shader_internal.h
index e404f46eb08..4974405c790 100644
--- a/src/gallium/drivers/radeonsi/si_shader_internal.h
+++ b/src/gallium/drivers/radeonsi/si_shader_internal.h
@@ -7,6 +7,7 @@
 #ifndef SI_SHADER_PRIVATE_H
 #define SI_SHADER_PRIVATE_H
 
+#include "ac_hw_stage.h"
 #include "ac_shader_abi.h"
 #include "ac_llvm_build.h"
 #include "si_shader.h"
@@ -128,6 +129,8 @@ void si_get_tcs_epilog_key(struct si_shader *shader, union 
si_shader_part_key *k
 bool si_need_ps_prolog(const union si_shader_part_key *key);
 void si_get_ps_prolog_key(struct si_shader *shader, union si_shader_part_key 
*key);
 void si_get_ps_epilog_key(struct si_shader *shader, union si_shader_part_key 
*key);
+enum ac_hw_stage si_select_hw_stage(const gl_shader_stage stage, const union 
si_shader_key *const key,
+                                    const enum amd_gfx_level gfx_level);
 
 /* gfx10_shader_ngg.c */
 unsigned gfx10_ngg_get_vertices_per_prim(struct si_shader *shader);

Reply via email to