mesa: reduce the size of gl_program
authorMarek Olšák <marek.olsak@amd.com>
Thu, 16 Nov 2017 00:10:27 +0000 (01:10 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 13 Feb 2018 00:00:45 +0000 (01:00 +0100)
gl_program: 1456 -> 976 bytes

Reviewed-by: Brian Paul <brianp@vmware.com>
src/compiler/glsl/link_uniforms.cpp
src/mesa/main/mtypes.h

index 15813cb0aedd82297d612556e15747ba272a032f..a73dcd472754e97a1bac56c3e38dbe7192d02660 100644 (file)
@@ -1423,11 +1423,10 @@ link_assign_uniform_storage(struct gl_context *ctx,
          }
       }
 
-      STATIC_ASSERT(sizeof(shader->Program->sh.SamplerTargets) ==
-                    sizeof(parcel.targets));
-      memcpy(shader->Program->sh.SamplerTargets,
-             parcel.targets,
-             sizeof(shader->Program->sh.SamplerTargets));
+      STATIC_ASSERT(ARRAY_SIZE(shader->Program->sh.SamplerTargets) ==
+                    ARRAY_SIZE(parcel.targets));
+      for (unsigned j = 0; j < ARRAY_SIZE(parcel.targets); j++)
+         shader->Program->sh.SamplerTargets[j] = parcel.targets[j];
    }
 
 #ifndef NDEBUG
index f829fa3ff05295f06effd4e790677389a813559c..c80d3b950caee81f7b9cbf44bc1efbdf916b05a2 100644 (file)
@@ -2168,7 +2168,7 @@ struct gl_program
    /** Subset of OutputsWritten outputs written with non-zero index. */
    GLbitfield64 SecondaryOutputsWritten;
    /** TEXTURE_x_BIT bitmask */
-   GLbitfield TexturesUsed[MAX_COMBINED_TEXTURE_IMAGE_UNITS];
+   GLbitfield16 TexturesUsed[MAX_COMBINED_TEXTURE_IMAGE_UNITS];
    /** Bitfield of which samplers are used */
    GLbitfield SamplersUsed;
    /** Texture units used for shadow sampling. */
@@ -2246,7 +2246,7 @@ struct gl_program
          /** Which texture target is being sampled
           * (TEXTURE_1D/2D/3D/etc_INDEX)
           */
-         gl_texture_index SamplerTargets[MAX_SAMPLERS];
+         GLubyte SamplerTargets[MAX_SAMPLERS];
 
          /**
           * Number of samplers declared with the bindless_sampler layout