diff options
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/linker.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index b8a7126e3f6..65870087bf5 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -1598,7 +1598,9 @@ tfeedback_decl::store(struct gl_shader_program *prog, info->Outputs[info->NumOutputs].OutputRegister = this->location + v; info->Outputs[info->NumOutputs].NumComponents = this->vector_elements; info->Outputs[info->NumOutputs].OutputBuffer = buffer; + info->Outputs[info->NumOutputs].DstOffset = info->BufferStride[buffer]; ++info->NumOutputs; + info->BufferStride[buffer] += this->vector_elements; } return true; } @@ -1863,7 +1865,8 @@ store_tfeedback_info(struct gl_context *ctx, struct gl_shader_program *prog, tfeedback_decl *tfeedback_decls) { unsigned total_tfeedback_components = 0; - prog->LinkedTransformFeedback.NumOutputs = 0; + memset(&prog->LinkedTransformFeedback, 0, + sizeof(prog->LinkedTransformFeedback)); for (unsigned i = 0; i < num_tfeedback_decls; ++i) { unsigned buffer = prog->TransformFeedback.BufferMode == GL_SEPARATE_ATTRIBS ? i : 0; |