xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Thu Nov 19 22:12:24 PST 2009
src/radeon.h | 6 ++++++
src/radeon_exa_render.c | 9 +++++++--
src/radeon_textured_videofuncs.c | 15 ++++++++++-----
3 files changed, 23 insertions(+), 7 deletions(-)
New commits:
commit dd3eab848cf352bb96c3d01fe6028d8a4a8e451e
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Fri Nov 20 01:06:49 2009 -0500
r300: render target limit is 2560
limit was increased to 4021 in r4xx.
fixes fdo bug 25191.
Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
diff --git a/src/radeon.h b/src/radeon.h
index 5cdc3db..1e479f4 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -382,6 +382,12 @@ typedef enum {
(info->ChipFamily == CHIP_FAMILY_RV560) || \
(info->ChipFamily == CHIP_FAMILY_RV570))
+#define IS_R400_3D ((info->ChipFamily == CHIP_FAMILY_R420) || \
+ (info->ChipFamily == CHIP_FAMILY_RV410) || \
+ (info->ChipFamily == CHIP_FAMILY_RS690) || \
+ (info->ChipFamily == CHIP_FAMILY_RS600) || \
+ (info->ChipFamily == CHIP_FAMILY_RS740))
+
#define IS_R300_3D ((info->ChipFamily == CHIP_FAMILY_R300) || \
(info->ChipFamily == CHIP_FAMILY_RV350) || \
(info->ChipFamily == CHIP_FAMILY_R350) || \
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index b745705..c144890 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -1348,8 +1348,13 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP
} else {
max_tex_w = 2048;
max_tex_h = 2048;
- max_dst_w = 4021;
- max_dst_h = 4021;
+ if (IS_R400_3D) {
+ max_dst_w = 4021;
+ max_dst_h = 4021;
+ } else {
+ max_dst_w = 2560;
+ max_dst_h = 2560;
+ }
}
if (pSrcPixmap->drawable.width > max_tex_w ||
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
index 6ac2d6e..bd3fa17 100644
--- a/src/radeon_textured_videofuncs.c
+++ b/src/radeon_textured_videofuncs.c
@@ -387,7 +387,7 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
* We render a single, large triangle and use the scissor
* functionality to restrict it to the desired rectangle.
* Due to guardband limits on r3xx/r4xx, we can only use
- * the single triangle up to 4021 pixels; above that we
+ * the single triangle up to 2560/4021 pixels; above that we
* render as a quad.
*/
@@ -955,7 +955,7 @@ FUNC_NAME(R200DisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
* We render a single, large triangle and use the scissor
* functionality to restrict it to the desired rectangle.
* Due to guardband limits on r3xx/r4xx, we can only use
- * the single triangle up to 4021 pixels; above that we
+ * the single triangle up to 2560/4021 pixels; above that we
* render as a quad.
*/
@@ -2331,7 +2331,7 @@ FUNC_NAME(R300DisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
* We render a single, large triangle and use the scissor
* functionality to restrict it to the desired rectangle.
* Due to guardband limits on r3xx/r4xx, we can only use
- * the single triangle up to 4021 pixels; above that we
+ * the single triangle up to 2560/4021 pixels; above that we
* render as a quad.
*/
@@ -2359,8 +2359,13 @@ FUNC_NAME(R300DisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
ErrorF("src: %d, %d, %d, %d\n", srcX, srcY, srcw, srch);
#endif
- if ((dstw+dsth) > 4021)
- use_quad = TRUE;
+ if (IS_R400_3D) {
+ if ((dstw+dsth) > 4021)
+ use_quad = TRUE;
+ } else {
+ if ((dstw+dsth) > 2560)
+ use_quad = TRUE;
+ }
/*
* Set up the scissor area to that of the output size.
*/
More information about the xorg-commit
mailing list