summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2011-10-23 18:29:17 +0800
committerChia-I Wu <olvaffe@gmail.com>2011-11-03 15:09:44 +0800
commit1ab1b15e9d0da1c5215a20770735b5477f5313df (patch)
tree0965de0f946151245341d434924f3bafa844284f
parent833d707db13afd2c4940be65a0e18d4e98cb8ec3 (diff)
mesa, i965: prepare for more than 8 texture targets
3-bit fields are used store texture target in several places. That will fail when TEXTURE_EXTERNAL_INDEX, which happends to be the 9th texture target, is added. Make them 4-bit fields. Reviewed-by: Brian Paul <brianp@vmware.com> Acked-by: Jakob Bornecrantz <jakob@vmware.com>
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.h2
-rw-r--r--src/mesa/main/ff_fragment_shader.cpp2
-rw-r--r--src/mesa/program/prog_instruction.h2
-rw-r--r--src/mesa/program/program.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h
index 76cf4533b56..056934a274b 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -156,7 +156,7 @@ struct brw_wm_instruction {
GLuint saturate:1;
GLuint writemask:4;
GLuint tex_unit:4; /* texture unit for TEX, TXD, TXP instructions */
- GLuint tex_idx:3; /* TEXTURE_1D,2D,3D,CUBE,RECT_INDEX source target */
+ GLuint tex_idx:4; /* TEXTURE_1D,2D,3D,CUBE,RECT_INDEX source target */
GLuint tex_shadow:1; /* do shadow comparison? */
GLuint eot:1; /* End of thread indicator for FB_WRITE*/
GLuint target:10; /* target binding table index for FB_WRITE*/
diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp
index b5500714b57..f612325192d 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -108,7 +108,7 @@ struct state_key {
/* NOTE: This array of structs must be last! (see "keySize" below) */
struct {
GLuint enabled:1;
- GLuint source_index:3; /**< TEXTURE_x_INDEX */
+ GLuint source_index:4; /**< TEXTURE_x_INDEX */
GLuint shadow:1;
GLuint ScaleShiftRGB:2;
GLuint ScaleShiftA:2;
diff --git a/src/mesa/program/prog_instruction.h b/src/mesa/program/prog_instruction.h
index db2b594e753..09659ce9c7c 100644
--- a/src/mesa/program/prog_instruction.h
+++ b/src/mesa/program/prog_instruction.h
@@ -392,7 +392,7 @@ struct prog_instruction
GLuint TexSrcUnit:5;
/** Source texture target, one of TEXTURE_{1D,2D,3D,CUBE,RECT}_INDEX */
- GLuint TexSrcTarget:3;
+ GLuint TexSrcTarget:4;
/** True if tex instruction should do shadow comparison */
GLuint TexShadow:1;
diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c
index 7366525294a..582cbccf8fa 100644
--- a/src/mesa/program/program.c
+++ b/src/mesa/program/program.c
@@ -78,7 +78,7 @@ _mesa_init_program(struct gl_context *ctx)
ASSERT(MAX_TEXTURE_UNITS <= (1 << 5));
/* If this fails, increase prog_instruction::TexSrcTarget size */
- ASSERT(NUM_TEXTURE_TARGETS <= (1 << 3));
+ ASSERT(NUM_TEXTURE_TARGETS <= (1 << 4));
ctx->Program.ErrorPos = -1;
ctx->Program.ErrorString = _mesa_strdup("");