aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCaio Oliveira <caiooliveirafarias0@gmail.com>2026-01-08 00:51:26 +0100
committercrueter <crueter@eden-emu.dev>2026-01-08 00:51:26 +0100
commit1370f2367529e2311223d9ab7be201660a42d53e (patch)
tree3cdcca3cc82a8753b4d99d548319c112c56cc2cb /src
parent8440c2074da7b4c901641dea317f570b256f2c03 (diff)
[vk, settings] Disable VIDS on Android and Ungate Advanced EDS (#3281)
* the issue fixed by this PR (EDS Disabled) is the same as the one on 3096 (All EDS) Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3281 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/common/settings.h8
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp19
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp10
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h5
4 files changed, 11 insertions, 31 deletions
diff --git a/src/common/settings.h b/src/common/settings.h
index b523fb673b..874ba7aee2 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -536,7 +536,13 @@ struct Values {
Category::RendererExtensions,
Specialization::Scalar};
- SwitchableSetting<bool> vertex_input_dynamic_state{linkage, true, "vertex_input_dynamic_state", Category::RendererExtensions};
+ SwitchableSetting<bool> vertex_input_dynamic_state{linkage,
+#if defined (ANDROID)
+ false,
+#else
+ true,
+#endif
+ "vertex_input_dynamic_state", Category::RendererExtensions};
SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index ea6e4b6d72..fca235b58e 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -816,23 +816,12 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
.blendConstants = {}
};
static_vector<VkDynamicState, 34> dynamic_states{
- VK_DYNAMIC_STATE_VIEWPORT,
- VK_DYNAMIC_STATE_SCISSOR,
- VK_DYNAMIC_STATE_DEPTH_BIAS,
+ VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR,
+ VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_BLEND_CONSTANTS,
+ VK_DYNAMIC_STATE_DEPTH_BOUNDS, VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
+ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, VK_DYNAMIC_STATE_STENCIL_REFERENCE,
VK_DYNAMIC_STATE_LINE_WIDTH,
};
-
- if (device.UsesAdvancedCoreDynamicState()) {
- static constexpr std::array core_dynamic_states{
- VK_DYNAMIC_STATE_BLEND_CONSTANTS,
- VK_DYNAMIC_STATE_DEPTH_BOUNDS,
- VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
- VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
- VK_DYNAMIC_STATE_STENCIL_REFERENCE,
- };
- dynamic_states.insert(dynamic_states.end(), core_dynamic_states.begin(),
- core_dynamic_states.end());
- }
if (key.state.extended_dynamic_state) {
static constexpr std::array extended{
VK_DYNAMIC_STATE_CULL_MODE_EXT,
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index 27cbf47bbb..101a884fd7 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -1233,9 +1233,6 @@ void RasterizerVulkan::UpdateBlendConstants(Tegra::Engines::Maxwell3D::Regs& reg
if (!state_tracker.TouchBlendConstants()) {
return;
}
- if (!device.UsesAdvancedCoreDynamicState()) {
- return;
- }
const std::array blend_color = {regs.blend_color.r, regs.blend_color.g, regs.blend_color.b,
regs.blend_color.a};
scheduler.Record(
@@ -1246,9 +1243,6 @@ void RasterizerVulkan::UpdateDepthBounds(Tegra::Engines::Maxwell3D::Regs& regs)
if (!state_tracker.TouchDepthBounds()) {
return;
}
- if (!device.UsesAdvancedCoreDynamicState() || !device.IsDepthBoundsSupported()) {
- return;
- }
scheduler.Record([min = regs.depth_bounds[0], max = regs.depth_bounds[1]](
vk::CommandBuffer cmdbuf) { cmdbuf.SetDepthBounds(min, max); });
}
@@ -1257,10 +1251,6 @@ void RasterizerVulkan::UpdateStencilFaces(Tegra::Engines::Maxwell3D::Regs& regs)
if (!state_tracker.TouchStencilProperties()) {
return;
}
- if (!device.UsesAdvancedCoreDynamicState()) {
- state_tracker.ClearStencilReset();
- return;
- }
bool update_references = state_tracker.TouchStencilReference();
bool update_write_mask = state_tracker.TouchStencilWriteMask();
bool update_compare_masks = state_tracker.TouchStencilCompare();
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index 6c67cc44f8..726b17e47e 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -682,11 +682,6 @@ public:
return dynamic_state3_alpha_to_one;
}
- /// Returns true when the user enabled extended core dynamic states (level > 0).
- bool UsesAdvancedCoreDynamicState() const {
- return u32(Settings::values.dyna_state.GetValue()) > 0;
- }
-
/// Returns true if the device supports VK_EXT_vertex_input_dynamic_state.
bool IsExtVertexInputDynamicStateSupported() const {
return extensions.vertex_input_dynamic_state;