glsl: get rid of values_for_type()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 20 Apr 2017 17:02:28 +0000 (19:02 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 21 Apr 2017 08:08:32 +0000 (10:08 +0200)
This function is actually a wrapper for component_slots()
and it always returns 1 (or N) for samplers. Since
component_slots() now return 1 for samplers, it can go.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/compiler/glsl/link_uniforms.cpp
src/compiler/glsl/linker.h
src/compiler/glsl/shader_cache.cpp

index c29fbed743590d1f05183f49e0954c10fd5635d8..925699641e587579f1e6b67e9120438e589574ac 100644 (file)
  */
 #define UNMAPPED_UNIFORM_LOC ~0u
 
-/**
- * Count the backing storage requirements for a type
- */
-unsigned
-values_for_type(const glsl_type *type)
-{
-   if (type->is_sampler()) {
-      return 1;
-   } else if (type->is_array() && type->fields.array->is_sampler()) {
-      return type->array_size();
-   } else {
-      return type->component_slots();
-   }
-}
-
 void
 program_resource_visitor::process(const glsl_type *type, const char *name)
 {
@@ -351,7 +336,7 @@ private:
        * uniform for multiple shader targets, but in this case we want to
        * count it for each shader target.
        */
-      const unsigned values = values_for_type(type);
+      const unsigned values = type->component_slots();
       if (type->contains_subroutine()) {
          this->num_shader_subroutines += values;
       } else if (type->contains_sampler()) {
@@ -813,7 +798,7 @@ private:
       if (!this->uniforms[id].builtin &&
           !this->uniforms[id].is_shader_storage &&
           this->buffer_block_index == -1)
-         this->values += values_for_type(type);
+         this->values += type->component_slots();
    }
 
    /**
index d06f419cf6ec1607aad1d002350a8f3997a72212..dd627be5f10d42566890124d6fd5a2f64849ef54 100644 (file)
@@ -75,9 +75,6 @@ void
 validate_interstage_uniform_blocks(struct gl_shader_program *prog,
                                    gl_linked_shader **stages);
 
-unsigned
-values_for_type(const glsl_type *type);
-
 extern void
 link_assign_atomic_counter_resources(struct gl_context *ctx,
                                      struct gl_shader_program *prog);
index 738e5488ac21284b50a0c209d1164af453083f6b..19d69c36fc469698fda94f4b62f6bfb8e7b18e99 100644 (file)
@@ -599,7 +599,7 @@ write_uniforms(struct blob *metadata, struct gl_shader_program *prog)
           !prog->data->UniformStorage[i].is_shader_storage &&
           prog->data->UniformStorage[i].block_index == -1) {
          unsigned vec_size =
-            values_for_type(prog->data->UniformStorage[i].type) *
+            prog->data->UniformStorage[i].type->component_slots() *
             MAX2(prog->data->UniformStorage[i].array_elements, 1);
          blob_write_bytes(metadata, prog->data->UniformStorage[i].storage,
                           sizeof(union gl_constant_value) * vec_size);
@@ -659,7 +659,7 @@ read_uniforms(struct blob_reader *metadata, struct gl_shader_program *prog)
           !prog->data->UniformStorage[i].is_shader_storage &&
           prog->data->UniformStorage[i].block_index == -1) {
          unsigned vec_size =
-            values_for_type(prog->data->UniformStorage[i].type) *
+            prog->data->UniformStorage[i].type->component_slots() *
             MAX2(prog->data->UniformStorage[i].array_elements, 1);
          blob_copy_bytes(metadata,
                          (uint8_t *) prog->data->UniformStorage[i].storage,