Mesa (master): Revert "glsl: move xfb BufferStride into gl_transform_feedback_info"
Timothy Arceri
tarceri at kemper.freedesktop.org
Sat Sep 24 00:19:51 UTC 2016
Module: Mesa
Branch: master
Commit: 29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=29c174a3e57c9d6ea36fcfb75e0a04b76fc03ee6
Author: Timothy Arceri <timothy.arceri at collabora.com>
Date: Sat Sep 24 10:17:26 2016 +1000
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.
---
src/compiler/glsl/link_varyings.cpp | 4 ++--
src/compiler/glsl/linker.cpp | 8 ++++----
src/mesa/main/mtypes.h | 5 ++---
3 files changed, 8 insertions(+), 9 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 "
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 5bbfd13..85aeb1e 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1696,9 +1696,6 @@ 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];
};
@@ -2743,6 +2740,8 @@ 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;
More information about the mesa-commit
mailing list