diff options
| author | 2022-12-24 19:19:41 -0500 | |
|---|---|---|
| committer | 2023-01-01 16:43:58 -0500 | |
| commit | d09aa0182f18d1ac338ab47009b42fdeb67497a8 (patch) | |
| tree | 1b3ae726f7aaa465b30fba795cfca0ae88d2140b /src/video_core/vulkan_common | |
| parent | Rasterizer: Setup skeleton for Host Conditional rendering (diff) | |
| download | yuzu-d09aa0182f18d1ac338ab47009b42fdeb67497a8.tar.gz yuzu-d09aa0182f18d1ac338ab47009b42fdeb67497a8.tar.xz yuzu-d09aa0182f18d1ac338ab47009b42fdeb67497a8.zip | |
MacroHLE: Final cleanup and fixes.
Diffstat (limited to 'src/video_core/vulkan_common')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 24 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.h | 52 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.h | 3 |
3 files changed, 44 insertions, 35 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 780f5dede..ea62edb13 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -587,11 +587,16 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 587 | dynamic_state_3 = { | 587 | dynamic_state_3 = { |
| 588 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, | 588 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT, |
| 589 | .pNext = nullptr, | 589 | .pNext = nullptr, |
| 590 | .extendedDynamicState3DepthClampEnable = ext_extended_dynamic_state_3_enables ? VK_TRUE : VK_FALSE, | 590 | .extendedDynamicState3DepthClampEnable = |
| 591 | .extendedDynamicState3LogicOpEnable = ext_extended_dynamic_state_3_enables ? VK_TRUE : VK_FALSE, | 591 | ext_extended_dynamic_state_3_enables ? VK_TRUE : VK_FALSE, |
| 592 | .extendedDynamicState3ColorBlendEnable = ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | 592 | .extendedDynamicState3LogicOpEnable = |
| 593 | .extendedDynamicState3ColorBlendEquation = ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | 593 | ext_extended_dynamic_state_3_enables ? VK_TRUE : VK_FALSE, |
| 594 | .extendedDynamicState3ColorWriteMask = ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | 594 | .extendedDynamicState3ColorBlendEnable = |
| 595 | ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | ||
| 596 | .extendedDynamicState3ColorBlendEquation = | ||
| 597 | ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | ||
| 598 | .extendedDynamicState3ColorWriteMask = | ||
| 599 | ext_extended_dynamic_state_3_blend ? VK_TRUE : VK_FALSE, | ||
| 595 | }; | 600 | }; |
| 596 | SetNext(next, dynamic_state_3); | 601 | SetNext(next, dynamic_state_3); |
| 597 | } else { | 602 | } else { |
| @@ -1342,14 +1347,17 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) { | |||
| 1342 | features.pNext = &extended_dynamic_state_3; | 1347 | features.pNext = &extended_dynamic_state_3; |
| 1343 | physical.GetFeatures2(features); | 1348 | physical.GetFeatures2(features); |
| 1344 | 1349 | ||
| 1345 | ext_extended_dynamic_state_3_blend = extended_dynamic_state_3.extendedDynamicState3ColorBlendEnable && | 1350 | ext_extended_dynamic_state_3_blend = |
| 1351 | extended_dynamic_state_3.extendedDynamicState3ColorBlendEnable && | ||
| 1346 | extended_dynamic_state_3.extendedDynamicState3ColorBlendEquation && | 1352 | extended_dynamic_state_3.extendedDynamicState3ColorBlendEquation && |
| 1347 | extended_dynamic_state_3.extendedDynamicState3ColorWriteMask; | 1353 | extended_dynamic_state_3.extendedDynamicState3ColorWriteMask; |
| 1348 | 1354 | ||
| 1349 | ext_extended_dynamic_state_3_enables = extended_dynamic_state_3.extendedDynamicState3DepthClampEnable && | 1355 | ext_extended_dynamic_state_3_enables = |
| 1356 | extended_dynamic_state_3.extendedDynamicState3DepthClampEnable && | ||
| 1350 | extended_dynamic_state_3.extendedDynamicState3LogicOpEnable; | 1357 | extended_dynamic_state_3.extendedDynamicState3LogicOpEnable; |
| 1351 | 1358 | ||
| 1352 | ext_extended_dynamic_state_3 = ext_extended_dynamic_state_3_blend || ext_extended_dynamic_state_3_enables; | 1359 | ext_extended_dynamic_state_3 = |
| 1360 | ext_extended_dynamic_state_3_blend || ext_extended_dynamic_state_3_enables; | ||
| 1353 | if (ext_extended_dynamic_state_3) { | 1361 | if (ext_extended_dynamic_state_3) { |
| 1354 | extensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); | 1362 | extensions.push_back(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME); |
| 1355 | } | 1363 | } |
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index b58ec736f..920a8f4e3 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h | |||
| @@ -486,33 +486,33 @@ private: | |||
| 486 | bool ext_sampler_filter_minmax{}; ///< Support for VK_EXT_sampler_filter_minmax. | 486 | bool ext_sampler_filter_minmax{}; ///< Support for VK_EXT_sampler_filter_minmax. |
| 487 | bool ext_depth_clip_control{}; ///< Support for VK_EXT_depth_clip_control | 487 | bool ext_depth_clip_control{}; ///< Support for VK_EXT_depth_clip_control |
| 488 | bool ext_depth_range_unrestricted{}; ///< Support for VK_EXT_depth_range_unrestricted. | 488 | bool ext_depth_range_unrestricted{}; ///< Support for VK_EXT_depth_range_unrestricted. |
| 489 | bool ext_shader_viewport_index_layer{}; ///< Support for VK_EXT_shader_viewport_index_layer. | 489 | bool ext_shader_viewport_index_layer{}; ///< Support for VK_EXT_shader_viewport_index_layer. |
| 490 | bool ext_tooling_info{}; ///< Support for VK_EXT_tooling_info. | 490 | bool ext_tooling_info{}; ///< Support for VK_EXT_tooling_info. |
| 491 | bool ext_subgroup_size_control{}; ///< Support for VK_EXT_subgroup_size_control. | 491 | bool ext_subgroup_size_control{}; ///< Support for VK_EXT_subgroup_size_control. |
| 492 | bool ext_transform_feedback{}; ///< Support for VK_EXT_transform_feedback. | 492 | bool ext_transform_feedback{}; ///< Support for VK_EXT_transform_feedback. |
| 493 | bool ext_custom_border_color{}; ///< Support for VK_EXT_custom_border_color. | 493 | bool ext_custom_border_color{}; ///< Support for VK_EXT_custom_border_color. |
| 494 | bool ext_extended_dynamic_state{}; ///< Support for VK_EXT_extended_dynamic_state. | 494 | bool ext_extended_dynamic_state{}; ///< Support for VK_EXT_extended_dynamic_state. |
| 495 | bool ext_extended_dynamic_state_2{}; ///< Support for VK_EXT_extended_dynamic_state2. | 495 | bool ext_extended_dynamic_state_2{}; ///< Support for VK_EXT_extended_dynamic_state2. |
| 496 | bool ext_extended_dynamic_state_2_extra{}; ///< Support for VK_EXT_extended_dynamic_state2. | 496 | bool ext_extended_dynamic_state_2_extra{}; ///< Support for VK_EXT_extended_dynamic_state2. |
| 497 | bool ext_extended_dynamic_state_3{}; ///< Support for VK_EXT_extended_dynamic_state3. | 497 | bool ext_extended_dynamic_state_3{}; ///< Support for VK_EXT_extended_dynamic_state3. |
| 498 | bool ext_extended_dynamic_state_3_blend{}; ///< Support for VK_EXT_extended_dynamic_state3. | 498 | bool ext_extended_dynamic_state_3_blend{}; ///< Support for VK_EXT_extended_dynamic_state3. |
| 499 | bool ext_extended_dynamic_state_3_enables{}; ///< Support for VK_EXT_extended_dynamic_state3. | 499 | bool ext_extended_dynamic_state_3_enables{}; ///< Support for VK_EXT_extended_dynamic_state3. |
| 500 | bool ext_line_rasterization{}; ///< Support for VK_EXT_line_rasterization. | 500 | bool ext_line_rasterization{}; ///< Support for VK_EXT_line_rasterization. |
| 501 | bool ext_vertex_input_dynamic_state{}; ///< Support for VK_EXT_vertex_input_dynamic_state. | 501 | bool ext_vertex_input_dynamic_state{}; ///< Support for VK_EXT_vertex_input_dynamic_state. |
| 502 | bool ext_shader_stencil_export{}; ///< Support for VK_EXT_shader_stencil_export. | 502 | bool ext_shader_stencil_export{}; ///< Support for VK_EXT_shader_stencil_export. |
| 503 | bool ext_shader_atomic_int64{}; ///< Support for VK_KHR_shader_atomic_int64. | 503 | bool ext_shader_atomic_int64{}; ///< Support for VK_KHR_shader_atomic_int64. |
| 504 | bool ext_conservative_rasterization{}; ///< Support for VK_EXT_conservative_rasterization. | 504 | bool ext_conservative_rasterization{}; ///< Support for VK_EXT_conservative_rasterization. |
| 505 | bool ext_provoking_vertex{}; ///< Support for VK_EXT_provoking_vertex. | 505 | bool ext_provoking_vertex{}; ///< Support for VK_EXT_provoking_vertex. |
| 506 | bool ext_memory_budget{}; ///< Support for VK_EXT_memory_budget. | 506 | bool ext_memory_budget{}; ///< Support for VK_EXT_memory_budget. |
| 507 | bool nv_device_diagnostics_config{}; ///< Support for VK_NV_device_diagnostics_config. | 507 | bool nv_device_diagnostics_config{}; ///< Support for VK_NV_device_diagnostics_config. |
| 508 | bool has_broken_cube_compatibility{}; ///< Has broken cube compatiblity bit | 508 | bool has_broken_cube_compatibility{}; ///< Has broken cube compatiblity bit |
| 509 | bool has_renderdoc{}; ///< Has RenderDoc attached | 509 | bool has_renderdoc{}; ///< Has RenderDoc attached |
| 510 | bool has_nsight_graphics{}; ///< Has Nsight Graphics attached | 510 | bool has_nsight_graphics{}; ///< Has Nsight Graphics attached |
| 511 | bool supports_d24_depth{}; ///< Supports D24 depth buffers. | 511 | bool supports_d24_depth{}; ///< Supports D24 depth buffers. |
| 512 | bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting. | 512 | bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting. |
| 513 | bool must_emulate_bgr565{}; ///< Emulates BGR565 by swizzling RGB565 format. | 513 | bool must_emulate_bgr565{}; ///< Emulates BGR565 by swizzling RGB565 format. |
| 514 | u32 max_vertex_input_attributes{}; ///< Max vertex input attributes in pipeline | 514 | u32 max_vertex_input_attributes{}; ///< Max vertex input attributes in pipeline |
| 515 | u32 max_vertex_input_bindings{}; ///< Max vertex input buffers in pipeline | 515 | u32 max_vertex_input_bindings{}; ///< Max vertex input buffers in pipeline |
| 516 | 516 | ||
| 517 | // Telemetry parameters | 517 | // Telemetry parameters |
| 518 | std::string vendor_name; ///< Device's driver name. | 518 | std::string vendor_name; ///< Device's driver name. |
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index d7ae14478..accfad8c1 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h | |||
| @@ -1269,7 +1269,8 @@ public: | |||
| 1269 | dld->vkCmdSetColorBlendEnableEXT(handle, first, enables.size(), enables.data()); | 1269 | dld->vkCmdSetColorBlendEnableEXT(handle, first, enables.size(), enables.data()); |
| 1270 | } | 1270 | } |
| 1271 | 1271 | ||
| 1272 | void SetColorBlendEquationEXT(u32 first, Span<VkColorBlendEquationEXT> equations) const noexcept { | 1272 | void SetColorBlendEquationEXT(u32 first, |
| 1273 | Span<VkColorBlendEquationEXT> equations) const noexcept { | ||
| 1273 | dld->vkCmdSetColorBlendEquationEXT(handle, first, equations.size(), equations.data()); | 1274 | dld->vkCmdSetColorBlendEquationEXT(handle, first, equations.size(), equations.data()); |
| 1274 | } | 1275 | } |
| 1275 | 1276 | ||