summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorTimothy Arceri <timothy.arceri@collabora.com>2016-09-24 10:17:26 +1000
committerTimothy Arceri <timothy.arceri@collabora.com>2016-09-24 10:17:26 +1000
commit29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6 (patch)
treefe3105f5149e6e1eedcc891cd1c8cdc7a1677f32 /src/compiler
parent943b69cddd2ae90e0b0fcab2dff4a7eea81bb3cc (diff)
downloadexternal_mesa3d-29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6.zip
external_mesa3d-29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6.tar.gz
external_mesa3d-29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6.tar.bz2
Revert "glsl: move xfb BufferStride into gl_transform_feedback_info"
This reverts commit f5a6aab4031bc4754756c1773411728ad9a73381. This broke some tests. It seems gl_transform_feedback_info gets memset to 0 so we were losing the values in BufferStride before we used them.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/glsl/link_varyings.cpp4
-rw-r--r--src/compiler/glsl/linker.cpp8
2 files changed, 6 insertions, 6 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
index e339823..e622b3e 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->LinkedTransformFeedback.BufferStride[j]) {
+ if (prog->TransformFeedback.BufferStride[j]) {
buffers |= 1 << j;
explicit_stride[j] = true;
prog->LinkedTransformFeedback.Buffers[j].Stride =
- prog->LinkedTransformFeedback.BufferStride[j] / 4;
+ prog->TransformFeedback.BufferStride[j] / 4;
}
}
}
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 1806284..929a653 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -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 "