venus: only request ring thread prio for TLS ring

Mainly to leave main ring thread prio to default.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30279>
This commit is contained in:
Yiwei Zhang 2024-07-19 21:00:01 -07:00 committed by Marge Bot
parent cc82f80dcb
commit bb7632128b
4 changed files with 9 additions and 5 deletions

View file

@ -333,7 +333,8 @@ vn_tls_get_ring(struct vn_instance *instance)
struct vn_ring_layout layout;
vn_ring_get_layout(buf_size, extra_size, &layout);
tls_ring->ring = vn_ring_create(instance, &layout, direct_order);
tls_ring->ring =
vn_ring_create(instance, &layout, direct_order, true /* is_tls_ring */);
if (!tls_ring->ring) {
free(tls_ring);
return NULL;

View file

@ -139,7 +139,8 @@ vn_instance_init_ring(struct vn_instance *instance)
struct vn_ring_layout layout;
vn_ring_get_layout(buf_size, extra_size, &layout);
instance->ring.ring = vn_ring_create(instance, &layout, direct_order);
instance->ring.ring = vn_ring_create(instance, &layout, direct_order,
false /* is_tls_ring */);
if (!instance->ring.ring)
return VK_ERROR_OUT_OF_HOST_MEMORY;

View file

@ -270,7 +270,8 @@ vn_ring_get_layout(size_t buf_size,
struct vn_ring *
vn_ring_create(struct vn_instance *instance,
const struct vn_ring_layout *layout,
uint8_t direct_order)
uint8_t direct_order,
bool is_tls_ring)
{
VN_TRACE_FUNC();
@ -327,7 +328,7 @@ vn_ring_create(struct vn_instance *instance,
if (instance->renderer->info.vk_mesa_venus_protocol_spec_version >= 2) {
errno = 0;
prio = getpriority(PRIO_PROCESS, 0);
ring_priority = !(prio == -1 && errno);
ring_priority = is_tls_ring && !(prio == -1 && errno);
}
const struct VkRingPriorityInfoMESA priority_info = {
.sType = VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA,

View file

@ -47,7 +47,8 @@ vn_ring_get_layout(size_t buf_size,
struct vn_ring *
vn_ring_create(struct vn_instance *instance,
const struct vn_ring_layout *layout,
uint8_t direct_order);
uint8_t direct_order,
bool is_tls_ring);
void
vn_ring_destroy(struct vn_ring *ring);