radv: set the maximum number of IBs per submit to 192
This fixes random SteamVR corruption, see
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/181
Fixes: 4d30f2c6f4 ("radv/winsys: remove the max IBs per submit limit for the fallback path")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -2815,7 +2815,7 @@ VkResult radv_QueueSubmit(
|
||||
struct radeon_winsys_fence *base_fence = fence ? fence->fence : NULL;
|
||||
struct radeon_winsys_ctx *ctx = queue->hw_ctx;
|
||||
int ret;
|
||||
uint32_t max_cs_submission = queue->device->trace_bo ? 1 : UINT32_MAX;
|
||||
uint32_t max_cs_submission = queue->device->trace_bo ? 1 : RADV_MAX_IBS_PER_SUBMIT;
|
||||
uint32_t scratch_size = 0;
|
||||
uint32_t compute_scratch_size = 0;
|
||||
uint32_t esgs_ring_size = 0, gsvs_ring_size = 0;
|
||||
|
||||
@@ -29,6 +29,13 @@
|
||||
#ifndef RADV_AMDGPU_WINSYS_PUBLIC_H
|
||||
#define RADV_AMDGPU_WINSYS_PUBLIC_H
|
||||
|
||||
/* The number of IBs per submit isn't infinite, it depends on the ring type
|
||||
* (ie. some initial setup needed for a submit) and the number of IBs (4 DW).
|
||||
* This limit is arbitrary but should be safe for now. Ideally, we should get
|
||||
* this limit from the KMD.
|
||||
*/
|
||||
#define RADV_MAX_IBS_PER_SUBMIT 192
|
||||
|
||||
struct radeon_winsys *radv_amdgpu_winsys_create(int fd, uint64_t debug_flags,
|
||||
uint64_t perftest_flags);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user