From 34ba50522a843f52060e2b554e07f7dc7da8413a Mon Sep 17 00:00:00 2001 From: Aapo Tahkola Date: Thu, 20 Apr 2006 19:43:21 +0000 Subject: limit max program/param length to 255 (spotted by sroland) --- src/mesa/drivers/dri/r300/r300_context.h | 3 ++- src/mesa/drivers/dri/r300/r300_state.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/mesa') diff --git a/src/mesa/drivers/dri/r300/r300_context.h b/src/mesa/drivers/dri/r300/r300_context.h index 7504bd894a..58f789eeae 100644 --- a/src/mesa/drivers/dri/r300/r300_context.h +++ b/src/mesa/drivers/dri/r300/r300_context.h @@ -549,7 +549,8 @@ struct r300_vap_reg_state { /* Vertex shader state */ /* Perhaps more if we store programs in vmem? */ -#define VSF_MAX_FRAGMENT_LENGTH (256*4) +/* drm_r300_cmd_header_t->vpu->count is unsigned char */ +#define VSF_MAX_FRAGMENT_LENGTH (255*4) /* Can be tested with colormat currently. */ #define VSF_MAX_FRAGMENT_TEMPS (14) diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 951b925953..ae0d271521 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -1403,6 +1403,7 @@ void r300_setup_rs_unit(GLcontext *ctx) #define bump_vpu_count(ptr, new_count) do{\ drm_r300_cmd_header_t* _p=((drm_r300_cmd_header_t*)(ptr));\ int _nc=(new_count)/4; \ + assert(_nc < 256); \ if(_nc>_p->vpu.count)_p->vpu.count=_nc;\ }while(0) -- cgit v1.2.3