mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 21:00:22 +01:00
r300: A handful of thingys.
This commit is contained in:
parent
f6add70ef8
commit
80dc180140
4 changed files with 35 additions and 28 deletions
|
|
@ -61,7 +61,7 @@ static uint32_t pack_float_32(float f)
|
|||
#define CS_LOCALS(context) \
|
||||
struct r300_winsys* cs_winsys = context->winsys; \
|
||||
struct radeon_cs* cs = cs_winsys->cs; \
|
||||
int cs_count;
|
||||
int cs_count = 0;
|
||||
|
||||
#define CHECK_CS(size) \
|
||||
cs_winsys->check_cs(cs, (size))
|
||||
|
|
@ -75,11 +75,13 @@ static uint32_t pack_float_32(float f)
|
|||
} while (0)
|
||||
|
||||
#define OUT_CS(value) do { \
|
||||
cs_winsys->write_cs_dword(cs, value); \
|
||||
cs_winsys->write_cs_dword(cs, (value)); \
|
||||
cs_count--; \
|
||||
} while (0)
|
||||
|
||||
#define OUT_CS_32F(value) do { \
|
||||
cs_winsys->write_cs_dword(cs, pack_float_32(value)); \
|
||||
cs_count--; \
|
||||
} while (0)
|
||||
|
||||
#define OUT_CS_REG(register, value) do { \
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ void r300_emit_dsa_state(struct r300_context* r300,
|
|||
if (r300screen->caps->is_r500) {
|
||||
OUT_CS_REG(R500_ZB_STENCILREFMASK_BF, dsa->stencil_ref_bf);
|
||||
}
|
||||
END_CS;
|
||||
}
|
||||
|
||||
static void r300_emit_dirty_state(struct r300_context* r300)
|
||||
|
|
|
|||
|
|
@ -670,7 +670,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
# define R300_GB_FOG_STUFF_COMP_MASK 0x00000c00
|
||||
|
||||
/* Specifies the graphics pipeline configuration for antialiasing. */
|
||||
#define GB_AA_CONFIG 0x4020
|
||||
#define R300_GB_AA_CONFIG 0x4020
|
||||
# define GB_AA_CONFIG_AA_DISABLE (0 << 0)
|
||||
# define GB_AA_CONFIG_AA_ENABLE (1 << 0)
|
||||
# define GB_AA_CONFIG_NUM_AA_SUBSAMPLES_2 (0 << 1)
|
||||
|
|
|
|||
|
|
@ -68,30 +68,31 @@ OUT_CS_REG(R300_VAP_VF_MIN_VTX_INDX, 0x0);
|
|||
/* 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);
|
||||
|
|
@ -184,7 +185,7 @@ OUT_CS_REG(0x20B4, 0x00000008);
|
|||
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);
|
||||
|
|
@ -273,8 +274,11 @@ OUT_CS_32F(g);
|
|||
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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue