mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
drm/radeon: Only flush HDP cache for indirect buffers from userspace
It isn't necessary for command streams generated by the kernel (at least not while we aren't storing ring or indirect buffers in VRAM). Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
701e1e7891
commit
1538a9e0e0
25 changed files with 73 additions and 66 deletions
|
@ -288,7 +288,7 @@ static int radeon_test_create_and_emit_fence(struct radeon_device *rdev,
|
|||
return r;
|
||||
}
|
||||
radeon_fence_emit(rdev, fence, ring->idx);
|
||||
radeon_ring_unlock_commit(rdev, ring);
|
||||
radeon_ring_unlock_commit(rdev, ring, false);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringA);
|
||||
radeon_ring_unlock_commit(rdev, ringA, false);
|
||||
|
||||
r = radeon_test_create_and_emit_fence(rdev, ringA, &fence1);
|
||||
if (r)
|
||||
|
@ -325,7 +325,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringA);
|
||||
radeon_ring_unlock_commit(rdev, ringA, false);
|
||||
|
||||
r = radeon_test_create_and_emit_fence(rdev, ringA, &fence2);
|
||||
if (r)
|
||||
|
@ -344,7 +344,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_signal(rdev, ringB->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringB);
|
||||
radeon_ring_unlock_commit(rdev, ringB, false);
|
||||
|
||||
r = radeon_fence_wait(fence1, false);
|
||||
if (r) {
|
||||
|
@ -365,7 +365,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_signal(rdev, ringB->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringB);
|
||||
radeon_ring_unlock_commit(rdev, ringB, false);
|
||||
|
||||
r = radeon_fence_wait(fence2, false);
|
||||
if (r) {
|
||||
|
@ -408,7 +408,7 @@ static void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringA);
|
||||
radeon_ring_unlock_commit(rdev, ringA, false);
|
||||
|
||||
r = radeon_test_create_and_emit_fence(rdev, ringA, &fenceA);
|
||||
if (r)
|
||||
|
@ -420,7 +420,7 @@ static void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_wait(rdev, ringB->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringB);
|
||||
radeon_ring_unlock_commit(rdev, ringB, false);
|
||||
r = radeon_test_create_and_emit_fence(rdev, ringB, &fenceB);
|
||||
if (r)
|
||||
goto out_cleanup;
|
||||
|
@ -442,7 +442,7 @@ static void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_signal(rdev, ringC->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringC);
|
||||
radeon_ring_unlock_commit(rdev, ringC, false);
|
||||
|
||||
for (i = 0; i < 30; ++i) {
|
||||
mdelay(100);
|
||||
|
@ -468,7 +468,7 @@ static void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|||
goto out_cleanup;
|
||||
}
|
||||
radeon_semaphore_emit_signal(rdev, ringC->idx, semaphore);
|
||||
radeon_ring_unlock_commit(rdev, ringC);
|
||||
radeon_ring_unlock_commit(rdev, ringC, false);
|
||||
|
||||
mdelay(1000);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue