tnl: fix result vector allocation regression
We need to allocate all the output vectors.
Fixes a regression from commit f7f678331d
Fixes fd.o bugs 41441 and 41492.
This commit is contained in:
@@ -336,11 +336,17 @@ run_vp( struct gl_context *ctx, struct tnl_pipeline_stage *stage )
|
|||||||
for (i = 0; i < VERT_RESULT_MAX; i++) {
|
for (i = 0; i < VERT_RESULT_MAX; i++) {
|
||||||
if (program->Base.OutputsWritten & BITFIELD64_BIT(i)) {
|
if (program->Base.OutputsWritten & BITFIELD64_BIT(i)) {
|
||||||
outputs[numOutputs++] = i;
|
outputs[numOutputs++] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!store->results[i].data) {
|
/* Allocate result vectors. We delay this until now to avoid allocating
|
||||||
_mesa_vector4f_alloc( &store->results[i], 0, VB->Size, 32 );
|
* memory that would never be used if we don't run the software tnl pipeline.
|
||||||
store->results[i].size = 4;
|
*/
|
||||||
}
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user