diff options
| author | Dave Airlie <airlied@redhat.com> | 2009-10-11 23:54:10 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-10-11 23:54:10 -0400 |
| commit | ceeb50279b3d05eb7ea2b67e90acb2110d09325f (patch) | |
| tree | 774780c392d0f687383b96d6e569a81fa4d2eeee /drivers | |
| parent | 0549a061b545d232d12836f98c7c4965dd83f837 (diff) | |
drm/radeon: Revert "drm/r600: avoid assigning vb twice in blit code"
This reverts commit 49c458e544ae14514209ed80ea6829ca1b18ddf0. It
seems to have some side effects in the non-kms cases.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/radeon/r600_blit.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r600_blit_kms.c | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/r600_blit.c b/drivers/gpu/drm/radeon/r600_blit.c index dec501081608..d988eece0187 100644 --- a/drivers/gpu/drm/radeon/r600_blit.c +++ b/drivers/gpu/drm/radeon/r600_blit.c | |||
| @@ -582,6 +582,8 @@ r600_blit_copy(struct drm_device *dev, | |||
| 582 | u64 vb_addr; | 582 | u64 vb_addr; |
| 583 | u32 *vb; | 583 | u32 *vb; |
| 584 | 584 | ||
| 585 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 586 | |||
| 585 | if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) { | 587 | if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) { |
| 586 | max_bytes = 8192; | 588 | max_bytes = 8192; |
| 587 | 589 | ||
| @@ -617,8 +619,8 @@ r600_blit_copy(struct drm_device *dev, | |||
| 617 | if (!dev_priv->blit_vb) | 619 | if (!dev_priv->blit_vb) |
| 618 | return; | 620 | return; |
| 619 | set_shaders(dev); | 621 | set_shaders(dev); |
| 622 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 620 | } | 623 | } |
| 621 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 622 | 624 | ||
| 623 | vb[0] = i2f(dst_x); | 625 | vb[0] = i2f(dst_x); |
| 624 | vb[1] = 0; | 626 | vb[1] = 0; |
| @@ -706,8 +708,8 @@ r600_blit_copy(struct drm_device *dev, | |||
| 706 | return; | 708 | return; |
| 707 | 709 | ||
| 708 | set_shaders(dev); | 710 | set_shaders(dev); |
| 711 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 709 | } | 712 | } |
| 710 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 711 | 713 | ||
| 712 | vb[0] = i2f(dst_x / 4); | 714 | vb[0] = i2f(dst_x / 4); |
| 713 | vb[1] = 0; | 715 | vb[1] = 0; |
| @@ -775,6 +777,8 @@ r600_blit_swap(struct drm_device *dev, | |||
| 775 | u64 vb_addr; | 777 | u64 vb_addr; |
| 776 | u32 *vb; | 778 | u32 *vb; |
| 777 | 779 | ||
| 780 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 781 | |||
| 778 | if ((dev_priv->blit_vb->used + 48) > dev_priv->blit_vb->total) { | 782 | if ((dev_priv->blit_vb->used + 48) > dev_priv->blit_vb->total) { |
| 779 | 783 | ||
| 780 | r600_nomm_put_vb(dev); | 784 | r600_nomm_put_vb(dev); |
| @@ -783,8 +787,8 @@ r600_blit_swap(struct drm_device *dev, | |||
| 783 | return; | 787 | return; |
| 784 | 788 | ||
| 785 | set_shaders(dev); | 789 | set_shaders(dev); |
| 790 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 786 | } | 791 | } |
| 787 | vb = r600_nomm_get_vb_ptr(dev); | ||
| 788 | 792 | ||
| 789 | if (cpp == 4) { | 793 | if (cpp == 4) { |
| 790 | cb_format = COLOR_8_8_8_8; | 794 | cb_format = COLOR_8_8_8_8; |
diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c index 93108bb31d1d..acae33e2ad51 100644 --- a/drivers/gpu/drm/radeon/r600_blit_kms.c +++ b/drivers/gpu/drm/radeon/r600_blit_kms.c | |||
| @@ -610,6 +610,7 @@ void r600_kms_blit_copy(struct radeon_device *rdev, | |||
| 610 | 610 | ||
| 611 | DRM_DEBUG("emitting copy %16llx %16llx %d %d\n", src_gpu_addr, dst_gpu_addr, | 611 | DRM_DEBUG("emitting copy %16llx %16llx %d %d\n", src_gpu_addr, dst_gpu_addr, |
| 612 | size_bytes, rdev->r600_blit.vb_used); | 612 | size_bytes, rdev->r600_blit.vb_used); |
| 613 | vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used); | ||
| 613 | if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) { | 614 | if ((size_bytes & 3) || (src_gpu_addr & 3) || (dst_gpu_addr & 3)) { |
| 614 | max_bytes = 8192; | 615 | max_bytes = 8192; |
| 615 | 616 | ||
| @@ -652,7 +653,6 @@ void r600_kms_blit_copy(struct radeon_device *rdev, | |||
| 652 | vb = r600_nomm_get_vb_ptr(dev); | 653 | vb = r600_nomm_get_vb_ptr(dev); |
| 653 | #endif | 654 | #endif |
| 654 | } | 655 | } |
| 655 | vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used); | ||
| 656 | 656 | ||
| 657 | vb[0] = i2f(dst_x); | 657 | vb[0] = i2f(dst_x); |
| 658 | vb[1] = 0; | 658 | vb[1] = 0; |
| @@ -747,7 +747,6 @@ void r600_kms_blit_copy(struct radeon_device *rdev, | |||
| 747 | vb = r600_nomm_get_vb_ptr(dev); | 747 | vb = r600_nomm_get_vb_ptr(dev); |
| 748 | } | 748 | } |
| 749 | #endif | 749 | #endif |
| 750 | vb = (u32 *)(rdev->r600_blit.vb_ib->ptr + rdev->r600_blit.vb_used); | ||
| 751 | 750 | ||
| 752 | vb[0] = i2f(dst_x / 4); | 751 | vb[0] = i2f(dst_x / 4); |
| 753 | vb[1] = 0; | 752 | vb[1] = 0; |
