Merge pull request #9557 from FernandoS27/ooops-i-killed-the-shitty-drivers

Vulkan: Fix drivers that don't support dynamic_state_2 up
This commit is contained in:
liamwhite 2023-01-05 00:14:01 -05:00 committed by GitHub
commit e82e3e06be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 8 deletions

View file

@ -148,7 +148,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe
}); });
} }
if (!extended_dynamic_state_2_extra) { 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 (!extended_dynamic_state_3_blend) {
if (maxwell3d.dirty.flags[Dirty::Blending]) { if (maxwell3d.dirty.flags[Dirty::Blending]) {

View file

@ -644,12 +644,15 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
.pNext = nullptr, .pNext = nullptr,
.flags = 0, .flags = 0,
.topology = input_assembly_topology, .topology = input_assembly_topology,
.primitiveRestartEnable = dynamic.primitive_restart_enable != 0 && .primitiveRestartEnable =
((input_assembly_topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && dynamic.primitive_restart_enable != 0 &&
device.IsTopologyListPrimitiveRestartSupported()) || ((input_assembly_topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST &&
SupportsPrimitiveRestart(input_assembly_topology) || device.IsTopologyListPrimitiveRestartSupported()) ||
(input_assembly_topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST && SupportsPrimitiveRestart(input_assembly_topology) ||
device.IsPatchListPrimitiveRestartSupported())), (input_assembly_topology == VK_PRIMITIVE_TOPOLOGY_PATCH_LIST &&
device.IsPatchListPrimitiveRestartSupported()))
? VK_TRUE
: VK_FALSE,
}; };
const VkPipelineTessellationStateCreateInfo tessellation_ci{ const VkPipelineTessellationStateCreateInfo tessellation_ci{
.sType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, .sType = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
@ -699,7 +702,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
.cullMode = static_cast<VkCullModeFlags>( .cullMode = static_cast<VkCullModeFlags>(
dynamic.cull_enable ? MaxwellToVK::CullFace(dynamic.CullFace()) : VK_CULL_MODE_NONE), dynamic.cull_enable ? MaxwellToVK::CullFace(dynamic.CullFace()) : VK_CULL_MODE_NONE),
.frontFace = MaxwellToVK::FrontFace(dynamic.FrontFace()), .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, .depthBiasConstantFactor = 0.0f,
.depthBiasClamp = 0.0f, .depthBiasClamp = 0.0f,
.depthBiasSlopeFactor = 0.0f, .depthBiasSlopeFactor = 0.0f,