From bfa55eb65cf2ed4818b4fa1e9210a224e53417ab Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 12 Feb 2019 19:14:28 +0100 Subject: [PATCH] Fix radv vulkan Signed-off-by: Igor Gnatenko --- ...-radv-fix-compiler-issues-with-GCC-9.patch | 133 ++++++++++++++++++ mesa.spec | 8 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 0001-radv-fix-compiler-issues-with-GCC-9.patch diff --git a/0001-radv-fix-compiler-issues-with-GCC-9.patch b/0001-radv-fix-compiler-issues-with-GCC-9.patch new file mode 100644 index 0000000..90f2d7e --- /dev/null +++ b/0001-radv-fix-compiler-issues-with-GCC-9.patch @@ -0,0 +1,133 @@ +From 129a9f4937b8f2adb4d37999677d748d816d611c Mon Sep 17 00:00:00 2001 +From: Samuel Pitoiset +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: +Signed-off-by: Samuel Pitoiset +Reviewed-by: Gustaw Smolarczyk +Reviewed-by: Bas Nieuwenhuizen +--- + 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 + diff --git a/mesa.spec b/mesa.spec index 5157826..b715e65 100644 --- a/mesa.spec +++ b/mesa.spec @@ -50,7 +50,7 @@ Name: mesa Summary: Mesa graphics libraries %global ver 19.0.0-rc2 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} -Release: 2%{?dist} +Release: 3%{?dist} License: MIT URL: http://www.mesa3d.org @@ -74,6 +74,9 @@ Patch7: 0001-gallium-Disable-rgb10-configs-by-default.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1650929 Patch10: 0001-wayland-egl-Ensure-EGL-surface-is-resized-on-DRI-upd.patch +# https://gitlab.freedesktop.org/mesa/mesa/commit/129a9f4937b8f2adb4d37999677d748d816d611c +Patch20: 0001-radv-fix-compiler-issues-with-GCC-9.patch + BuildRequires: meson >= 0.45 BuildRequires: gcc BuildRequires: gcc-c++ @@ -637,6 +640,9 @@ popd %endif %changelog +* Tue Feb 12 2019 Igor Gnatenko - 19.0.0~rc2-3 +- Fix radv vulkan + * Fri Feb 08 2019 Pete Walter - 19.0.0~rc2-2 - Add back accidentally lost patch to disable rgb10 configs by default (#1650929)