summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-09-25 13:03:44 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-09-25 13:03:44 -0400
commit86c367be517e992aabc1bcfea2a2dde1a1ae520c (patch)
treea24e304736273b99e1f8bbfe33da2252094fe022
parent8f80e37eed3ec028718b4e71bbb9b598847fd94e (diff)
r600: fix bo accounting for Xv
fixes Xv after changes in: 8f80e37eed3ec028718b4e71bbb9b598847fd94e Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r--src/r600_textured_videofuncs.c10
-rw-r--r--src/radeon_textured_video.c2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/r600_textured_videofuncs.c b/src/r600_textured_videofuncs.c
index b6f7b39..c9df284 100644
--- a/src/r600_textured_videofuncs.c
+++ b/src/r600_textured_videofuncs.c
@@ -227,6 +227,16 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv)
accel_state->src_bo[0] = pPriv->src_bo;
accel_state->src_bo[1] = NULL;
accel_state->dst_bo = radeon_get_pixmap_bo(pPixmap);
+
+ radeon_cs_space_reset_bos(info->cs);
+ radeon_cs_space_add_persistent_bo(info->cs, accel_state->shaders_bo,
+ RADEON_GEM_DOMAIN_VRAM, 0);
+ radeon_cs_space_add_persistent_bo(info->cs, accel_state->src_bo[0],
+ RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
+ radeon_cs_space_add_persistent_bo(info->cs, accel_state->dst_bo,
+ RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM, 0);
+ if (radeon_cs_space_check(info->cs))
+ return;
} else
#endif
{
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index 932759b..b708f52 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -458,8 +458,10 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
pPriv->w = width;
pPriv->h = height;
+#if defined(XF86DRM_MODE)
if (info->cs)
radeon_bo_unmap(pPriv->src_bo);
+#endif
#ifdef XF86DRI
if (info->directRenderingEnabled) {
if (IS_R600_3D)