diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-04-13 19:48:35 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-04-17 10:24:59 -0400 |
commit | 093ab4c9a33b0b396b78c061c3321dc044bdccdc (patch) | |
tree | c17d21f69cbbd03e8f77d849375268fdcd6ff071 /src/radeon_textured_video.c | |
parent | ec0cb51df81c6c9a1de640d227fa9c9c33161083 (diff) |
R1xx: add support for native planar textured Xv
Diffstat (limited to 'src/radeon_textured_video.c')
-rw-r--r-- | src/radeon_textured_video.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c index f64da025..f6575365 100644 --- a/src/radeon_textured_video.c +++ b/src/radeon_textured_video.c @@ -374,7 +374,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn, } pPriv->planar_hw = pPriv->planar_state; - if (pPriv->bicubic_enabled || !( IS_R300_3D || IS_R200_3D )) + if (pPriv->bicubic_enabled || (IS_R600_3D || IS_R500_3D)) pPriv->planar_hw = 0; switch(id) { @@ -663,11 +663,12 @@ static XF86VideoFormatRec Formats[NUM_FORMATS] = {15, TrueColor}, {16, TrueColor}, {24, TrueColor} }; -#define NUM_ATTRIBUTES 1 +#define NUM_ATTRIBUTES 2 static XF86AttributeRec Attributes[NUM_ATTRIBUTES+1] = { {XvSettable | XvGettable, 0, 1, "XV_VSYNC"}, + {XvSettable | XvGettable, 0, 1, "XV_HWPLANAR"}, {0, 0, 0, NULL} }; @@ -710,6 +711,14 @@ static XF86AttributeRec Attributes_r500[NUM_ATTRIBUTES_R500+1] = {0, 0, 0, NULL} }; +#define NUM_ATTRIBUTES_R600 1 + +static XF86AttributeRec Attributes_r600[NUM_ATTRIBUTES_R600+1] = +{ + {XvSettable | XvGettable, 0, 1, "XV_VSYNC"}, + {0, 0, 0, NULL} +}; + static Atom xvBicubic; static Atom xvVSync; static Atom xvHWPlanar; @@ -841,14 +850,18 @@ RADEONSetupImageTexturedVideo(ScreenPtr pScreen) pPortPriv = (RADEONPortPrivPtr)(&adapt->pPortPrivates[num_texture_ports]); - if (IS_R300_3D) { - adapt->pAttributes = Attributes_r300; - adapt->nAttributes = NUM_ATTRIBUTES_R300; + if (IS_R600_3D) { + adapt->pAttributes = Attributes_r600; + adapt->nAttributes = NUM_ATTRIBUTES_R600; } else if (IS_R500_3D) { adapt->pAttributes = Attributes_r500; adapt->nAttributes = NUM_ATTRIBUTES_R500; } + else if (IS_R300_3D) { + adapt->pAttributes = Attributes_r300; + adapt->nAttributes = NUM_ATTRIBUTES_R300; + } else if (IS_R200_3D) { adapt->pAttributes = Attributes_r200; adapt->nAttributes = NUM_ATTRIBUTES_R200; |