mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-20 04:30:22 +01:00
zink: stop using vk lazy allocations / transient attachments
this doesn't actually work since it uses multiple renderpasses to do the replicate operation cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37743>
This commit is contained in:
parent
f16d3bf042
commit
efe1926cf0
1 changed files with 14 additions and 18 deletions
|
|
@ -414,28 +414,27 @@ get_image_usage_for_feats(struct zink_screen *screen, VkFormatFeatureFlags2 feat
|
|||
*need_extended = false;
|
||||
|
||||
if (bind & ZINK_BIND_TRANSIENT)
|
||||
usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT;
|
||||
else {
|
||||
/* sadly, gallium doesn't let us know if it'll ever need this, so we have to assume */
|
||||
if (is_planar || (feats & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT))
|
||||
usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
|
||||
if (is_planar || (feats & VK_FORMAT_FEATURE_TRANSFER_DST_BIT))
|
||||
usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
|
||||
if (feats & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)
|
||||
usage |= VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
return util_format_is_depth_or_stencil(templ->format) ? VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT : VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
|
||||
|
||||
if ((is_planar || (feats & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT)) && (bind & PIPE_BIND_SHADER_IMAGE)) {
|
||||
assert(templ->nr_samples <= 1 || screen->info.feats.features.shaderStorageImageMultisample);
|
||||
usage |= VK_IMAGE_USAGE_STORAGE_BIT;
|
||||
}
|
||||
/* sadly, gallium doesn't let us know if it'll ever need this, so we have to assume */
|
||||
if (is_planar || (feats & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT))
|
||||
usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
|
||||
if (is_planar || (feats & VK_FORMAT_FEATURE_TRANSFER_DST_BIT))
|
||||
usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
|
||||
if (feats & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)
|
||||
usage |= VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
|
||||
if ((is_planar || (feats & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT)) && (bind & PIPE_BIND_SHADER_IMAGE)) {
|
||||
assert(templ->nr_samples <= 1 || screen->info.feats.features.shaderStorageImageMultisample);
|
||||
usage |= VK_IMAGE_USAGE_STORAGE_BIT;
|
||||
}
|
||||
|
||||
if (bind & PIPE_BIND_RENDER_TARGET) {
|
||||
if (feats & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) {
|
||||
usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
|
||||
if (!(bind & ZINK_BIND_TRANSIENT) && (bind & (PIPE_BIND_LINEAR | PIPE_BIND_SHARED)) != (PIPE_BIND_LINEAR | PIPE_BIND_SHARED))
|
||||
if ((bind & (PIPE_BIND_LINEAR | PIPE_BIND_SHARED)) != (PIPE_BIND_LINEAR | PIPE_BIND_SHARED))
|
||||
usage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
|
||||
if (!(bind & ZINK_BIND_TRANSIENT) && screen->info.have_EXT_attachment_feedback_loop_layout)
|
||||
if (screen->info.have_EXT_attachment_feedback_loop_layout)
|
||||
usage |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT;
|
||||
} else {
|
||||
/* trust that gallium isn't going to give us anything wild */
|
||||
|
|
@ -1096,9 +1095,6 @@ update_alloc_info_flags(struct zink_screen *screen, const struct pipe_resource *
|
|||
templ->usage == PIPE_USAGE_STAGING)
|
||||
alloc_info->flags |= VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
|
||||
|
||||
if (templ->bind & ZINK_BIND_TRANSIENT)
|
||||
alloc_info->flags |= VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
|
||||
|
||||
if (alloc_info->user_mem) {
|
||||
VkExternalMemoryHandleTypeFlagBits handle_type = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT;
|
||||
VkMemoryHostPointerPropertiesEXT memory_host_pointer_properties = {0};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue