glsl: move some uniform linking code to new link_assign_uniform_storage()
[mesa.git] / src / compiler / glsl / linker.cpp
index 18062848e7aa8f3d278ce93f9273bfcb7da270b8..290811fd2b97ab9e0c53d2157847541f87a132fc 100644 (file)
@@ -1600,19 +1600,19 @@ link_xfb_stride_layout_qualifiers(struct gl_context *ctx,
 
    for (unsigned j = 0; j < MAX_FEEDBACK_BUFFERS; j++) {
       if (linked_shader->info.TransformFeedback.BufferStride[j]) {
-         prog->LinkedTransformFeedback.BufferStride[j] =
+         prog->TransformFeedback.BufferStride[j] =
             linked_shader->info.TransformFeedback.BufferStride[j];
 
          /* We will validate doubles at a later stage */
-         if (prog->LinkedTransformFeedback.BufferStride[j] % 4) {
+         if (prog->TransformFeedback.BufferStride[j] % 4) {
             linker_error(prog, "invalid qualifier xfb_stride=%d must be a "
                          "multiple of 4 or if its applied to a type that is "
                          "or contains a double a multiple of 8.",
-                         prog->LinkedTransformFeedback.BufferStride[j]);
+                         prog->TransformFeedback.BufferStride[j]);
             return;
          }
 
-         if (prog->LinkedTransformFeedback.BufferStride[j] / 4 >
+         if (prog->TransformFeedback.BufferStride[j] / 4 >
              ctx->Const.MaxTransformFeedbackInterleavedComponents) {
             linker_error(prog,
                          "The MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS "
@@ -4560,9 +4560,7 @@ link_varyings_and_uniforms(unsigned first, unsigned last,
       return false;
 
    update_array_sizes(prog);
-   link_assign_uniform_locations(prog, ctx->Const.UniformBooleanTrue,
-                                 num_explicit_uniform_locs,
-                                 ctx->Const.MaxUserAssignableUniformLocations);
+   link_assign_uniform_locations(prog, ctx, num_explicit_uniform_locs);
    link_assign_atomic_counter_resources(ctx, prog);
 
    link_calculate_subroutine_compat(prog);
@@ -4899,7 +4897,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
                                     ctx->Const.NativeIntegers))
         ;
 
-      lower_const_arrays_to_uniforms(prog->_LinkedShaders[i]->ir);
+      lower_const_arrays_to_uniforms(prog->_LinkedShaders[i]->ir, i);
       propagate_invariance(prog->_LinkedShaders[i]->ir);
    }