summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2002-06-26 14:32:39 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2002-06-26 14:32:39 +0000
commit603e843d80a3d559bbe10cdf50a7f83e365fb165 (patch)
tree3a64d3fb8e117923d78ce87d9f799e845ddf1791
parent5d620c96be4ea4d2842f32ba0ef5c2d20563a99f (diff)
downloaddrm-603e843d80a3d559bbe10cdf50a7f83e365fb165.tar.gz
Checkpoint with lots of debug
-rw-r--r--linux/radeon_drm.h3
-rw-r--r--linux/radeon_drv.h2
-rw-r--r--linux/radeon_state.c37
3 files changed, 29 insertions, 13 deletions
diff --git a/linux/radeon_drm.h b/linux/radeon_drm.h
index 04dbeb5c..69603480 100644
--- a/linux/radeon_drm.h
+++ b/linux/radeon_drm.h
@@ -117,7 +117,8 @@
#define R200_EMIT_PP_TXOFFSET_4 46 /* tex4/1 */
#define R200_EMIT_PP_TXOFFSET_5 47 /* tex5/1 */
#define R200_EMIT_VTE_CNTL 48 /* vte/1 */
-#define RADEON_MAX_STATE_PACKETS 49
+#define R200_EMIT_OUTPUT_VTX_COMP_SEL 49 /* vtx/1 */
+#define RADEON_MAX_STATE_PACKETS 50
/* Commands understood by cmd_buffer ioctl. More can be added but
diff --git a/linux/radeon_drv.h b/linux/radeon_drv.h
index 145668c9..a052eabd 100644
--- a/linux/radeon_drv.h
+++ b/linux/radeon_drv.h
@@ -299,6 +299,7 @@ extern int radeon_cp_flip( struct inode *inode, struct file *filp,
# define RADEON_STENCIL_ENABLE (1 << 7)
# define RADEON_Z_ENABLE (1 << 8)
#define RADEON_RB3D_DEPTHOFFSET 0x1c24
+#define RADEON_RB3D_DEPTHPITCH 0x1c28
#define RADEON_RB3D_PLANEMASK 0x1d84
#define RADEON_RB3D_STENCILREFMASK 0x1d7c
#define RADEON_RB3D_ZCACHE_MODE 0x3250
@@ -558,6 +559,7 @@ extern int radeon_cp_flip( struct inode *inode, struct file *filp,
#define R200_PP_TXOFFSET_0 0x2d00
#define R200_RE_AUX_SCISSOR_CNTL 0x26f0
#define R200_SE_VTE_CNTL 0x20b0
+#define R200_SE_TCL_OUTPUT_VTX_COMP_SEL 0x2250
#define SE_VAP_CNTL__TCL_ENA_MASK 0x00000001
#define SE_VAP_CNTL__FORCE_W_TO_ONE_MASK 0x00010000
diff --git a/linux/radeon_state.c b/linux/radeon_state.c
index 286fdf14..7e0cf0e1 100644
--- a/linux/radeon_state.c
+++ b/linux/radeon_state.c
@@ -270,6 +270,7 @@ static struct {
{ R200_PP_TXOFFSET_4, 1, "R200_PP_TXOFFSET_4" },
{ R200_PP_TXOFFSET_5, 1, "R200_PP_TXOFFSET_5" },
{ R200_SE_VTE_CNTL, 1, "R200_SE_VTE_CNTL" },
+ { R200_SE_TCL_OUTPUT_VTX_COMP_SEL, 1, "R200_SE_TCL_OUTPUT_VTX_COMP_SEL" },
};
@@ -366,7 +367,8 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
if ( tmp & RADEON_BACK ) flags |= RADEON_FRONT;
}
- if ( flags & (RADEON_FRONT | RADEON_BACK) ) {
+
+ if ( 0 & flags & (RADEON_FRONT | RADEON_BACK) ) {
BEGIN_RING( 4 );
@@ -442,7 +444,6 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
if ( dev_priv->is_r200 &&
(flags & (RADEON_DEPTH | RADEON_STENCIL)) ) {
-#if 1
int tempPP_CNTL;
int tempRE_CNTL;
int tempRB3D_CNTL;
@@ -471,7 +472,7 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
/* Disable TCL */
- tempSE_VAP_CNTL = (SE_VAP_CNTL__FORCE_W_TO_ONE_MASK |
+ tempSE_VAP_CNTL = (/* SE_VAP_CNTL__FORCE_W_TO_ONE_MASK | */
(0x9 << SE_VAP_CNTL__VF_MAX_VTX_NUM__SHIFT));
tempRB3D_PLANEMASK = 0x0;
@@ -485,7 +486,7 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
/* Vertex format (X, Y, Z, W)*/
tempSE_VTX_FMT_0 =
- (1 << SE_VTX_FMT_0__VTX_COLOR_0_FMT__SHIFT) |
+ (1 << SE_VTX_FMT_0__VTX_COLOR_0_FMT__SHIFT) |
SE_VTX_FMT_0__VTX_Z0_PRESENT_MASK |
SE_VTX_FMT_0__VTX_W0_PRESENT_MASK;
tempSE_VTX_FMT_1 = 0x0;
@@ -531,6 +532,8 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
OUT_RING_REG( R200_SE_VAP_CNTL, tempSE_VAP_CNTL );
OUT_RING_REG( R200_RE_AUX_SCISSOR_CNTL,
tempRE_AUX_SCISSOR_CNTL );
+/* OUT_RING_REG( RADEON_RB3D_DEPTHOFFSET, 0 ); */
+/* OUT_RING_REG( RADEON_RB3D_DEPTHPITCH, 0x740 ); */
ADVANCE_RING();
/* Make sure we restore the 3D state next time.
@@ -545,7 +548,6 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
radeon_emit_clip_rect( dev_priv,
&sarea_priv->boxes[i] );
-#if 1
BEGIN_RING( 17 );
OUT_RING( CP_PACKET3( R200_3D_DRAW_IMMD_2, 15 ) );
OUT_RING( (RADEON_PRIM_TYPE_RECT_LIST |
@@ -555,21 +557,19 @@ static void radeon_cp_dispatch_clear( drm_device_t *dev,
OUT_RING( depth_boxes[i].ui[CLEAR_Y1] );
OUT_RING( depth_boxes[i].ui[CLEAR_DEPTH] );
OUT_RING( 0x3f800000 );
- OUT_RING( 0xFF33FF33 );
+ OUT_RING( 0xFF33FF33 );
OUT_RING( depth_boxes[i].ui[CLEAR_X1] );
OUT_RING( depth_boxes[i].ui[CLEAR_Y2] );
OUT_RING( depth_boxes[i].ui[CLEAR_DEPTH] );
OUT_RING( 0x3f800000 );
- OUT_RING( 0xFF33FF33 );
+ OUT_RING( 0xFF33FF33 );
OUT_RING( depth_boxes[i].ui[CLEAR_X2] );
OUT_RING( depth_boxes[i].ui[CLEAR_Y2] );
OUT_RING( depth_boxes[i].ui[CLEAR_DEPTH] );
OUT_RING( 0x3f800000 );
- OUT_RING( 0xFF33FF33 );
+ OUT_RING( 0xFF33FF33 );
ADVANCE_RING();
-#endif
}
-#endif
}
else if ( (flags & (RADEON_DEPTH | RADEON_STENCIL)) ) {
@@ -1763,7 +1763,10 @@ static int radeon_emit_packets(
int reg = packet[id].start;
int *data = (int *)cmdbuf->buf;
RING_LOCALS;
-
+
+
+ printk("emit packet %s/%d\n", packet[id].name, sz );
+
if (sz * sizeof(int) > cmdbuf->bufsz)
return -EINVAL;
@@ -1934,6 +1937,8 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
drm_radeon_cmd_buffer_t cmdbuf;
drm_radeon_cmd_header_t header;
+ printk( "%s\n", __FUNCTION__ );
+
LOCK_TEST_WITH_RETURN( dev );
if ( !dev_priv ) {
@@ -1947,7 +1952,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
return -EFAULT;
}
- DRM_DEBUG( __FUNCTION__": pid=%d\n", current->pid );
+ printk( __FUNCTION__": pid=%d\n", current->pid );
RING_SPACE_TEST_WITH_RETURN( dev_priv );
VB_AGE_TEST_WITH_RETURN( dev_priv );
@@ -1972,6 +1977,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
switch (header.header.cmd_type) {
case RADEON_CMD_PACKET:
+ printk("RADEON_CMD_PACKET\n");
if (radeon_emit_packets( dev_priv, header, &cmdbuf )) {
DRM_ERROR("radeon_emit_packets failed\n");
return -EINVAL;
@@ -1979,6 +1985,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_SCALARS:
+ printk("RADEON_CMD_SCALARS\n");
if (radeon_emit_scalars( dev_priv, header, &cmdbuf )) {
DRM_ERROR("radeon_emit_scalars failed\n");
return -EINVAL;
@@ -1986,6 +1993,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_VECTORS:
+ printk("RADEON_CMD_VECTORS\n");
if (radeon_emit_vectors( dev_priv, header, &cmdbuf )) {
DRM_ERROR("radeon_emit_vectors failed\n");
return -EINVAL;
@@ -1993,6 +2001,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_DMA_DISCARD:
+ printk("RADEON_CMD_DMA_DISCARD\n");
idx = header.dma.buf_idx;
if ( idx < 0 || idx >= dma->buf_count ) {
DRM_ERROR( "buffer index %d (of %d max)\n",
@@ -2010,6 +2019,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_PACKET3:
+ printk("RADEON_CMD_PACKET3\n");
if (radeon_emit_packet3( dev, &cmdbuf )) {
DRM_ERROR("radeon_emit_packet3 failed\n");
return -EINVAL;
@@ -2017,6 +2027,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_PACKET3_CLIP:
+ printk("RADEON_CMD_PACKET3_CLIP\n");
if (radeon_emit_packet3_cliprect( dev, &cmdbuf )) {
DRM_ERROR("radeon_emit_packet3_clip failed\n");
return -EINVAL;
@@ -2024,6 +2035,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
break;
case RADEON_CMD_SCALARS2:
+ printk("RADEON_CMD_SCALARS2\n");
if (radeon_emit_scalars2( dev_priv, header, &cmdbuf )) {
DRM_ERROR("radeon_emit_scalars2 failed\n");
return -EINVAL;
@@ -2038,6 +2050,7 @@ int radeon_cp_cmdbuf( struct inode *inode, struct file *filp,
}
+ printk("DONE\n");
COMMIT_RING();
return 0;
}