diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/link_varyings.cpp | 4 | ||||
-rw-r--r-- | src/compiler/glsl/linker.cpp | 8 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 5 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp index e622b3e46bc..e339823a5fe 100644 --- a/src/compiler/glsl/link_varyings.cpp +++ b/src/compiler/glsl/link_varyings.cpp @@ -1136,11 +1136,11 @@ store_tfeedback_info(struct gl_context *ctx, struct gl_shader_program *prog, /* Apply any xfb_stride global qualifiers */ if (has_xfb_qualifiers) { for (unsigned j = 0; j < MAX_FEEDBACK_BUFFERS; j++) { - if (prog->TransformFeedback.BufferStride[j]) { + if (prog->LinkedTransformFeedback.BufferStride[j]) { buffers |= 1 << j; explicit_stride[j] = true; prog->LinkedTransformFeedback.Buffers[j].Stride = - prog->TransformFeedback.BufferStride[j] / 4; + prog->LinkedTransformFeedback.BufferStride[j] / 4; } } } diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index f3eece233e6..ac4191f2cd5 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -1691,19 +1691,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->TransformFeedback.BufferStride[j] = + prog->LinkedTransformFeedback.BufferStride[j] = linked_shader->info.TransformFeedback.BufferStride[j]; /* We will validate doubles at a later stage */ - if (prog->TransformFeedback.BufferStride[j] % 4) { + if (prog->LinkedTransformFeedback.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->TransformFeedback.BufferStride[j]); + prog->LinkedTransformFeedback.BufferStride[j]); return; } - if (prog->TransformFeedback.BufferStride[j] / 4 > + if (prog->LinkedTransformFeedback.BufferStride[j] / 4 > ctx->Const.MaxTransformFeedbackInterleavedComponents) { linker_error(prog, "The MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS " diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 85aeb1e0df3..5bbfd13cba7 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1696,6 +1696,9 @@ struct gl_transform_feedback_info struct gl_transform_feedback_varying_info *Varyings; GLint NumVarying; + /** Global xfb_stride out qualifier if any */ + GLuint BufferStride[MAX_FEEDBACK_BUFFERS]; + struct gl_transform_feedback_buffer Buffers[MAX_FEEDBACK_BUFFERS]; }; @@ -2740,8 +2743,6 @@ struct gl_shader_program */ struct { GLenum BufferMode; - /** Global xfb_stride out qualifier if any */ - GLuint BufferStride[MAX_FEEDBACK_BUFFERS]; GLuint NumVarying; GLchar **VaryingNames; /**< Array [NumVarying] of char * */ } TransformFeedback; |