|
@@ -201,7 +201,7 @@ set_vtx_resource(struct radeon_device *rdev, u64 gpu_addr)
|
|
|
static void
|
|
|
set_tex_resource(struct radeon_device *rdev,
|
|
|
int format, int w, int h, int pitch,
|
|
|
- u64 gpu_addr)
|
|
|
+ u64 gpu_addr, u32 size)
|
|
|
{
|
|
|
uint32_t sq_tex_resource_word0, sq_tex_resource_word1, sq_tex_resource_word4;
|
|
|
|
|
@@ -222,6 +222,9 @@ set_tex_resource(struct radeon_device *rdev,
|
|
|
S_038010_DST_SEL_Z(SQ_SEL_Z) |
|
|
|
S_038010_DST_SEL_W(SQ_SEL_W);
|
|
|
|
|
|
+ cp_set_surface_sync(rdev,
|
|
|
+ PACKET3_TC_ACTION_ENA, size, gpu_addr);
|
|
|
+
|
|
|
radeon_ring_write(rdev, PACKET3(PACKET3_SET_RESOURCE, 7));
|
|
|
radeon_ring_write(rdev, 0);
|
|
|
radeon_ring_write(rdev, sq_tex_resource_word0);
|
|
@@ -760,10 +763,7 @@ void r600_kms_blit_copy(struct radeon_device *rdev,
|
|
|
vb[11] = i2f(h);
|
|
|
|
|
|
rdev->r600_blit.primitives.set_tex_resource(rdev, FMT_8_8_8_8,
|
|
|
- w, h, w, src_gpu_addr);
|
|
|
- rdev->r600_blit.primitives.cp_set_surface_sync(rdev,
|
|
|
- PACKET3_TC_ACTION_ENA,
|
|
|
- size_in_bytes, src_gpu_addr);
|
|
|
+ w, h, w, src_gpu_addr, size_in_bytes);
|
|
|
rdev->r600_blit.primitives.set_render_target(rdev, COLOR_8_8_8_8,
|
|
|
w, h, dst_gpu_addr);
|
|
|
rdev->r600_blit.primitives.set_scissors(rdev, 0, 0, w, h);
|