diff options
| author | 2022-12-05 17:14:34 +0100 | |
|---|---|---|
| committer | 2023-01-01 16:43:58 -0500 | |
| commit | f800e485c9bcd98e08128db974540e7ba0324128 (patch) | |
| tree | c931bf1f7e8aa04d6f0ea6c110dedc1c10642cab /src/video_core/vulkan_common | |
| parent | Vulkan: Implement Dynamic States 2 (diff) | |
| download | yuzu-f800e485c9bcd98e08128db974540e7ba0324128.tar.gz yuzu-f800e485c9bcd98e08128db974540e7ba0324128.tar.xz yuzu-f800e485c9bcd98e08128db974540e7ba0324128.zip | |
Vulkan Implement Dynamic State 2 LogicOp and PatchVertices
Diffstat (limited to 'src/video_core/vulkan_common')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.h | 10 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 9a420a293..7294fcfe3 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -576,8 +576,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 576 | .pNext = nullptr, | 576 | .pNext = nullptr, |
| 577 | .extendedDynamicState2 = VK_TRUE, | 577 | .extendedDynamicState2 = VK_TRUE, |
| 578 | .extendedDynamicState2LogicOp = ext_extended_dynamic_state2_extra ? VK_TRUE : VK_FALSE, | 578 | .extendedDynamicState2LogicOp = ext_extended_dynamic_state2_extra ? VK_TRUE : VK_FALSE, |
| 579 | .extendedDynamicState2PatchControlPoints = | ||
| 580 | ext_extended_dynamic_state2_extra ? VK_TRUE : VK_FALSE, | ||
| 581 | }; | 579 | }; |
| 582 | SetNext(next, dynamic_state2); | 580 | SetNext(next, dynamic_state2); |
| 583 | } else { | 581 | } else { |
| @@ -1330,8 +1328,7 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) { | |||
| 1330 | extensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); | 1328 | extensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); |
| 1331 | ext_extended_dynamic_state2 = true; | 1329 | ext_extended_dynamic_state2 = true; |
| 1332 | ext_extended_dynamic_state2_extra = | 1330 | ext_extended_dynamic_state2_extra = |
| 1333 | extended_dynamic_state2.extendedDynamicState2LogicOp && | 1331 | extended_dynamic_state2.extendedDynamicState2LogicOp; |
| 1334 | extended_dynamic_state2.extendedDynamicState2PatchControlPoints; | ||
| 1335 | } | 1332 | } |
| 1336 | } | 1333 | } |
| 1337 | if (has_ext_extended_dynamic_state3) { | 1334 | if (has_ext_extended_dynamic_state3) { |
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index 4dde325ff..8745cf80f 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp | |||
| @@ -126,6 +126,8 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept { | |||
| 126 | X(vkCmdSetRasterizerDiscardEnableEXT); | 126 | X(vkCmdSetRasterizerDiscardEnableEXT); |
| 127 | X(vkCmdSetDepthBiasEnableEXT); | 127 | X(vkCmdSetDepthBiasEnableEXT); |
| 128 | X(vkCmdSetFrontFaceEXT); | 128 | X(vkCmdSetFrontFaceEXT); |
| 129 | X(vkCmdSetLogicOpEXT); | ||
| 130 | X(vkCmdSetPatchControlPointsEXT); | ||
| 129 | X(vkCmdSetLineWidth); | 131 | X(vkCmdSetLineWidth); |
| 130 | X(vkCmdSetPrimitiveTopologyEXT); | 132 | X(vkCmdSetPrimitiveTopologyEXT); |
| 131 | X(vkCmdSetStencilOpEXT); | 133 | X(vkCmdSetStencilOpEXT); |
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index 0d3f71460..c4b7051fc 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h | |||
| @@ -239,6 +239,8 @@ struct DeviceDispatch : InstanceDispatch { | |||
| 239 | PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT{}; | 239 | PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT{}; |
| 240 | PFN_vkCmdSetEvent vkCmdSetEvent{}; | 240 | PFN_vkCmdSetEvent vkCmdSetEvent{}; |
| 241 | PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT{}; | 241 | PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT{}; |
| 242 | PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT{}; | ||
| 243 | PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT{}; | ||
| 242 | PFN_vkCmdSetLineWidth vkCmdSetLineWidth{}; | 244 | PFN_vkCmdSetLineWidth vkCmdSetLineWidth{}; |
| 243 | PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT{}; | 245 | PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT{}; |
| 244 | PFN_vkCmdSetScissor vkCmdSetScissor{}; | 246 | PFN_vkCmdSetScissor vkCmdSetScissor{}; |
| @@ -1238,6 +1240,14 @@ public: | |||
| 1238 | dld->vkCmdSetFrontFaceEXT(handle, front_face); | 1240 | dld->vkCmdSetFrontFaceEXT(handle, front_face); |
| 1239 | } | 1241 | } |
| 1240 | 1242 | ||
| 1243 | void SetLogicOpEXT(VkLogicOp logic_op) const noexcept { | ||
| 1244 | dld->vkCmdSetLogicOpEXT(handle, logic_op); | ||
| 1245 | } | ||
| 1246 | |||
| 1247 | void SetPatchControlPointsEXT(uint32_t patch_control_points) const noexcept { | ||
| 1248 | dld->vkCmdSetPatchControlPointsEXT(handle, patch_control_points); | ||
| 1249 | } | ||
| 1250 | |||
| 1241 | void SetLineWidth(float line_width) const noexcept { | 1251 | void SetLineWidth(float line_width) const noexcept { |
| 1242 | dld->vkCmdSetLineWidth(handle, line_width); | 1252 | dld->vkCmdSetLineWidth(handle, line_width); |
| 1243 | } | 1253 | } |