summaryrefslogtreecommitdiff
path: root/src/radeon_textured_video.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-04-16 20:33:28 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-04-17 10:25:00 -0400
commit00266177bed2dc8693df497ca3ec19f2dc4adc05 (patch)
tree65374e696fa6699dfcf68eb4204146088affe46c /src/radeon_textured_video.c
parent85323a7f84381fef7fad20c7f7ec601637af9aa7 (diff)
R3xx/R5xx: only apply Xv attributes if bicubic is disabled
Provides consistent output
Diffstat (limited to 'src/radeon_textured_video.c')
-rw-r--r--src/radeon_textured_video.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index 2318a62e..5c467128 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -356,8 +356,10 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
/* Bicubic filter setup */
pPriv->bicubic_enabled = (pPriv->bicubic_state != BICUBIC_OFF);
- if (!(IS_R300_3D || IS_R500_3D))
+ if (!(IS_R300_3D || IS_R500_3D)) {
pPriv->bicubic_enabled = FALSE;
+ pPriv->bicubic_state = BICUBIC_OFF;
+ }
if (pPriv->bicubic_enabled && (pPriv->bicubic_state == BICUBIC_AUTO)) {
/*
* Applying the bicubic filter with a scale of less than 200%
@@ -372,7 +374,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
case FOURCC_I420:
srcPitch = (width + 3) & ~3;
srcPitch2 = ((width >> 1) + 3) & ~3;
- if (pPriv->bicubic_enabled) {
+ if (pPriv->bicubic_state != BICUBIC_OFF) {
dstPitch = ((dst_width << 1) + 15) & ~15;
dstPitch = (dstPitch + 63) & ~63;
} else {
@@ -502,7 +504,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
srcPitch, srcPitch2, pPriv->src_pitch,
width, height);
}
- } else if (pPriv->bicubic_enabled) {
+ } else if (pPriv->bicubic_state != BICUBIC_OFF) {
top &= ~1;
nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
s2offset = srcPitch * height;