xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Fri Jan 11 06:56:12 PST 2013


 src/radeon_exa_render.c          |   32 ++++++++++++++++----------------
 src/radeon_textured_videofuncs.c |    8 ++++----
 2 files changed, 20 insertions(+), 20 deletions(-)

New commits:
commit 102ee4a24e4c9ba0c0b65d3ca8599dc7e0216c1e
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Fri Jan 11 09:52:32 2013 -0500

    radeon/r200: program RE_WIDTH_HEIGHT properly
    
    Values are inclusive.  Mesa already sets these
    correctly.  Also bump EXA/Xv limits from 2047 to
    2048.
    
    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>

diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 263a2b4..1f6b86d 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -473,8 +473,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
 
     pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable);
 
-    if (pDstPixmap->drawable.width > 2047 ||
-	pDstPixmap->drawable.height > 2047) {
+    if (pDstPixmap->drawable.width > 2048 ||
+	pDstPixmap->drawable.height > 2048) {
 	RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n",
 			 pDstPixmap->drawable.width,
 			 pDstPixmap->drawable.height));
@@ -486,8 +486,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
 	 */
 	pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable);
 
-	if (pSrcPixmap->drawable.width > 2047 ||
-	    pSrcPixmap->drawable.height > 2047) {
+	if (pSrcPixmap->drawable.width > 2048 ||
+	    pSrcPixmap->drawable.height > 2048) {
 	    RADEON_FALLBACK(("Source w/h too large (%d,%d).\n",
 			     pSrcPixmap->drawable.width,
 			     pSrcPixmap->drawable.height));
@@ -501,8 +501,8 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture,
 	if (pMaskPicture->pDrawable) {
 	    pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable);
 
-	    if (pMaskPixmap->drawable.width > 2047 ||
-		pMaskPixmap->drawable.height > 2047) {
+	    if (pMaskPixmap->drawable.width > 2048 ||
+		pMaskPixmap->drawable.height > 2048) {
 		RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n",
 				 pMaskPixmap->drawable.width,
 				 pMaskPixmap->drawable.height));
@@ -692,8 +692,8 @@ static Bool R100PrepareComposite(int op,
     OUT_RING_REG(RADEON_RB3D_BLENDCNTL, blendcntl);
 
     OUT_RING_REG(RADEON_RE_TOP_LEFT, 0);
-    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, (((pDst->drawable.width) << RADEON_RE_WIDTH_SHIFT) |
-					   ((pDst->drawable.height) << RADEON_RE_HEIGHT_SHIFT)));
+    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, (((pDst->drawable.width - 1) << RADEON_RE_WIDTH_SHIFT) |
+					   ((pDst->drawable.height - 1) << RADEON_RE_HEIGHT_SHIFT)));
     ADVANCE_RING();
 
     return TRUE;
@@ -872,8 +872,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
 
     pDstPixmap = RADEONGetDrawablePixmap(pDstPicture->pDrawable);
 
-    if (pDstPixmap->drawable.width > 2047 ||
-	pDstPixmap->drawable.height > 2047) {
+    if (pDstPixmap->drawable.width > 2048 ||
+	pDstPixmap->drawable.height > 2048) {
 	RADEON_FALLBACK(("Dest w/h too large (%d,%d).\n",
 			 pDstPixmap->drawable.width,
 			 pDstPixmap->drawable.height));
@@ -885,8 +885,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
 	 */
 	pSrcPixmap = RADEONGetDrawablePixmap(pSrcPicture->pDrawable);
 
-	if (pSrcPixmap->drawable.width > 2047 ||
-	    pSrcPixmap->drawable.height > 2047) {
+	if (pSrcPixmap->drawable.width > 2048 ||
+	    pSrcPixmap->drawable.height > 2048) {
 	    RADEON_FALLBACK(("Source w/h too large (%d,%d).\n",
 			     pSrcPixmap->drawable.width,
 			     pSrcPixmap->drawable.height));
@@ -900,8 +900,8 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
 	if (pMaskPicture->pDrawable) {
 	    pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable);
 
-	    if (pMaskPixmap->drawable.width > 2047 ||
-		pMaskPixmap->drawable.height > 2047) {
+	    if (pMaskPixmap->drawable.width > 2048 ||
+		pMaskPixmap->drawable.height > 2048) {
 		RADEON_FALLBACK(("Mask w/h too large (%d,%d).\n",
 				 pMaskPixmap->drawable.width,
 				 pMaskPixmap->drawable.height));
@@ -1063,8 +1063,8 @@ static Bool R200PrepareComposite(int op, PicturePtr pSrcPicture,
     blendcntl = RADEONGetBlendCntl(op, pMaskPicture, pDstPicture->format);
     OUT_RING_REG(RADEON_RB3D_BLENDCNTL, blendcntl);
 
-    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, (((pDst->drawable.width) << RADEON_RE_WIDTH_SHIFT) |
-					   ((pDst->drawable.height) << RADEON_RE_HEIGHT_SHIFT)));
+    OUT_RING_REG(RADEON_RE_WIDTH_HEIGHT, (((pDst->drawable.width - 1) << RADEON_RE_WIDTH_SHIFT) |
+					   ((pDst->drawable.height - 1) << RADEON_RE_HEIGHT_SHIFT)));
 
     ADVANCE_RING();
 
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
index cfac902..653de44 100644
--- a/src/radeon_textured_videofuncs.c
+++ b/src/radeon_textured_videofuncs.c
@@ -55,8 +55,8 @@ RADEONPrepareTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
     uint32_t dst_pitch, dst_format;
     uint32_t colorpitch;
     int pixel_shift;
-    int scissor_w = MIN(pPixmap->drawable.width, 2047);
-    int scissor_h = MIN(pPixmap->drawable.height, 2047);
+    int scissor_w = MIN(pPixmap->drawable.width, 2048) - 1;
+    int scissor_h = MIN(pPixmap->drawable.height, 2048) - 1;
     int ret;
 
     radeon_cs_space_reset_bos(info->cs);
@@ -416,8 +416,8 @@ R200PrepareTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
     uint32_t dst_pitch, dst_format;
     uint32_t colorpitch;
     int pixel_shift;
-    int scissor_w = MIN(pPixmap->drawable.width, 2047);
-    int scissor_h = MIN(pPixmap->drawable.height, 2047);
+    int scissor_w = MIN(pPixmap->drawable.width, 2048) - 1;
+    int scissor_h = MIN(pPixmap->drawable.height, 2048) - 1;
     /* note: in contrast to r300, use input biasing on uv components */
     const float Loff = -0.0627;
     float uvcosf, uvsinf;


More information about the xorg-commit mailing list