summaryrefslogtreecommitdiff
path: root/src/radeon_textured_video.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-04-13 19:48:35 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-04-17 10:24:59 -0400
commit093ab4c9a33b0b396b78c061c3321dc044bdccdc (patch)
treec17d21f69cbbd03e8f77d849375268fdcd6ff071 /src/radeon_textured_video.c
parentec0cb51df81c6c9a1de640d227fa9c9c33161083 (diff)
R1xx: add support for native planar textured Xv
Diffstat (limited to 'src/radeon_textured_video.c')
-rw-r--r--src/radeon_textured_video.c23
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;