Mesa (master): tnl: fix result vector allocation regression
Brian Paul
brianp at kemper.freedesktop.org
Fri Oct 7 16:59:59 UTC 2011
Module: Mesa
Branch: master
Commit: 793d29d6d3fd0df72aabe4648bf6814ec2d4aecd
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=793d29d6d3fd0df72aabe4648bf6814ec2d4aecd
Author: Brian Paul <brianp at vmware.com>
Date: Fri Oct 7 10:55:43 2011 -0600
tnl: fix result vector allocation regression
We need to allocate all the output vectors.
Fixes a regression from commit f7f678331d5e95d2266fe6b3ea1cfa47d6421065
Fixes fd.o bugs 41441 and 41492.
---
src/mesa/tnl/t_vb_program.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c
index cc5e856..367dfd5 100644
--- a/src/mesa/tnl/t_vb_program.c
+++ b/src/mesa/tnl/t_vb_program.c
@@ -336,11 +336,17 @@ run_vp( struct gl_context *ctx, struct tnl_pipeline_stage *stage )
for (i = 0; i < VERT_RESULT_MAX; i++) {
if (program->Base.OutputsWritten & BITFIELD64_BIT(i)) {
outputs[numOutputs++] = i;
+ }
+ }
- if (!store->results[i].data) {
- _mesa_vector4f_alloc( &store->results[i], 0, VB->Size, 32 );
- store->results[i].size = 4;
- }
+ /* Allocate result vectors. We delay this until now to avoid allocating
+ * memory that would never be used if we don't run the software tnl pipeline.
+ */
+ if (!store->results[0].storage) {
+ for (i = 0; i < VERT_RESULT_MAX; i++) {
+ assert(!store->results[i].storage);
+ _mesa_vector4f_alloc( &store->results[i], 0, VB->Size, 32 );
+ store->results[i].size = 4;
}
}
More information about the mesa-commit
mailing list