diff options
author | Corbin Simpson <[email protected]> | 2009-02-27 23:40:18 -0800 |
---|---|---|
committer | Corbin Simpson <[email protected]> | 2009-02-28 08:14:35 -0800 |
commit | b210c3fb3f1367525ab690ddb7cf9f0dcc1e7c99 (patch) | |
tree | 0eec929edbdc43249df072da7dd3b16e86c82ffc /src/gallium/drivers/r300 | |
parent | ba91e79dad6a3666ae31b13c0c4b3b174f10b747 (diff) |
r300-gallium: Fix RS.
I should just stop using "git stash" altogether.
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r-- | src/gallium/drivers/r300/r300_reg.h | 4 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_state_derived.c | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h index b3b8f494999..e0da9d361e4 100644 --- a/src/gallium/drivers/r300/r300_reg.h +++ b/src/gallium/drivers/r300/r300_reg.h @@ -1220,14 +1220,18 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define R500_RS_INST_14 0x4358 #define R500_RS_INST_15 0x435c #define R500_RS_INST_TEX_ID_SHIFT 0 +# define R500_RS_INST_TEX_ID(x) ((x) << 0) #define R500_RS_INST_TEX_CN_WRITE (1 << 4) #define R500_RS_INST_TEX_ADDR_SHIFT 5 +# define R500_RS_INST_TEX_ADDR(x) ((x) << 0) #define R500_RS_INST_COL_ID_SHIFT 12 +# define R500_RS_INST_COL_ID(x) ((x) << 12) #define R500_RS_INST_COL_CN_NO_WRITE (0 << 16) #define R500_RS_INST_COL_CN_WRITE (1 << 16) #define R500_RS_INST_COL_CN_WRITE_FBUFFER (2 << 16) #define R500_RS_INST_COL_CN_WRITE_BACKFACE (3 << 16) #define R500_RS_INST_COL_ADDR_SHIFT 18 +# define R500_RS_INST_COL_ADDR(x) ((x) << 18) #define R500_RS_INST_TEX_ADJ (1 << 25) #define R500_RS_INST_W_CN (1 << 26) diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index d17050e0d76..5bf4f24b7a8 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -208,11 +208,10 @@ static void r300_update_rs_block(struct r300_context* r300) break; case INTERP_PERSPECTIVE: rs->ip[tex_count] |= - R500_RS_TEX_PTR(vinfo->attrib[i].src_index) | - R500_RS_SEL_S(tex_count) | - R500_RS_SEL_T(tex_count + 1) | - R500_RS_SEL_R(tex_count + 2) | - R500_RS_SEL_Q(tex_count + 3); + R500_RS_SEL_S(vinfo->attrib[i].src_index) | + R500_RS_SEL_T(vinfo->attrib[i].src_index + 1) | + R500_RS_SEL_R(vinfo->attrib[i].src_index + 2) | + R500_RS_SEL_Q(vinfo->attrib[i].src_index + 3); tex_count++; break; } |