bfa55eb65c
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
134 lines
4.5 KiB
Diff
134 lines
4.5 KiB
Diff
From 129a9f4937b8f2adb4d37999677d748d816d611c Mon Sep 17 00:00:00 2001
|
|
From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
|
Date: Mon, 11 Feb 2019 10:17:52 +0100
|
|
Subject: [PATCH] radv: fix compiler issues with GCC 9
|
|
|
|
"The C standard says that compound literals which occur inside of
|
|
the body of a function have automatic storage duration associated
|
|
with the enclosing block. Older GCC releases were putting such
|
|
compound literals into the scope of the whole function, so their
|
|
lifetime actually ended at the end of containing function. This
|
|
has been fixed in GCC 9. Code that relied on this extended lifetime
|
|
needs to be fixed, move the compound literals to whatever scope
|
|
they need to accessible in."
|
|
|
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109543
|
|
Cc: <mesa-stable@lists.freedesktop.org>
|
|
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
|
Reviewed-by: Gustaw Smolarczyk <wielkiegie@gmail.com>
|
|
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
|
---
|
|
src/amd/vulkan/radv_meta_blit.c | 90 ++++++++++++++++++---------------
|
|
1 file changed, 48 insertions(+), 42 deletions(-)
|
|
|
|
diff --git a/src/amd/vulkan/radv_meta_blit.c b/src/amd/vulkan/radv_meta_blit.c
|
|
index a2ba7e45022..5af9c4a303f 100644
|
|
--- a/src/amd/vulkan/radv_meta_blit.c
|
|
+++ b/src/amd/vulkan/radv_meta_blit.c
|
|
@@ -849,54 +849,60 @@ build_pipeline(struct radv_device *device,
|
|
.subpass = 0,
|
|
};
|
|
|
|
- switch(aspect) {
|
|
- case VK_IMAGE_ASPECT_COLOR_BIT:
|
|
- vk_pipeline_info.pColorBlendState = &(VkPipelineColorBlendStateCreateInfo) {
|
|
- .sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
|
- .attachmentCount = 1,
|
|
- .pAttachments = (VkPipelineColorBlendAttachmentState []) {
|
|
- { .colorWriteMask =
|
|
- VK_COLOR_COMPONENT_A_BIT |
|
|
- VK_COLOR_COMPONENT_R_BIT |
|
|
- VK_COLOR_COMPONENT_G_BIT |
|
|
- VK_COLOR_COMPONENT_B_BIT },
|
|
+ VkPipelineColorBlendStateCreateInfo color_blend_info = {
|
|
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
|
|
+ .attachmentCount = 1,
|
|
+ .pAttachments = (VkPipelineColorBlendAttachmentState []) {
|
|
+ {
|
|
+ .colorWriteMask = VK_COLOR_COMPONENT_A_BIT |
|
|
+ VK_COLOR_COMPONENT_R_BIT |
|
|
+ VK_COLOR_COMPONENT_G_BIT |
|
|
+ VK_COLOR_COMPONENT_B_BIT },
|
|
}
|
|
};
|
|
+
|
|
+ VkPipelineDepthStencilStateCreateInfo depth_info = {
|
|
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
|
+ .depthTestEnable = true,
|
|
+ .depthWriteEnable = true,
|
|
+ .depthCompareOp = VK_COMPARE_OP_ALWAYS,
|
|
+ };
|
|
+
|
|
+ VkPipelineDepthStencilStateCreateInfo stencil_info = {
|
|
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
|
+ .depthTestEnable = false,
|
|
+ .depthWriteEnable = false,
|
|
+ .stencilTestEnable = true,
|
|
+ .front = {
|
|
+ .failOp = VK_STENCIL_OP_REPLACE,
|
|
+ .passOp = VK_STENCIL_OP_REPLACE,
|
|
+ .depthFailOp = VK_STENCIL_OP_REPLACE,
|
|
+ .compareOp = VK_COMPARE_OP_ALWAYS,
|
|
+ .compareMask = 0xff,
|
|
+ .writeMask = 0xff,
|
|
+ .reference = 0
|
|
+ },
|
|
+ .back = {
|
|
+ .failOp = VK_STENCIL_OP_REPLACE,
|
|
+ .passOp = VK_STENCIL_OP_REPLACE,
|
|
+ .depthFailOp = VK_STENCIL_OP_REPLACE,
|
|
+ .compareOp = VK_COMPARE_OP_ALWAYS,
|
|
+ .compareMask = 0xff,
|
|
+ .writeMask = 0xff,
|
|
+ .reference = 0
|
|
+ },
|
|
+ .depthCompareOp = VK_COMPARE_OP_ALWAYS,
|
|
+ };
|
|
+
|
|
+ switch(aspect) {
|
|
+ case VK_IMAGE_ASPECT_COLOR_BIT:
|
|
+ vk_pipeline_info.pColorBlendState = &color_blend_info;
|
|
break;
|
|
case VK_IMAGE_ASPECT_DEPTH_BIT:
|
|
- vk_pipeline_info.pDepthStencilState = &(VkPipelineDepthStencilStateCreateInfo) {
|
|
- .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
|
- .depthTestEnable = true,
|
|
- .depthWriteEnable = true,
|
|
- .depthCompareOp = VK_COMPARE_OP_ALWAYS,
|
|
- };
|
|
+ vk_pipeline_info.pDepthStencilState = &depth_info;
|
|
break;
|
|
case VK_IMAGE_ASPECT_STENCIL_BIT:
|
|
- vk_pipeline_info.pDepthStencilState = &(VkPipelineDepthStencilStateCreateInfo) {
|
|
- .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
|
- .depthTestEnable = false,
|
|
- .depthWriteEnable = false,
|
|
- .stencilTestEnable = true,
|
|
- .front = {
|
|
- .failOp = VK_STENCIL_OP_REPLACE,
|
|
- .passOp = VK_STENCIL_OP_REPLACE,
|
|
- .depthFailOp = VK_STENCIL_OP_REPLACE,
|
|
- .compareOp = VK_COMPARE_OP_ALWAYS,
|
|
- .compareMask = 0xff,
|
|
- .writeMask = 0xff,
|
|
- .reference = 0
|
|
- },
|
|
- .back = {
|
|
- .failOp = VK_STENCIL_OP_REPLACE,
|
|
- .passOp = VK_STENCIL_OP_REPLACE,
|
|
- .depthFailOp = VK_STENCIL_OP_REPLACE,
|
|
- .compareOp = VK_COMPARE_OP_ALWAYS,
|
|
- .compareMask = 0xff,
|
|
- .writeMask = 0xff,
|
|
- .reference = 0
|
|
- },
|
|
- .depthCompareOp = VK_COMPARE_OP_ALWAYS,
|
|
- };
|
|
+ vk_pipeline_info.pDepthStencilState = &stencil_info;
|
|
break;
|
|
default:
|
|
unreachable("Unhandled aspect");
|
|
--
|
|
2.20.1
|
|
|