diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-01-05 00:14:01 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-05 00:14:01 -0500 | 
| commit | e82e3e06be0b419a4d30342a44a04d79fbbfc6cb (patch) | |
| tree | 03caef4f3c3a00a12cb04be128aaa65497cd0d4a | |
| parent | b78328f19a54964ef6874281d1a4d6b6ad1c34d9 (diff) | |
| parent | 4d9af4a9d288cf01522047bf2fa77fddd8ace146 (diff) | |
Merge pull request #9557 from FernandoS27/ooops-i-killed-the-shitty-drivers
Vulkan: Fix drivers that don't support dynamic_state_2 up
| -rw-r--r-- | src/video_core/renderer_vulkan/fixed_pipeline_state.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 17 | 
2 files changed, 11 insertions, 8 deletions
| diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp index 3d328a250..f8398b511 100644 --- a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp +++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp @@ -148,7 +148,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe          });      }      if (!extended_dynamic_state_2_extra) { -        dynamic_state.Refresh2(regs, topology, extended_dynamic_state_2); +        dynamic_state.Refresh2(regs, topology_, extended_dynamic_state_2);      }      if (!extended_dynamic_state_3_blend) {          if (maxwell3d.dirty.flags[Dirty::Blending]) { diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index d11383bf1..734c379b9 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -644,12 +644,15 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {          .pNext = nullptr,          .flags = 0,          .topology = input_assembly_topology, -        .primitiveRestartEnable = dynamic.primitive_restart_enable != 0 && -                                  ((input_assembly_topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && -                                    device.IsTopologyListPrimitiveRestartSupported()) || -                                   SupportsPrimitiveRestart(input_assembly_topology) || -                                   (input_assembly_topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && -                                    device.IsPatchListPrimitiveRestartSupported())), +        .primitiveRestartEnable = +            dynamic.primitive_restart_enable != 0 && +                    ((input_assembly_topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && +                      device.IsTopologyListPrimitiveRestartSupported()) || +                     SupportsPrimitiveRestart(input_assembly_topology) || +                     (input_assembly_topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && +                      device.IsPatchListPrimitiveRestartSupported())) +                ? VK_TRUE +                : VK_FALSE,      };      const VkPipelineTessellationStateCreateInfo tessellation_ci{          .sType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, @@ -699,7 +702,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {          .cullMode = static_cast<VkCullModeFlags>(              dynamic.cull_enable ? MaxwellToVK::CullFace(dynamic.CullFace()) : VK_CULL_MODE_NONE),          .frontFace = MaxwellToVK::FrontFace(dynamic.FrontFace()), -        .depthBiasEnable = (dynamic.depth_bias_enable == 0 ? VK_TRUE : VK_FALSE), +        .depthBiasEnable = (dynamic.depth_bias_enable != 0 ? VK_TRUE : VK_FALSE),          .depthBiasConstantFactor = 0.0f,          .depthBiasClamp = 0.0f,          .depthBiasSlopeFactor = 0.0f, | 
