summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
diff options
context:
space:
mode:
authorCorbin Simpson <[email protected]>2009-02-27 23:40:18 -0800
committerCorbin Simpson <[email protected]>2009-02-28 08:14:35 -0800
commitb210c3fb3f1367525ab690ddb7cf9f0dcc1e7c99 (patch)
tree0eec929edbdc43249df072da7dd3b16e86c82ffc /src/gallium/drivers/r300
parentba91e79dad6a3666ae31b13c0c4b3b174f10b747 (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.h4
-rw-r--r--src/gallium/drivers/r300/r300_state_derived.c9
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;
}