Commit 551ebd83 authored by Dave Airlie's avatar Dave Airlie

drm/radeon/kms: add rn50/r100/r200 CS tracker.

This adds the command stream checker for the RN50, R100 and R200 cards.

It stops any access to 3D registers on RN50, and does checks
on buffer sizes on the r100/r200 cards. It also fixes some texture
sizing checks on r300.
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 11670d3c
...@@ -11,6 +11,15 @@ hostprogs-y := mkregtable ...@@ -11,6 +11,15 @@ hostprogs-y := mkregtable
quiet_cmd_mkregtable = MKREGTABLE $@ quiet_cmd_mkregtable = MKREGTABLE $@
cmd_mkregtable = $(obj)/mkregtable $< > $@ cmd_mkregtable = $(obj)/mkregtable $< > $@
$(obj)/rn50_reg_safe.h: $(src)/reg_srcs/rn50 $(obj)/mkregtable
$(call if_changed,mkregtable)
$(obj)/r100_reg_safe.h: $(src)/reg_srcs/r100 $(obj)/mkregtable
$(call if_changed,mkregtable)
$(obj)/r200_reg_safe.h: $(src)/reg_srcs/r200 $(obj)/mkregtable
$(call if_changed,mkregtable)
$(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable $(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable
$(call if_changed,mkregtable) $(call if_changed,mkregtable)
...@@ -20,6 +29,10 @@ $(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable ...@@ -20,6 +29,10 @@ $(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable
$(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable $(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable
$(call if_changed,mkregtable) $(call if_changed,mkregtable)
$(obj)/r100.o: $(obj)/r100_reg_safe.h $(obj)/rn50_reg_safe.h
$(obj)/r200.o: $(obj)/r200_reg_safe.h
$(obj)/rv515.o: $(obj)/rv515_reg_safe.h $(obj)/rv515.o: $(obj)/rv515_reg_safe.h
$(obj)/r300.o: $(obj)/r300_reg_safe.h $(obj)/r300.o: $(obj)/r300_reg_safe.h
...@@ -34,7 +47,7 @@ radeon-$(CONFIG_DRM_RADEON_KMS) += radeon_device.o radeon_kms.o \ ...@@ -34,7 +47,7 @@ radeon-$(CONFIG_DRM_RADEON_KMS) += radeon_device.o radeon_kms.o \
radeon_clocks.o radeon_fb.o radeon_gem.o radeon_ring.o radeon_irq_kms.o \ radeon_clocks.o radeon_fb.o radeon_gem.o radeon_ring.o radeon_irq_kms.o \
radeon_cs.o radeon_bios.o radeon_benchmark.o r100.o r300.o r420.o \ radeon_cs.o radeon_bios.o radeon_benchmark.o r100.o r300.o r420.o \
rs400.o rs600.o rs690.o rv515.o r520.o r600.o rs780.o rv770.o \ rs400.o rs600.o rs690.o rv515.o r520.o r600.o rs780.o rv770.o \
radeon_test.o radeon_test.o r200.o
radeon-$(CONFIG_COMPAT) += radeon_ioc32.o radeon-$(CONFIG_COMPAT) += radeon_ioc32.o
......
This diff is collapsed.
#define R100_TRACK_MAX_TEXTURE 3
#define R200_TRACK_MAX_TEXTURE 6
#define R300_TRACK_MAX_TEXTURE 16
#define R100_MAX_CB 1
#define R300_MAX_CB 4
/*
* CS functions
*/
struct r100_cs_track_cb {
struct radeon_object *robj;
unsigned pitch;
unsigned cpp;
unsigned offset;
};
struct r100_cs_track_array {
struct radeon_object *robj;
unsigned esize;
};
struct r100_cs_cube_info {
struct radeon_object *robj;
unsigned offset;
unsigned width;
unsigned height;
};
struct r100_cs_track_texture {
struct radeon_object *robj;
struct r100_cs_cube_info cube_info[5]; /* info for 5 non-primary faces */
unsigned pitch;
unsigned width;
unsigned height;
unsigned num_levels;
unsigned cpp;
unsigned tex_coord_type;
unsigned txdepth;
unsigned width_11;
unsigned height_11;
bool use_pitch;
bool enabled;
bool roundup_w;
bool roundup_h;
};
struct r100_cs_track_limits {
unsigned num_cb;
unsigned num_texture;
unsigned max_levels;
};
struct r100_cs_track {
struct radeon_device *rdev;
unsigned num_cb;
unsigned num_texture;
unsigned maxy;
unsigned vtx_size;
unsigned vap_vf_cntl;
unsigned immd_dwords;
unsigned num_arrays;
unsigned max_indx;
struct r100_cs_track_array arrays[11];
struct r100_cs_track_cb cb[R300_MAX_CB];
struct r100_cs_track_cb zb;
struct r100_cs_track_texture textures[R300_TRACK_MAX_TEXTURE];
bool z_enabled;
bool separate_cube;
};
int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track);
void r100_cs_track_clear(struct radeon_device *rdev, struct r100_cs_track *track);
int r100_cs_packet_next_reloc(struct radeon_cs_parser *p,
struct radeon_cs_reloc **cs_reloc);
void r100_cs_dump_packet(struct radeon_cs_parser *p,
struct radeon_cs_packet *pkt);
int r100_cs_packet_parse_vline(struct radeon_cs_parser *p);
int r200_packet0_check(struct radeon_cs_parser *p,
struct radeon_cs_packet *pkt,
unsigned idx, unsigned reg);
static inline int r100_reloc_pitch_offset(struct radeon_cs_parser *p,
struct radeon_cs_packet *pkt,
unsigned idx,
unsigned reg)
{
int r;
u32 tile_flags = 0;
u32 tmp;
struct radeon_cs_reloc *reloc;
struct radeon_cs_chunk *ib_chunk;
ib_chunk = &p->chunks[p->chunk_ib_idx];
r = r100_cs_packet_next_reloc(p, &reloc);
if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
idx, reg);
r100_cs_dump_packet(p, pkt);
return r;
}
tmp = ib_chunk->kdata[idx] & 0x003fffff;
tmp += (((u32)reloc->lobj.gpu_offset) >> 10);
if (reloc->lobj.tiling_flags & RADEON_TILING_MACRO)
tile_flags |= RADEON_DST_TILE_MACRO;
if (reloc->lobj.tiling_flags & RADEON_TILING_MICRO) {
if (reg == RADEON_SRC_PITCH_OFFSET) {
DRM_ERROR("Cannot src blit from microtiled surface\n");
r100_cs_dump_packet(p, pkt);
return -EINVAL;
}
tile_flags |= RADEON_DST_TILE_MICRO;
}
tmp |= tile_flags;
p->ib->ptr[idx] = (ib_chunk->kdata[idx] & 0x3fc00000) | tmp;
return 0;
}
This diff is collapsed.
This diff is collapsed.
...@@ -604,8 +604,14 @@ struct radeon_asic { ...@@ -604,8 +604,14 @@ struct radeon_asic {
void (*bandwidth_update)(struct radeon_device *rdev); void (*bandwidth_update)(struct radeon_device *rdev);
}; };
struct r100_asic {
const unsigned *reg_safe_bm;
unsigned reg_safe_bm_size;
};
union radeon_asic_config { union radeon_asic_config {
struct r300_asic r300; struct r300_asic r300;
struct r100_asic r100;
}; };
......
...@@ -42,6 +42,7 @@ void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable); ...@@ -42,6 +42,7 @@ void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable);
* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 * r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280
*/ */
int r100_init(struct radeon_device *rdev); int r100_init(struct radeon_device *rdev);
int r200_init(struct radeon_device *rdev);
uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg); uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg);
void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
void r100_errata(struct radeon_device *rdev); void r100_errata(struct radeon_device *rdev);
......
...@@ -1945,6 +1945,11 @@ ...@@ -1945,6 +1945,11 @@
# define RADEON_TXFORMAT_DXT1 (12 << 0) # define RADEON_TXFORMAT_DXT1 (12 << 0)
# define RADEON_TXFORMAT_DXT23 (14 << 0) # define RADEON_TXFORMAT_DXT23 (14 << 0)
# define RADEON_TXFORMAT_DXT45 (15 << 0) # define RADEON_TXFORMAT_DXT45 (15 << 0)
# define RADEON_TXFORMAT_SHADOW16 (16 << 0)
# define RADEON_TXFORMAT_SHADOW32 (17 << 0)
# define RADEON_TXFORMAT_DUDV88 (18 << 0)
# define RADEON_TXFORMAT_LDUDV655 (19 << 0)
# define RADEON_TXFORMAT_LDUDUV8888 (20 << 0)
# define RADEON_TXFORMAT_FORMAT_MASK (31 << 0) # define RADEON_TXFORMAT_FORMAT_MASK (31 << 0)
# define RADEON_TXFORMAT_FORMAT_SHIFT 0 # define RADEON_TXFORMAT_FORMAT_SHIFT 0
# define RADEON_TXFORMAT_APPLE_YUV_MODE (1 << 5) # define RADEON_TXFORMAT_APPLE_YUV_MODE (1 << 5)
...@@ -2203,7 +2208,7 @@ ...@@ -2203,7 +2208,7 @@
# define RADEON_ROP_ENABLE (1 << 6) # define RADEON_ROP_ENABLE (1 << 6)
# define RADEON_STENCIL_ENABLE (1 << 7) # define RADEON_STENCIL_ENABLE (1 << 7)
# define RADEON_Z_ENABLE (1 << 8) # define RADEON_Z_ENABLE (1 << 8)
# define RADEON_DEPTH_XZ_OFFEST_ENABLE (1 << 9) # define RADEON_DEPTHXY_OFFSET_ENABLE (1 << 9)
# define RADEON_RB3D_COLOR_FORMAT_SHIFT 10 # define RADEON_RB3D_COLOR_FORMAT_SHIFT 10
# define RADEON_COLOR_FORMAT_ARGB1555 3 # define RADEON_COLOR_FORMAT_ARGB1555 3
...@@ -2773,7 +2778,12 @@ ...@@ -2773,7 +2778,12 @@
# define R200_TXFORMAT_DXT1 (12 << 0) # define R200_TXFORMAT_DXT1 (12 << 0)
# define R200_TXFORMAT_DXT23 (14 << 0) # define R200_TXFORMAT_DXT23 (14 << 0)
# define R200_TXFORMAT_DXT45 (15 << 0) # define R200_TXFORMAT_DXT45 (15 << 0)
# define R200_TXFORMAT_DVDU88 (18 << 0)
# define R200_TXFORMAT_LDVDU655 (19 << 0)
# define R200_TXFORMAT_LDVDU8888 (20 << 0)
# define R200_TXFORMAT_GR1616 (21 << 0)
# define R200_TXFORMAT_ABGR8888 (22 << 0) # define R200_TXFORMAT_ABGR8888 (22 << 0)
# define R200_TXFORMAT_BGR111110 (23 << 0)
# define R200_TXFORMAT_FORMAT_MASK (31 << 0) # define R200_TXFORMAT_FORMAT_MASK (31 << 0)
# define R200_TXFORMAT_FORMAT_SHIFT 0 # define R200_TXFORMAT_FORMAT_SHIFT 0
# define R200_TXFORMAT_ALPHA_IN_MAP (1 << 6) # define R200_TXFORMAT_ALPHA_IN_MAP (1 << 6)
...@@ -2818,6 +2828,13 @@ ...@@ -2818,6 +2828,13 @@
#define R200_PP_TXPITCH_4 0x2c90 /* NPOT only */ #define R200_PP_TXPITCH_4 0x2c90 /* NPOT only */
#define R200_PP_TXPITCH_5 0x2cb0 /* NPOT only */ #define R200_PP_TXPITCH_5 0x2cb0 /* NPOT only */
#define R200_PP_CUBIC_FACES_0 0x2c18
#define R200_PP_CUBIC_FACES_1 0x2c38
#define R200_PP_CUBIC_FACES_2 0x2c58
#define R200_PP_CUBIC_FACES_3 0x2c78
#define R200_PP_CUBIC_FACES_4 0x2c98
#define R200_PP_CUBIC_FACES_5 0x2cb8
#define R200_PP_TXOFFSET_0 0x2d00 #define R200_PP_TXOFFSET_0 0x2d00
# define R200_TXO_ENDIAN_NO_SWAP (0 << 0) # define R200_TXO_ENDIAN_NO_SWAP (0 << 0)
# define R200_TXO_ENDIAN_BYTE_SWAP (1 << 0) # define R200_TXO_ENDIAN_BYTE_SWAP (1 << 0)
...@@ -2829,11 +2846,44 @@ ...@@ -2829,11 +2846,44 @@
# define R200_TXO_MICRO_TILE (1 << 3) # define R200_TXO_MICRO_TILE (1 << 3)
# define R200_TXO_OFFSET_MASK 0xffffffe0 # define R200_TXO_OFFSET_MASK 0xffffffe0
# define R200_TXO_OFFSET_SHIFT 5 # define R200_TXO_OFFSET_SHIFT 5
#define R200_PP_CUBIC_OFFSET_F1_0 0x2d04
#define R200_PP_CUBIC_OFFSET_F2_0 0x2d08
#define R200_PP_CUBIC_OFFSET_F3_0 0x2d0c
#define R200_PP_CUBIC_OFFSET_F4_0 0x2d10
#define R200_PP_CUBIC_OFFSET_F5_0 0x2d14
#define R200_PP_TXOFFSET_1 0x2d18 #define R200_PP_TXOFFSET_1 0x2d18
#define R200_PP_CUBIC_OFFSET_F1_1 0x2d1c
#define R200_PP_CUBIC_OFFSET_F2_1 0x2d20
#define R200_PP_CUBIC_OFFSET_F3_1 0x2d24
#define R200_PP_CUBIC_OFFSET_F4_1 0x2d28
#define R200_PP_CUBIC_OFFSET_F5_1 0x2d2c
#define R200_PP_TXOFFSET_2 0x2d30 #define R200_PP_TXOFFSET_2 0x2d30
#define R200_PP_CUBIC_OFFSET_F1_2 0x2d34
#define R200_PP_CUBIC_OFFSET_F2_2 0x2d38
#define R200_PP_CUBIC_OFFSET_F3_2 0x2d3c
#define R200_PP_CUBIC_OFFSET_F4_2 0x2d40
#define R200_PP_CUBIC_OFFSET_F5_2 0x2d44
#define R200_PP_TXOFFSET_3 0x2d48 #define R200_PP_TXOFFSET_3 0x2d48
#define R200_PP_CUBIC_OFFSET_F1_3 0x2d4c
#define R200_PP_CUBIC_OFFSET_F2_3 0x2d50
#define R200_PP_CUBIC_OFFSET_F3_3 0x2d54
#define R200_PP_CUBIC_OFFSET_F4_3 0x2d58
#define R200_PP_CUBIC_OFFSET_F5_3 0x2d5c
#define R200_PP_TXOFFSET_4 0x2d60 #define R200_PP_TXOFFSET_4 0x2d60
#define R200_PP_CUBIC_OFFSET_F1_4 0x2d64
#define R200_PP_CUBIC_OFFSET_F2_4 0x2d68
#define R200_PP_CUBIC_OFFSET_F3_4 0x2d6c
#define R200_PP_CUBIC_OFFSET_F4_4 0x2d70
#define R200_PP_CUBIC_OFFSET_F5_4 0x2d74
#define R200_PP_TXOFFSET_5 0x2d78 #define R200_PP_TXOFFSET_5 0x2d78
#define R200_PP_CUBIC_OFFSET_F1_5 0x2d7c
#define R200_PP_CUBIC_OFFSET_F2_5 0x2d80
#define R200_PP_CUBIC_OFFSET_F3_5 0x2d84
#define R200_PP_CUBIC_OFFSET_F4_5 0x2d88
#define R200_PP_CUBIC_OFFSET_F5_5 0x2d8c
#define R200_PP_TFACTOR_0 0x2ee0 #define R200_PP_TFACTOR_0 0x2ee0
#define R200_PP_TFACTOR_1 0x2ee4 #define R200_PP_TFACTOR_1 0x2ee4
...@@ -3175,6 +3225,11 @@ ...@@ -3175,6 +3225,11 @@
# define R200_FORCE_INORDER_PROC (1<<31) # define R200_FORCE_INORDER_PROC (1<<31)
#define R200_PP_CNTL_X 0x2cc4 #define R200_PP_CNTL_X 0x2cc4
#define R200_PP_TXMULTI_CTL_0 0x2c1c #define R200_PP_TXMULTI_CTL_0 0x2c1c
#define R200_PP_TXMULTI_CTL_1 0x2c3c
#define R200_PP_TXMULTI_CTL_2 0x2c5c
#define R200_PP_TXMULTI_CTL_3 0x2c7c
#define R200_PP_TXMULTI_CTL_4 0x2c9c
#define R200_PP_TXMULTI_CTL_5 0x2cbc
#define R200_SE_VTX_STATE_CNTL 0x2180 #define R200_SE_VTX_STATE_CNTL 0x2180
# define R200_UPDATE_USER_COLOR_0_ENA_MASK (1<<16) # define R200_UPDATE_USER_COLOR_0_ENA_MASK (1<<16)
......
r100 0x3294
0x1434 SRC_Y_X
0x1438 DST_Y_X
0x143C DST_HEIGHT_WIDTH
0x146C DP_GUI_MASTER_CNTL
0x1474 BRUSH_Y_X
0x1478 DP_BRUSH_BKGD_CLR
0x147C DP_BRUSH_FRGD_CLR
0x1480 BRUSH_DATA0
0x1484 BRUSH_DATA1
0x1598 DST_WIDTH_HEIGHT
0x15C0 CLR_CMP_CNTL
0x15C4 CLR_CMP_CLR_SRC
0x15C8 CLR_CMP_CLR_DST
0x15CC CLR_CMP_MSK
0x15D8 DP_SRC_FRGD_CLR
0x15DC DP_SRC_BKGD_CLR
0x1600 DST_LINE_START
0x1604 DST_LINE_END
0x1608 DST_LINE_PATCOUNT
0x16C0 DP_CNTL
0x16CC DP_WRITE_MSK
0x16D0 DP_CNTL_XDIR_YDIR_YMAJOR
0x16E8 DEFAULT_SC_BOTTOM_RIGHT
0x16EC SC_TOP_LEFT
0x16F0 SC_BOTTOM_RIGHT
0x16F4 SRC_SC_BOTTOM_RIGHT
0x1714 DSTCACHE_CTLSTAT
0x1720 WAIT_UNTIL
0x172C RBBM_GUICNTL
0x1810 FOG_3D_TABLE_START
0x1814 FOG_3D_TABLE_END
0x1a14 FOG_TABLE_INDEX
0x1a18 FOG_TABLE_DATA
0x1c14 PP_MISC
0x1c18 PP_FOG_COLOR
0x1c1c RE_SOLID_COLOR
0x1c20 RB3D_BLENDCNTL
0x1c4c SE_CNTL
0x1c50 SE_COORD_FMT
0x1c60 PP_TXCBLEND_0
0x1c64 PP_TXABLEND_0
0x1c68 PP_TFACTOR_0
0x1c78 PP_TXCBLEND_1
0x1c7c PP_TXABLEND_1
0x1c80 PP_TFACTOR_1
0x1c90 PP_TXCBLEND_2
0x1c94 PP_TXABLEND_2
0x1c98 PP_TFACTOR_2
0x1cc8 RE_STIPPLE_ADDR
0x1ccc RE_STIPPLE_DATA
0x1cd0 RE_LINE_PATTERN
0x1cd4 RE_LINE_STATE
0x1d40 PP_BORDER_COLOR0
0x1d44 PP_BORDER_COLOR1
0x1d48 PP_BORDER_COLOR2
0x1d7c RB3D_STENCILREFMASK
0x1d80 RB3D_ROPCNTL
0x1d84 RB3D_PLANEMASK
0x1d98 VAP_VPORT_XSCALE
0x1d9C VAP_VPORT_XOFFSET
0x1da0 VAP_VPORT_YSCALE
0x1da4 VAP_VPORT_YOFFSET
0x1da8 VAP_VPORT_ZSCALE
0x1dac VAP_VPORT_ZOFFSET
0x1db0 SE_ZBIAS_FACTOR
0x1db4 SE_ZBIAS_CONSTANT
0x1db8 SE_LINE_WIDTH
0x2140 SE_CNTL_STATUS
0x2200 SE_TCL_VECTOR_INDX_REG
0x2204 SE_TCL_VECTOR_DATA_REG
0x2208 SE_TCL_SCALAR_INDX_REG
0x220c SE_TCL_SCALAR_DATA_REG
0x2210 SE_TCL_MATERIAL_EMISSIVE_RED
0x2214 SE_TCL_MATERIAL_EMISSIVE_GREEN
0x2218 SE_TCL_MATERIAL_EMISSIVE_BLUE
0x221c SE_TCL_MATERIAL_EMISSIVE_ALPHA
0x2220 SE_TCL_MATERIAL_AMBIENT_RED
0x2224 SE_TCL_MATERIAL_AMBIENT_GREEN
0x2228 SE_TCL_MATERIAL_AMBIENT_BLUE
0x222c SE_TCL_MATERIAL_AMBIENT_ALPHA
0x2230 SE_TCL_MATERIAL_DIFFUSE_RED
0x2234 SE_TCL_MATERIAL_DIFFUSE_GREEN
0x2238 SE_TCL_MATERIAL_DIFFUSE_BLUE
0x223c SE_TCL_MATERIAL_DIFFUSE_ALPHA
0x2240 SE_TCL_MATERIAL_SPECULAR_RED
0x2244 SE_TCL_MATERIAL_SPECULAR_GREEN
0x2248 SE_TCL_MATERIAL_SPECULAR_BLUE
0x224c SE_TCL_MATERIAL_SPECULAR_ALPHA
0x2250 SE_TCL_SHININESS
0x2254 SE_TCL_OUTPUT_VTX_FMT
0x2258 SE_TCL_OUTPUT_VTX_SEL
0x225c SE_TCL_MATRIX_SELECT_0
0x2260 SE_TCL_MATRIX_SELECT_1
0x2264 SE_TCL_UCP_VERT_BLEND_CNTL
0x2268 SE_TCL_TEXTURE_PROC_CTL
0x226c SE_TCL_LIGHT_MODEL_CTL
0x2270 SE_TCL_PER_LIGHT_CTL_0
0x2274 SE_TCL_PER_LIGHT_CTL_1
0x2278 SE_TCL_PER_LIGHT_CTL_2
0x227c SE_TCL_PER_LIGHT_CTL_3
0x2284 SE_TCL_STATE_FLUSH
0x26c0 RE_TOP_LEFT
0x26c4 RE_MISC
0x3290 RB3D_ZPASS_DATA
r200 0x3294
0x1434 SRC_Y_X
0x1438 DST_Y_X
0x143C DST_HEIGHT_WIDTH
0x146C DP_GUI_MASTER_CNTL
0x1474 BRUSH_Y_X
0x1478 DP_BRUSH_BKGD_CLR
0x147C DP_BRUSH_FRGD_CLR
0x1480 BRUSH_DATA0
0x1484 BRUSH_DATA1
0x1598 DST_WIDTH_HEIGHT
0x15C0 CLR_CMP_CNTL
0x15C4 CLR_CMP_CLR_SRC
0x15C8 CLR_CMP_CLR_DST
0x15CC CLR_CMP_MSK
0x15D8 DP_SRC_FRGD_CLR
0x15DC DP_SRC_BKGD_CLR
0x1600 DST_LINE_START
0x1604 DST_LINE_END
0x1608 DST_LINE_PATCOUNT
0x16C0 DP_CNTL
0x16CC DP_WRITE_MSK
0x16D0 DP_CNTL_XDIR_YDIR_YMAJOR
0x16E8 DEFAULT_SC_BOTTOM_RIGHT
0x16EC SC_TOP_LEFT
0x16F0 SC_BOTTOM_RIGHT
0x16F4 SRC_SC_BOTTOM_RIGHT
0x1714 DSTCACHE_CTLSTAT
0x1720 WAIT_UNTIL
0x172C RBBM_GUICNTL
0x1c14 PP_MISC
0x1c18 PP_FOG_COLOR
0x1c1c RE_SOLID_COLOR
0x1c20 RB3D_BLENDCNTL
0x1c4c SE_CNTL
0x1c50 RE_CNTL
0x1cc8 RE_STIPPLE_ADDR
0x1ccc RE_STIPPLE_DATA
0x1cd0 RE_LINE_PATTERN
0x1cd4 RE_LINE_STATE
0x1cd8 RE_SCISSOR_TL_0
0x1cdc RE_SCISSOR_BR_0
0x1ce0 RE_SCISSOR_TL_1
0x1ce4 RE_SCISSOR_BR_1
0x1ce8 RE_SCISSOR_TL_2
0x1cec RE_SCISSOR_BR_2
0x1d60 RB3D_DEPTHXY_OFFSET
0x1d7c RB3D_STENCILREFMASK
0x1d80 RB3D_ROPCNTL
0x1d84 RB3D_PLANEMASK
0x1d98 VAP_VPORT_XSCALE
0x1d9c VAP_VPORT_XOFFSET
0x1da0 VAP_VPORT_YSCALE
0x1da4 VAP_VPORT_YOFFSET
0x1da8 VAP_VPORT_ZSCALE
0x1dac VAP_VPORT_ZOFFSET
0x1db0 SE_ZBIAS_FACTOR
0x1db4 SE_ZBIAS_CONSTANT
0x1db8 SE_LINE_WIDTH
0x2080 SE_VAP_CNTL
0x2090 SE_TCL_OUTPUT_VTX_FMT_0
0x2094 SE_TCL_OUTPUT_VTX_FMT_1
0x20b0 SE_VTE_CNTL
0x2140 SE_CNTL_STATUS
0x2180 SE_VTX_STATE_CNTL
0x2200 SE_TCL_VECTOR_INDX_REG
0x2204 SE_TCL_VECTOR_DATA_REG
0x2208 SE_TCL_SCALAR_INDX_REG
0x220c SE_TCL_SCALAR_DATA_REG
0x2230 SE_TCL_MATRIX_SEL_0
0x2234 SE_TCL_MATRIX_SEL_1
0x2238 SE_TCL_MATRIX_SEL_2
0x223c SE_TCL_MATRIX_SEL_3
0x2240 SE_TCL_MATRIX_SEL_4
0x2250 SE_TCL_OUTPUT_VTX_COMP_SEL
0x2254 SE_TCL_INPUT_VTX_VECTOR_ADDR_0
0x2258 SE_TCL_INPUT_VTX_VECTOR_ADDR_1
0x225c SE_TCL_INPUT_VTX_VECTOR_ADDR_2
0x2260 SE_TCL_INPUT_VTX_VECTOR_ADDR_3
0x2268 SE_TCL_LIGHT_MODEL_CTL_0
0x226c SE_TCL_LIGHT_MODEL_CTL_1
0x2270 SE_TCL_PER_LIGHT_CTL_0
0x2274 SE_TCL_PER_LIGHT_CTL_1
0x2278 SE_TCL_PER_LIGHT_CTL_2
0x227c SE_TCL_PER_LIGHT_CTL_3
0x2284 VAP_PVS_STATE_FLUSH_REG
0x22a8 SE_TCL_TEX_PROC_CTL_2
0x22ac SE_TCL_TEX_PROC_CTL_3
0x22b0 SE_TCL_TEX_PROC_CTL_0
0x22b4 SE_TCL_TEX_PROC_CTL_1
0x22b8 SE_TCL_TEX_CYL_WRAP_CTL
0x22c0 SE_TCL_UCP_VERT_BLEND_CNTL
0x22c4 SE_TCL_POINT_SPRITE_CNTL
0x2648 RE_POINTSIZE
0x26c0 RE_TOP_LEFT
0x26c4 RE_MISC
0x26f0 RE_AUX_SCISSOR_CNTL
0x2c14 PP_BORDER_COLOR_0
0x2c34 PP_BORDER_COLOR_1
0x2c54 PP_BORDER_COLOR_2
0x2c74 PP_BORDER_COLOR_3
0x2c94 PP_BORDER_COLOR_4
0x2cb4 PP_BORDER_COLOR_5
0x2cc4 PP_CNTL_X
0x2cf8 PP_TRI_PERF
0x2cfc PP_PERF_CNTL
0x2d9c PP_TAM_DEBUG3
0x2ee0 PP_TFACTOR_0
0x2ee4 PP_TFACTOR_1
0x2ee8 PP_TFACTOR_2
0x2eec PP_TFACTOR_3
0x2ef0 PP_TFACTOR_4
0x2ef4 PP_TFACTOR_5
0x2ef8 PP_TFACTOR_6
0x2efc PP_TFACTOR_7
0x2f00 PP_TXCBLEND_0
0x2f04 PP_TXCBLEND2_0
0x2f08 PP_TXABLEND_0
0x2f0c PP_TXABLEND2_0
0x2f10 PP_TXCBLEND_1
0x2f14 PP_TXCBLEND2_1
0x2f18 PP_TXABLEND_1
0x2f1c PP_TXABLEND2_1
0x2f20 PP_TXCBLEND_2
0x2f24 PP_TXCBLEND2_2
0x2f28 PP_TXABLEND_2
0x2f2c PP_TXABLEND2_2
0x2f30 PP_TXCBLEND_3
0x2f34 PP_TXCBLEND2_3
0x2f38 PP_TXABLEND_3
0x2f3c PP_TXABLEND2_3
0x2f40 PP_TXCBLEND_4
0x2f44 PP_TXCBLEND2_4
0x2f48 PP_TXABLEND_4
0x2f4c PP_TXABLEND2_4
0x2f50 PP_TXCBLEND_5
0x2f54 PP_TXCBLEND2_5
0x2f58 PP_TXABLEND_5
0x2f5c PP_TXABLEND2_5
0x2f60 PP_TXCBLEND_6
0x2f64 PP_TXCBLEND2_6
0x2f68 PP_TXABLEND_6
0x2f6c PP_TXABLEND2_6
0x2f70 PP_TXCBLEND_7
0x2f74 PP_TXCBLEND2_7
0x2f78 PP_TXABLEND_7
0x2f7c PP_TXABLEND2_7
0x2f80 PP_TXCBLEND_8
0x2f84 PP_TXCBLEND2_8
0x2f88 PP_TXABLEND_8
0x2f8c PP_TXABLEND2_8
0x2f90 PP_TXCBLEND_9
0x2f94 PP_TXCBLEND2_9
0x2f98 PP_TXABLEND_9
0x2f9c PP_TXABLEND2_9
0x2fa0 PP_TXCBLEND_10
0x2fa4 PP_TXCBLEND2_10
0x2fa8 PP_TXABLEND_10
0x2fac PP_TXABLEND2_10
0x2fb0 PP_TXCBLEND_11
0x2fb4 PP_TXCBLEND2_11
0x2fb8 PP_TXABLEND_11
0x2fbc PP_TXABLEND2_11
0x2fc0 PP_TXCBLEND_12
0x2fc4 PP_TXCBLEND2_12
0x2fc8 PP_TXABLEND_12
0x2fcc PP_TXABLEND2_12
0x2fd0 PP_TXCBLEND_13
0x2fd4 PP_TXCBLEND2_13
0x2fd8 PP_TXABLEND_13
0x2fdc PP_TXABLEND2_13
0x2fe0 PP_TXCBLEND_14
0x2fe4 PP_TXCBLEND2_14
0x2fe8 PP_TXABLEND_14
0x2fec PP_TXABLEND2_14
0x2ff0 PP_TXCBLEND_15
0x2ff4 PP_TXCBLEND2_15
0x2ff8 PP_TXABLEND_15
0x2ffc PP_TXABLEND2_15
0x3218 RB3D_BLENCOLOR
0x321c RB3D_ABLENDCNTL
0x3220 RB3D_CBLENDCNTL
0x3290 RB3D_ZPASS_DATA
rn50 0x3294
0x1434 SRC_Y_X
0x1438 DST_Y_X
0x143C DST_HEIGHT_WIDTH
0x146C DP_GUI_MASTER_CNTL
0x1474 BRUSH_Y_X
0x1478 DP_BRUSH_BKGD_CLR
0x147C DP_BRUSH_FRGD_CLR
0x1480 BRUSH_DATA0
0x1484 BRUSH_DATA1
0x1598 DST_WIDTH_HEIGHT
0x15C0 CLR_CMP_CNTL
0x15C4 CLR_CMP_CLR_SRC
0x15C8 CLR_CMP_CLR_DST
0x15CC CLR_CMP_MSK
0x15D8 DP_SRC_FRGD_CLR
0x15DC DP_SRC_BKGD_CLR
0x1600 DST_LINE_START
0x1604 DST_LINE_END
0x1608 DST_LINE_PATCOUNT
0x16C0 DP_CNTL
0x16CC DP_WRITE_MSK
0x16D0 DP_CNTL_XDIR_YDIR_YMAJOR
0x16E8 DEFAULT_SC_BOTTOM_RIGHT
0x16EC SC_TOP_LEFT
0x16F0 SC_BOTTOM_RIGHT
0x16F4 SRC_SC_BOTTOM_RIGHT
0x1714 DSTCACHE_CTLSTAT
0x1720 WAIT_UNTIL
0x172C RBBM_GUICNTL
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment