summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r600/evergreen_fragprog.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-09-13 13:36:19 -0400
committerAlex Deucher <alexdeucher@gmail.com>2010-09-13 13:41:46 -0400
commit9532eea509321d8f88a4e60191a1e659ada40dfe (patch)
treec6714a10ecb1cc36676bbded2c32a665ec385eb7 /src/mesa/drivers/dri/r600/evergreen_fragprog.c
parentc121608b6e409fe6c22cb8b05c52cc94d2dfb0af (diff)
r600c: const buffer sizes must be a multiple of 16 consts
This applies to r6xx/r7xx/evergreen
Diffstat (limited to 'src/mesa/drivers/dri/r600/evergreen_fragprog.c')
-rw-r--r--src/mesa/drivers/dri/r600/evergreen_fragprog.c8
1 files changed, 6 insertions, 2 deletions
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,