zink: remove driver-based max_fences throttling
there are no more fence objects, so there's no need to do driver-specific clamping on them the mechanism remains intact to handle ETOOMANYSUBMITS Acked-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15904>
This commit is contained in:

committed by
Marge Bot

parent
21fb0a3473
commit
b0cbe3d419
@@ -332,8 +332,8 @@ post_submit(void *data, void *gdata, int thread_index)
|
|||||||
if (bs->ctx->reset.reset)
|
if (bs->ctx->reset.reset)
|
||||||
bs->ctx->reset.reset(bs->ctx->reset.data, PIPE_GUILTY_CONTEXT_RESET);
|
bs->ctx->reset.reset(bs->ctx->reset.data, PIPE_GUILTY_CONTEXT_RESET);
|
||||||
screen->device_lost = true;
|
screen->device_lost = true;
|
||||||
} else if (bs->ctx->batch_states_count > screen->max_fences) {
|
} else if (bs->ctx->batch_states_count > 5000) {
|
||||||
zink_screen_timeline_wait(screen, bs->fence.batch_id - (screen->max_fences / 2), PIPE_TIMEOUT_INFINITE);
|
zink_screen_timeline_wait(screen, bs->fence.batch_id - 2500, PIPE_TIMEOUT_INFINITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2202,15 +2202,6 @@ zink_internal_create_screen(const struct pipe_screen_config *config)
|
|||||||
if (!os_get_total_physical_memory(&screen->total_mem))
|
if (!os_get_total_physical_memory(&screen->total_mem))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
switch (screen->info.driver_props.driverID) {
|
|
||||||
case VK_DRIVER_ID_NVIDIA_PROPRIETARY:
|
|
||||||
screen->max_fences = 500;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
screen->max_fences = 5000;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!zink_screen_init_semaphore(screen)) {
|
if (!zink_screen_init_semaphore(screen)) {
|
||||||
mesa_loge("zink: failed to create timeline semaphore");
|
mesa_loge("zink: failed to create timeline semaphore");
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@@ -144,7 +144,6 @@ struct zink_screen {
|
|||||||
uint32_t gfx_queue;
|
uint32_t gfx_queue;
|
||||||
uint32_t max_queues;
|
uint32_t max_queues;
|
||||||
uint32_t timestamp_valid_bits;
|
uint32_t timestamp_valid_bits;
|
||||||
unsigned max_fences;
|
|
||||||
VkDevice dev;
|
VkDevice dev;
|
||||||
VkQueue queue; //gfx+compute
|
VkQueue queue; //gfx+compute
|
||||||
VkQueue thread_queue; //gfx+compute
|
VkQueue thread_queue; //gfx+compute
|
||||||
|
Reference in New Issue
Block a user