venus: add NO_TIMELINE_SEM_FEEDBACK perf option

Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20500>
This commit is contained in:
Juston Li 2022-12-21 11:46:42 -08:00 committed by Marge Bot
parent 493a3b5cda
commit 56c6e4862a
4 changed files with 7 additions and 4 deletions

View file

@ -41,6 +41,7 @@ static const struct debug_control vn_perf_options[] = {
{ "no_fence_feedback", VN_PERF_NO_FENCE_FEEDBACK },
{ "no_memory_suballoc", VN_PERF_NO_MEMORY_SUBALLOC },
{ "no_cmd_batching", VN_PERF_NO_CMD_BATCHING },
{ "no_timeline_sem_feedback", VN_PERF_NO_TIMELINE_SEM_FEEDBACK },
{ NULL, 0 },
/* clang-format on */
};

View file

@ -112,6 +112,7 @@ enum vn_perf {
VN_PERF_NO_FENCE_FEEDBACK = 1ull << 4,
VN_PERF_NO_MEMORY_SUBALLOC = 1ull << 5,
VN_PERF_NO_CMD_BATCHING = 1ull << 6,
VN_PERF_NO_TIMELINE_SEM_FEEDBACK = 1ull << 7,
};
typedef uint64_t vn_object_id;

View file

@ -346,7 +346,8 @@ vn_device_feedback_pool_init(struct vn_device *dev)
static const uint32_t pool_size = 4096;
const VkAllocationCallbacks *alloc = &dev->base.base.alloc;
if (VN_PERF(NO_EVENT_FEEDBACK) && VN_PERF(NO_FENCE_FEEDBACK))
if (VN_PERF(NO_EVENT_FEEDBACK) && VN_PERF(NO_FENCE_FEEDBACK) &&
VN_PERF(NO_TIMELINE_SEM_FEEDBACK))
return VK_SUCCESS;
return vn_feedback_pool_init(dev, &dev->feedback_pool, pool_size, alloc);
@ -355,7 +356,8 @@ vn_device_feedback_pool_init(struct vn_device *dev)
static inline void
vn_device_feedback_pool_fini(struct vn_device *dev)
{
if (VN_PERF(NO_EVENT_FEEDBACK) && VN_PERF(NO_FENCE_FEEDBACK))
if (VN_PERF(NO_EVENT_FEEDBACK) && VN_PERF(NO_FENCE_FEEDBACK) &&
VN_PERF(NO_TIMELINE_SEM_FEEDBACK))
return;
vn_feedback_pool_fini(&dev->feedback_pool);

View file

@ -519,8 +519,7 @@ vn_feedback_cmd_pools_init(struct vn_device *dev)
.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
};
/* TODO will also condition on timeline semaphore feedback */
if (VN_PERF(NO_FENCE_FEEDBACK))
if (VN_PERF(NO_FENCE_FEEDBACK) && VN_PERF(NO_TIMELINE_SEM_FEEDBACK))
return VK_SUCCESS;
assert(dev->queue_family_count);