Browse Source

[vulkan] Removing Static mode for pipeline compilations

qcomopts2
CamilleLaVey 1 month ago
parent
commit
ad71860407
  1. 4
      src/common/settings.h
  2. 2
      src/common/settings_enums.h
  3. 25
      src/video_core/vulkan_common/vulkan_device.cpp

4
src/common/settings.h

@ -535,9 +535,9 @@ struct Values {
#elif defined (__FreeBSD__) #elif defined (__FreeBSD__)
ExtendedDynamicState::EDS3, ExtendedDynamicState::EDS3,
#elif defined (ANDROID) #elif defined (ANDROID)
ExtendedDynamicState::Static,
ExtendedDynamicState::Core,
#elif defined (__APPLE__) #elif defined (__APPLE__)
ExtendedDynamicState::Static,
ExtendedDynamicState::Core,
#else #else
ExtendedDynamicState::EDS2, ExtendedDynamicState::EDS2,
#endif #endif

2
src/common/settings_enums.h

@ -153,7 +153,7 @@ ENUM(GpuUnswizzleSize, VerySmall, Small, Normal, Large, VeryLarge)
ENUM(GpuUnswizzle, VeryLow, Low, Normal, Medium, High) ENUM(GpuUnswizzle, VeryLow, Low, Normal, Medium, High)
ENUM(GpuUnswizzleChunk, VeryLow, Low, Normal, Medium, High) ENUM(GpuUnswizzleChunk, VeryLow, Low, Normal, Medium, High)
ENUM(TemperatureUnits, Celsius, Fahrenheit) ENUM(TemperatureUnits, Celsius, Fahrenheit)
ENUM(ExtendedDynamicState, Static, Core, EDS1, EDS2, EDS3);
ENUM(ExtendedDynamicState, Core, EDS1, EDS2, EDS3);
ENUM(GpuLogLevel, Off, Errors, Standard, Verbose, All) ENUM(GpuLogLevel, Off, Errors, Standard, Verbose, All)
template <typename Type> template <typename Type>

25
src/video_core/vulkan_common/vulkan_device.cpp

@ -651,18 +651,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
const auto dyna_state = Settings::values.dyna_state.GetValue(); const auto dyna_state = Settings::values.dyna_state.GetValue();
switch (dyna_state) { switch (dyna_state) {
case Settings::ExtendedDynamicState::Static:
LOG_INFO(Render_Vulkan, "STATIC Mode (fully static pipelines)");
RemoveExtensionFeature(extensions.extended_dynamic_state, features.extended_dynamic_state,
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME);
RemoveExtensionFeature(extensions.extended_dynamic_state2, features.extended_dynamic_state2,
VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME);
RemoveExtensionFeature(extensions.extended_dynamic_state3, features.extended_dynamic_state3,
VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME);
dynamic_state3_blending = false;
dynamic_state3_enables = false;
supports_dynamic_state = false;
break;
case Settings::ExtendedDynamicState::Core: case Settings::ExtendedDynamicState::Core:
LOG_INFO(Render_Vulkan, "DynamicState - Enabled"); LOG_INFO(Render_Vulkan, "DynamicState - Enabled");
RemoveExtensionFeature(extensions.extended_dynamic_state, features.extended_dynamic_state, RemoveExtensionFeature(extensions.extended_dynamic_state, features.extended_dynamic_state,
@ -1209,19 +1197,6 @@ bool Device::GetSuitability(bool requires_swapchain) {
} }
} }
const auto dyna_state_setting = Settings::values.dyna_state.GetValue();
if (dyna_state_setting == Settings::ExtendedDynamicState::Static) {
LOG_INFO(Render_Vulkan, "Static pipeline mode: All dynamic states disabled");
supports_dynamic_state = false;
features.extended_dynamic_state.extendedDynamicState = false;
features.extended_dynamic_state2.extendedDynamicState2 = false;
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
features.extended_dynamic_state3.extendedDynamicState3ColorWriteMask = false;
features.extended_dynamic_state3.extendedDynamicState3DepthClampEnable = false;
features.extended_dynamic_state3.extendedDynamicState3LogicOpEnable = false;
}
return suitable; return suitable;
} }

Loading…
Cancel
Save