OSDN Git Service

r300: move more vap registers out of non tcl paths
authorDave Airlie <airlied@linux.ie>
Sat, 3 Nov 2007 08:35:39 +0000 (19:35 +1100)
committerDave Airlie <airlied@linux.ie>
Sat, 3 Nov 2007 08:35:39 +0000 (19:35 +1100)
src/mesa/drivers/dri/r300/r300_cmdbuf.c
src/mesa/drivers/dri/r300/r300_ioctl.c
src/mesa/drivers/dri/r300/r300_state.c

index 9eca41f..4e6e3e7 100644 (file)
@@ -317,12 +317,12 @@ void r300InitCmdBuf(r300ContextPtr r300)
        r300->hw.vic.cmd[R300_VIC_CMD_0] = cmdpacket0(R300_VAP_INPUT_CNTL_0, 2);
        ALLOC_STATE(unk21DC, always, 2, 0);
        r300->hw.unk21DC.cmd[0] = cmdpacket0(0x21DC, 1);
-       ALLOC_STATE(unk221C, always, 2, 0);
-       r300->hw.unk221C.cmd[0] = cmdpacket0(R300_VAP_UNKNOWN_221C, 1);
-       ALLOC_STATE(vap_clip, always, 5, 0);
-       r300->hw.vap_clip.cmd[0] = cmdpacket0(R300_VAP_CLIP_X_0, 4);
 
        if (has_tcl) {
+               ALLOC_STATE(unk221C, always, 2, 0);
+               r300->hw.unk221C.cmd[0] = cmdpacket0(R300_VAP_UNKNOWN_221C, 1);
+               ALLOC_STATE(vap_clip, always, 5, 0);
+               r300->hw.vap_clip.cmd[0] = cmdpacket0(R300_VAP_CLIP_X_0, 4);
                ALLOC_STATE(unk2288, always, 2, 0);
                r300->hw.unk2288.cmd[0] = cmdpacket0(R300_VAP_UNKNOWN_2288, 1);
        }
index 90f5027..ceb2e2d 100644 (file)
@@ -260,9 +260,11 @@ static void r300EmitClearState(GLcontext * ctx)
        e32(0x0);
        e32(0x0);
 
-       R300_STATECHANGE(r300, unk221C);
-       reg_start(R300_VAP_UNKNOWN_221C, 0);
-       e32(R300_221C_CLEAR);
+       if (has_tcl) {
+           R300_STATECHANGE(r300, unk221C);
+           reg_start(R300_VAP_UNKNOWN_221C, 0);
+           e32(R300_221C_CLEAR);
+        }
 
        R300_STATECHANGE(r300, ps);
        reg_start(R300_RE_POINTSIZE, 0);
index 088216c..8a2ebbf 100644 (file)
@@ -1816,15 +1816,15 @@ static void r300ResetHwState(r300ContextPtr r300)
 
        r300->hw.unk21DC.cmd[1] = 0xAAAAAAAA;
 
-       r300->hw.unk221C.cmd[1] = R300_221C_NORMAL;
-
-       r300->hw.vap_clip.cmd[1] = r300PackFloat32(1.0); /* X */
-       r300->hw.vap_clip.cmd[2] = r300PackFloat32(1.0); /* X */
-       r300->hw.vap_clip.cmd[3] = r300PackFloat32(1.0); /* Y */
-       r300->hw.vap_clip.cmd[4] = r300PackFloat32(1.0); /* Y */
-
        /* XXX: Other families? */
        if (has_tcl) {
+               r300->hw.unk221C.cmd[1] = R300_221C_NORMAL;
+
+               r300->hw.vap_clip.cmd[1] = r300PackFloat32(1.0); /* X */
+               r300->hw.vap_clip.cmd[2] = r300PackFloat32(1.0); /* X */
+               r300->hw.vap_clip.cmd[3] = r300PackFloat32(1.0); /* Y */
+               r300->hw.vap_clip.cmd[4] = r300PackFloat32(1.0); /* Y */
+
                switch (r300->radeon.radeonScreen->chip_family) {
                case CHIP_FAMILY_R300:
                        r300->hw.unk2288.cmd[1] = R300_2288_R300;