Revert "glsl: move xfb BufferStride into gl_transform_feedback_info"
This reverts commit f5a6aab403
.
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.
This commit is contained in:
parent
943b69cddd
commit
29c174a3e5
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 "
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue