mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
vulkan,anv,dozen: Use VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
This has basically identical semantics to the pseudo-ext enum we were using before. Also, now that it's in the actual Vulkan enum, we can get rid of all the #pragma garbage to avoid compiler warnings. Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084>
This commit is contained in:
parent
10de12d710
commit
7077b72d60
5 changed files with 25 additions and 46 deletions
|
|
@ -7167,7 +7167,7 @@ void genX(CmdEndRendering)(
|
|||
* - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
|
||||
* - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
|
||||
* - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
|
||||
* - VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA
|
||||
* - VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
|
||||
*
|
||||
* For general, we have no nice opportunity to transition so we do the copy
|
||||
* to the shadow unconditionally at the end of the subpass. For transfer
|
||||
|
|
@ -7182,7 +7182,7 @@ void genX(CmdEndRendering)(
|
|||
|
||||
if (anv_surface_is_valid(&image->planes[plane].shadow_surface) &&
|
||||
(gfx->stencil_att.layout == VK_IMAGE_LAYOUT_GENERAL ||
|
||||
gfx->stencil_att.layout == VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA)) {
|
||||
gfx->stencil_att.layout == VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT)) {
|
||||
anv_image_copy_to_shadow(cmd_buffer, image,
|
||||
VK_IMAGE_ASPECT_STENCIL_BIT,
|
||||
iview->planes[plane].isl.base_level, 1,
|
||||
|
|
|
|||
|
|
@ -534,14 +534,6 @@ dzn_image_layout_to_state(const struct dzn_image *image,
|
|||
VkImageLayout layout,
|
||||
VkImageAspectFlagBits aspect)
|
||||
{
|
||||
/* Handle VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA separately to
|
||||
* silence -Wswitch warnings (VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA is
|
||||
* not part of the official VkImageLayout enum, it's a define in
|
||||
* vk_render_pass.h)
|
||||
*/
|
||||
if (layout == VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA)
|
||||
return D3D12_RESOURCE_STATE_COMMON;
|
||||
|
||||
D3D12_RESOURCE_STATES shaders_access =
|
||||
(image->desc.Flags & D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE) ?
|
||||
0 : D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE;
|
||||
|
|
@ -585,6 +577,9 @@ dzn_image_layout_to_state(const struct dzn_image *image,
|
|||
case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
|
||||
return D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE;
|
||||
|
||||
case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:
|
||||
return D3D12_RESOURCE_STATE_COMMON;
|
||||
|
||||
default:
|
||||
unreachable("not implemented");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -557,14 +557,6 @@ vk_image_layout_is_read_only(VkImageLayout layout,
|
|||
case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:
|
||||
case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:
|
||||
case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wswitch"
|
||||
#endif
|
||||
case VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
return false;
|
||||
|
||||
case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:
|
||||
|
|
@ -712,14 +704,6 @@ vk_image_layout_to_usage_flags(VkImageLayout layout,
|
|||
return 0u;
|
||||
|
||||
case VK_IMAGE_LAYOUT_GENERAL:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wswitch"
|
||||
#endif
|
||||
case VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
return ~0u;
|
||||
|
||||
case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
|
||||
|
|
@ -823,10 +807,19 @@ vk_image_layout_to_usage_flags(VkImageLayout layout,
|
|||
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
|
||||
|
||||
case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:
|
||||
return VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||
if (aspect == VK_IMAGE_ASPECT_DEPTH_BIT ||
|
||||
aspect == VK_IMAGE_ASPECT_STENCIL_BIT) {
|
||||
return VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_SAMPLED_BIT |
|
||||
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT;
|
||||
} else {
|
||||
assert(aspect == VK_IMAGE_ASPECT_COLOR_BIT);
|
||||
return VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_SAMPLED_BIT |
|
||||
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
|
||||
VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT;
|
||||
}
|
||||
|
||||
case VK_IMAGE_LAYOUT_MAX_ENUM:
|
||||
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||
|
|
|
|||
|
|
@ -615,9 +615,9 @@ vk_common_CreateRenderPass2(VkDevice _device,
|
|||
if (desc->pColorAttachments[c].attachment ==
|
||||
desc->pInputAttachments[a].attachment) {
|
||||
subpass->input_attachments[a].layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
subpass->color_attachments[c].layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
color_self_deps |= (1u << c);
|
||||
}
|
||||
}
|
||||
|
|
@ -629,16 +629,16 @@ vk_common_CreateRenderPass2(VkDevice _device,
|
|||
subpass->input_attachments[a].aspects;
|
||||
if (aspects & VK_IMAGE_ASPECT_DEPTH_BIT) {
|
||||
subpass->input_attachments[a].layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
subpass->depth_stencil_attachment->layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
has_depth_self_dep = true;
|
||||
}
|
||||
if (aspects & VK_IMAGE_ASPECT_STENCIL_BIT) {
|
||||
subpass->input_attachments[a].stencil_layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
subpass->depth_stencil_attachment->stencil_layout =
|
||||
VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA;
|
||||
VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT;
|
||||
has_stencil_self_dep = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1142,14 +1142,7 @@ vk_image_layout_supports_input_attachment(VkImageLayout layout)
|
|||
case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:
|
||||
case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:
|
||||
case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wswitch"
|
||||
#endif
|
||||
case VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA:
|
||||
#ifdef __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -79,8 +79,6 @@ typedef struct VkRenderingAttachmentInitialLayoutInfoMESA {
|
|||
VkImageLayout initialLayout;
|
||||
} VkRenderingAttachmentInitialLayoutInfoMESA;
|
||||
|
||||
#define VK_IMAGE_LAYOUT_SUBPASS_SELF_DEPENDENCY_MESA (VkImageLayout)1000044902
|
||||
|
||||
struct vk_subpass_attachment {
|
||||
/** VkAttachmentReference2::attachment */
|
||||
uint32_t attachment;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue