mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 21:20:14 +01:00
tnl: Delay results allocation until we actually need them.
Decreases i965 peak memory allocation for a trivial shader program from 23,483,048B to 21,932,128B, since we never actually use tnl for rendering.
This commit is contained in:
parent
fe006a74f6
commit
f7f678331d
1 changed files with 5 additions and 7 deletions
|
|
@ -336,6 +336,11 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -504,19 +509,12 @@ init_vp(struct gl_context *ctx, struct tnl_pipeline_stage *stage)
|
|||
struct vertex_buffer *VB = &(tnl->vb);
|
||||
struct vp_stage_data *store;
|
||||
const GLuint size = VB->Size;
|
||||
GLuint i;
|
||||
|
||||
stage->privatePtr = CALLOC(sizeof(*store));
|
||||
store = VP_STAGE_DATA(stage);
|
||||
if (!store)
|
||||
return GL_FALSE;
|
||||
|
||||
/* Allocate arrays of vertex output values */
|
||||
for (i = 0; i < VERT_RESULT_MAX; i++) {
|
||||
_mesa_vector4f_alloc( &store->results[i], 0, size, 32 );
|
||||
store->results[i].size = 4;
|
||||
}
|
||||
|
||||
/* a few other misc allocations */
|
||||
_mesa_vector4f_alloc( &store->ndcCoords, 0, size, 32 );
|
||||
store->clipmask = (GLubyte *) _mesa_align_malloc(sizeof(GLubyte)*size, 32 );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue