zink: set PIPE_CAP_SURFACE_REINTERPRET_BLOCKS

this fixes perf for CompressedTexSubImage and makes DOOM2016 run at full speed

ref #8223

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21218>
This commit is contained in:
Mike Blumenkrantz 2023-02-09 09:22:14 -05:00
parent e3b746e3a3
commit dc91f2c71b
2 changed files with 7 additions and 0 deletions

View file

@ -470,6 +470,10 @@ create_ici(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe
ici->usage = 0; ici->usage = 0;
ici->queueFamilyIndexCount = 0; ici->queueFamilyIndexCount = 0;
/* assume we're going to be doing some CompressedTexSubImage */
if (util_format_is_compressed(templ->format) && (ici->flags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT))
ici->flags |= VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT;
if (templ->flags & PIPE_RESOURCE_FLAG_SPARSE) if (templ->flags & PIPE_RESOURCE_FLAG_SPARSE)
ici->flags |= VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT; ici->flags |= VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT;

View file

@ -531,6 +531,9 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_NATIVE_FENCE_FD: case PIPE_CAP_NATIVE_FENCE_FD:
return screen->instance_info.have_KHR_external_semaphore_capabilities && screen->info.have_KHR_external_semaphore_fd; return screen->instance_info.have_KHR_external_semaphore_capabilities && screen->info.have_KHR_external_semaphore_fd;
case PIPE_CAP_SURFACE_REINTERPRET_BLOCKS:
return screen->info.have_vulkan11 || screen->info.have_KHR_maintenance2;
case PIPE_CAP_VALIDATE_ALL_DIRTY_STATES: case PIPE_CAP_VALIDATE_ALL_DIRTY_STATES:
case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:
case PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE: case PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE: