summaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2022-12-24 19:19:41 -0500
committerGravatar Fernando Sahmkow2023-01-01 16:43:58 -0500
commitd09aa0182f18d1ac338ab47009b42fdeb67497a8 (patch)
tree1b3ae726f7aaa465b30fba795cfca0ae88d2140b /src/video_core/vulkan_common
parentRasterizer: Setup skeleton for Host Conditional rendering (diff)
downloadyuzu-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.cpp24
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h52
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.h3
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