diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c index 4fac76a..219df9e 100644 --- a/src/radeon_commonfuncs.c +++ b/src/radeon_commonfuncs.c @@ -569,10 +569,10 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) OUT_ACCEL_REG(R300_SC_EDGERULE, 0xA5294A5); if (IS_R300_3D) { /* clip has offset 1440 */ - OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((1088 << R300_CLIP_X_SHIFT) | - (1088 << R300_CLIP_Y_SHIFT))); - OUT_ACCEL_REG(R300_SC_CLIP_0_B, (((1080 + 2920) << R300_CLIP_X_SHIFT) | - ((1080 + 2920) << R300_CLIP_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((1440 << R300_CLIP_X_SHIFT) | + (1440 << R300_CLIP_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_CLIP_0_B, ((4080 << R300_CLIP_X_SHIFT) | + (4080 << R300_CLIP_Y_SHIFT))); } else { OUT_ACCEL_REG(R300_SC_CLIP_0_A, ((0 << R300_CLIP_X_SHIFT) | (0 << R300_CLIP_Y_SHIFT))); diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 51f5b5d..468abaa 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -2159,8 +2159,12 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, /* Clear out scissoring */ BEGIN_ACCEL(2); - OUT_ACCEL_REG(R300_SC_SCISSOR0, ((0 << R300_SCISSOR_X_SHIFT) | - (0 << R300_SCISSOR_Y_SHIFT))); + if (IS_R300_3D) + OUT_ACCEL_REG(R300_SC_SCISSOR0, ((1440 << R300_SCISSOR_X_SHIFT) | + (1440 << R300_SCISSOR_Y_SHIFT))); + else + OUT_ACCEL_REG(R300_SC_SCISSOR0, ((0 << R300_SCISSOR_X_SHIFT) | + (0 << R300_SCISSOR_Y_SHIFT))); OUT_ACCEL_REG(R300_SC_SCISSOR1, ((8191 << R300_SCISSOR_X_SHIFT) | (8191 << R300_SCISSOR_Y_SHIFT))); FINISH_ACCEL(); @@ -2200,17 +2204,9 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture, do { \ OUT_RING_F(_dstX); \ OUT_RING_F(_dstY); \ - if (_srcX > 1.0) OUT_RING_F(1.0); else \ - if (_srcX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcX); \ - if (_srcY > 1.0) OUT_RING_F(1.0); else \ - if (_srcY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcY); \ - if (_maskX > 1.0) OUT_RING_F(1.0); else \ - if (_maskX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_maskX); \ - if (_maskY > 1.0) OUT_RING_F(1.0); else \ - if (_maskY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_maskY); \ } while (0) @@ -2218,11 +2214,7 @@ do { \ do { \ OUT_RING_F(_dstX); \ OUT_RING_F(_dstY); \ - if (_srcX > 1.0) OUT_RING_F(1.0); else \ - if (_srcX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcX); \ - if (_srcY > 1.0) OUT_RING_F(1.0); else \ - if (_srcY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcY); \ } while (0) diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c index d3fa490..bb5f2cf 100644 --- a/src/radeon_textured_videofuncs.c +++ b/src/radeon_textured_videofuncs.c @@ -51,17 +51,9 @@ do { \ OUT_RING_F(_dstX); \ OUT_RING_F(_dstY); \ - if (_srcX > 1.0) OUT_RING_F(1.0); else \ - if (_srcX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcX); \ - if (_srcY > 1.0) OUT_RING_F(1.0); else \ - if (_srcY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcY); \ - if (_maskX > 1.0) OUT_RING_F(1.0); else \ - if (_maskX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_maskX); \ - if (_maskY > 1.0) OUT_RING_F(1.0); else \ - if (_maskY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_maskY); \ } while (0) @@ -69,11 +61,7 @@ do { \ do { \ OUT_RING_F(_dstX); \ OUT_RING_F(_dstY); \ - if (_srcX > 1.0) OUT_RING_F(1.0); else \ - if (_srcX < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcX); \ - if (_srcY > 1.0) OUT_RING_F(1.0); else \ - if (_srcY < 0.0) OUT_RING_F(0.0); else \ OUT_RING_F(_srcY); \ } while (0) @@ -2143,10 +2131,10 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv BEGIN_ACCEL(2); if (IS_R300_3D) { /* R300 has an offset */ - OUT_ACCEL_REG(R300_SC_SCISSOR0, (((dstX + 1088) << R300_SCISSOR_X_SHIFT) | - ((dstY + 1088) << R300_SCISSOR_Y_SHIFT))); - OUT_ACCEL_REG(R300_SC_SCISSOR1, (((dstX + dstw + 1088 - 1) << R300_SCISSOR_X_SHIFT) | - ((dstY + dsth + 1088 - 1) << R300_SCISSOR_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_SCISSOR0, (((dstX + 1440) << R300_SCISSOR_X_SHIFT) | + ((dstY + 1440) << R300_SCISSOR_Y_SHIFT))); + OUT_ACCEL_REG(R300_SC_SCISSOR1, (((dstX + dstw + 1440 - 1) << R300_SCISSOR_X_SHIFT) | + ((dstY + dsth + 1440 - 1) << R300_SCISSOR_Y_SHIFT))); } else { OUT_ACCEL_REG(R300_SC_SCISSOR0, (((dstX) << R300_SCISSOR_X_SHIFT) | ((dstY) << R300_SCISSOR_Y_SHIFT)));