nir: move gls_type_get_{sampler,image}_count()
authorRob Clark <robdclark@gmail.com>
Tue, 19 Mar 2019 19:54:32 +0000 (15:54 -0400)
committerRob Clark <robdclark@gmail.com>
Thu, 21 Mar 2019 13:13:05 +0000 (09:13 -0400)
I need at least the sampler variant in ir3..

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/nir/nir_gather_info.c
src/compiler/nir_types.cpp
src/compiler/nir_types.h

index f2a209028cc0c0f276856af97c1bf8312c5ec81e..36d0d23bda491856e56204aba5f3acfc7862ff22 100644 (file)
@@ -332,48 +332,6 @@ gather_info_block(nir_block *block, nir_shader *shader, void *dead_ctx)
    }
 }
 
-static unsigned
-glsl_type_get_sampler_count(const struct glsl_type *type)
-{
-   if (glsl_type_is_array(type)) {
-      return (glsl_get_aoa_size(type) *
-              glsl_type_get_sampler_count(glsl_without_array(type)));
-   }
-
-   if (glsl_type_is_struct_or_ifc(type)) {
-      unsigned count = 0;
-      for (int i = 0; i < glsl_get_length(type); i++)
-         count += glsl_type_get_sampler_count(glsl_get_struct_field(type, i));
-      return count;
-   }
-
-   if (glsl_type_is_sampler(type))
-      return 1;
-
-   return 0;
-}
-
-static unsigned
-glsl_type_get_image_count(const struct glsl_type *type)
-{
-   if (glsl_type_is_array(type)) {
-      return (glsl_get_aoa_size(type) *
-              glsl_type_get_image_count(glsl_without_array(type)));
-   }
-
-   if (glsl_type_is_struct_or_ifc(type)) {
-      unsigned count = 0;
-      for (int i = 0; i < glsl_get_length(type); i++)
-         count += glsl_type_get_image_count(glsl_get_struct_field(type, i));
-      return count;
-   }
-
-   if (glsl_type_is_image(type))
-      return 1;
-
-   return 0;
-}
-
 void
 nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
 {
index d3e5520cd984008ecfc77ec7fcd72aba8f692ecf..aff575c60b0b2f42cd8c668c46c52a19d93c06a4 100644 (file)
@@ -679,3 +679,45 @@ glsl_get_cl_alignment(const struct glsl_type *type)
 {
    return type->cl_alignment();
 }
+
+unsigned
+glsl_type_get_sampler_count(const struct glsl_type *type)
+{
+   if (glsl_type_is_array(type)) {
+      return (glsl_get_aoa_size(type) *
+              glsl_type_get_sampler_count(glsl_without_array(type)));
+   }
+
+   if (glsl_type_is_struct_or_ifc(type)) {
+      unsigned count = 0;
+      for (int i = 0; i < glsl_get_length(type); i++)
+         count += glsl_type_get_sampler_count(glsl_get_struct_field(type, i));
+      return count;
+   }
+
+   if (glsl_type_is_sampler(type))
+      return 1;
+
+   return 0;
+}
+
+unsigned
+glsl_type_get_image_count(const struct glsl_type *type)
+{
+   if (glsl_type_is_array(type)) {
+      return (glsl_get_aoa_size(type) *
+              glsl_type_get_image_count(glsl_without_array(type)));
+   }
+
+   if (glsl_type_is_struct_or_ifc(type)) {
+      unsigned count = 0;
+      for (int i = 0; i < glsl_get_length(type); i++)
+         count += glsl_type_get_image_count(glsl_get_struct_field(type, i));
+      return count;
+   }
+
+   if (glsl_type_is_image(type))
+      return 1;
+
+   return 0;
+}
index eeba445a3ba277b9098d614c0339de03f61f1fba..7bcf4c08f4c0bfcdc5b498ae1be799e774d1923f 100644 (file)
@@ -197,6 +197,9 @@ void glsl_get_natural_size_align_bytes(const struct glsl_type *type,
 
 const struct glsl_type *glsl_atomic_uint_type(void);
 
+unsigned glsl_type_get_sampler_count(const struct glsl_type *type);
+unsigned glsl_type_get_image_count(const struct glsl_type *type);
+
 #ifdef __cplusplus
 }
 #endif