/* XXX endian */
OUT_CS_REG(R300_VAP_CNTL_STATUS, R300_VC_NO_SWAP);
OUT_CS_REG(R300_VAP_PROG_STREAM_CNTL_0, 0x0);
-OUT_CS_REG(0x21DC, 0xAAAAAAAA);
-OUT_CS_REG(0x221C, 0x00000000);
-OUT_CS_REG(0x2220, 0x3F800000);
-OUT_CS_REG(0x2224, 0x3F800000);
-OUT_CS_REG(0x2228, 0x3F800000);
-OUT_CS_REG(0x222C, 0x3F800000);
-OUT_CS_REG(0x2288, 0x0000FFFF);
-OUT_CS_REG(0x2090, 0x00000000);
-OUT_CS_REG(0x2094, 0x00000000);
-OUT_CS_REG(0x22D0, 0x00000000);
-OUT_CS_REG(0x22D4, 0x00000000);
-OUT_CS_REG(0x22D8, 0x00000000);
-OUT_CS_REG(0x4008, 0x00000007);
-OUT_CS_REG(0x4010, 0x66666666);
-OUT_CS_REG(0x4014, 0x06666666);
+/* XXX magic number not in r300_reg */
+OUT_CS_REG(R300_VAP_PSC_SGN_NORM_CNTL, 0xAAAAAAAA);
+OUT_CS_REG(R300_VAP_CLIP_CNTL, 0x0);
+OUT_CS_REG(R300_VAP_GB_VERT_CLIP_ADJ, 4);
+OUT_CS_32F(1.0);
+OUT_CS_32F(1.0);
+OUT_CS_32F(1.0);
+OUT_CS_32F(1.0);
+/* XXX is this too long? */
+OUT_CS_REG(VAP_PVS_VTX_TIMEOUT_REG, 0xFFFF);
+OUT_CS_REG(R300_GB_ENABLE, R300_GB_POINT_STUFF_ENABLE |
+ R300_GB_LINE_STUFF_ENABLE | R300_GB_TRIANGLE_STUFF_ENABLE);
+/* XXX more magic numbers */
+OUT_CS_REG(R300_GB_MSPOS0, 0x66666666);
+OUT_CS_REG(R300_GB_MSPOS1, 0x66666666);
/* XXX why doesn't classic Mesa write the number of pipes, too? */
OUT_CS_REG(R300_GB_TILE_CONFIG, R300_GB_TILE_ENABLE | R300_GB_TILE_SIZE_16);
-OUT_CS_REG(0x401C, 0x00000004);
-OUT_CS_REG(0x4020, 0x00000000);
-OUT_CS_REG(0x4104, 0x00000000);
-OUT_CS_REG(0x4200, 0x00000000);
-OUT_CS_REG(0x4204, 0x00000000);
-OUT_CS_REG(0x4208, 0x3F800000);
-OUT_CS_REG(0x420C, 0x3F800000);
+OUT_CS_REG(R300_GB_SELECT, R300_GB_FOG_SELECT_1_1_W);
+OUT_CS_REG(R300_GB_AA_CONFIG, 0x0);
+/* XXX point tex stuffing */
+OUT_CS_REG_SEQ(R300_GA_POINT_S0, 4);
+OUT_CS_32F(0.0);
+OUT_CS_32F(0.0);
+OUT_CS_32F(1.0);
+OUT_CS_32F(1.0);
OUT_CS_REG(0x4214, 0x00050005);
OUT_CS_REG(0x4230, 0x18000006);
OUT_CS_REG(0x4234, 0x00020006);
OUT_CS_REG(0x21DC, 0xAAAAAAAA);
OUT_CS_REG(0x2090, 0x00000003);
OUT_CS_REG(0x2094, 0x00000000);
-OUT_CS_REG(0x4104, 0x00000000);
+OUT_CS_REG(R300_TX_ENABLE, 0x0);
OUT_CS_REG(0x1D98, 0x3F800000);
OUT_CS_REG(0x1D9C, 0x00000000);
OUT_CS_REG(0x1DA0, 0x3F800000);
OUT_CS_32F(b);
OUT_CS_32F(1.0);
-OUT_CS_REG(0x4E4C, 0x0000000A);
-OUT_CS_REG(0x4F18, 0x00000003);
+/* XXX figure out why this is 0xA and not 0x2 */
+/* XXX OUT_CS_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+OUT_CS_REG(R300_ZB_ZCACHE_CTLSTAT,
+ R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_FLUSH_AND_FREE |
+ R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_FREE); */
R300_PACIFY;
END_CS;