mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
glsl: move xfb BufferStride into gl_transform_feedback_info
It makes more sense to have this here where we store the other values from xfb qualifiers. The struct it was previously part of is now only used to store values that come from the api. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
This commit is contained in:
parent
85e9bbc14d
commit
f5a6aab403
3 changed files with 9 additions and 8 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 "
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue