From 9532eea509321d8f88a4e60191a1e659ada40dfe Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 13 Sep 2010 13:36:19 -0400 Subject: r600c: const buffer sizes must be a multiple of 16 consts This applies to r6xx/r7xx/evergreen --- src/mesa/drivers/dri/r600/evergreen_fragprog.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/mesa/drivers/dri/r600/evergreen_fragprog.c') diff --git a/src/mesa/drivers/dri/r600/evergreen_fragprog.c b/src/mesa/drivers/dri/r600/evergreen_fragprog.c index 7dcca8b146..0e7edf4fbe 100644 --- a/src/mesa/drivers/dri/r600/evergreen_fragprog.c +++ b/src/mesa/drivers/dri/r600/evergreen_fragprog.c @@ -748,6 +748,7 @@ GLboolean evergreenSetupFPconstants(GLcontext * ctx) struct gl_program_parameter_list *paramList; unsigned int unNumParamData; unsigned int ui; + int alloc_size; /* sent out shader constants. */ paramList = fp->mesa_program.Base.Parameters; @@ -771,14 +772,17 @@ GLboolean evergreenSetupFPconstants(GLcontext * ctx) evergreen->ps.consts[ui][2].f32All = paramList->ParameterValues[ui][2]; evergreen->ps.consts[ui][3].f32All = paramList->ParameterValues[ui][3]; } - + + /* alloc multiple of 16 constants */ + alloc_size = ((unNumParamData * 4 * 4) + 255) & ~255; + /* Load fp constants to gpu */ if(unNumParamData > 0) { radeonAllocDmaRegion(&context->radeon, &context->fp_Constbo, &context->fp_bo_offset, - unNumParamData * 4 * 4, + alloc_size, 256); r600EmitShaderConsts(ctx, context->fp_Constbo, -- cgit v1.2.3