mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 08:15:46 +00:00
[vk] Sample Shading Option .
This seems to improve some games graphics and it may be helpful for MSAA, at the cost of reducing a bit the performance. Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com> Co-authored-by: crueter <swurl@swurl.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/235 Co-authored-by: Gamer64 <gamer64@noreply.localhost> Co-committed-by: Gamer64 <gamer64@noreply.localhost>
This commit is contained in:
parent
43a22546cf
commit
cac4345db9
7 changed files with 23 additions and 1 deletions
|
@ -27,6 +27,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
RENDERER_DEBUG("debug"),
|
RENDERER_DEBUG("debug"),
|
||||||
RENDERER_PROVOKING_VERTEX("provoking_vertex"),
|
RENDERER_PROVOKING_VERTEX("provoking_vertex"),
|
||||||
RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"),
|
RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"),
|
||||||
|
RENDERER_SAMPLE_SHADING("sample_shading"),
|
||||||
PICTURE_IN_PICTURE("picture_in_picture"),
|
PICTURE_IN_PICTURE("picture_in_picture"),
|
||||||
USE_CUSTOM_RTC("custom_rtc_enabled"),
|
USE_CUSTOM_RTC("custom_rtc_enabled"),
|
||||||
BLACK_BACKGROUNDS("black_backgrounds"),
|
BLACK_BACKGROUNDS("black_backgrounds"),
|
||||||
|
|
|
@ -152,6 +152,13 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.descriptor_indexing_description
|
descriptionId = R.string.descriptor_indexing_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
put(
|
||||||
|
SwitchSetting(
|
||||||
|
BooleanSetting.RENDERER_SAMPLE_SHADING,
|
||||||
|
titleId = R.string.sample_shading,
|
||||||
|
descriptionId = R.string.sample_shading_description
|
||||||
|
)
|
||||||
|
)
|
||||||
put(
|
put(
|
||||||
SliderSetting(
|
SliderSetting(
|
||||||
ShortSetting.RENDERER_SPEED_LIMIT,
|
ShortSetting.RENDERER_SPEED_LIMIT,
|
||||||
|
|
|
@ -435,6 +435,7 @@ class SettingsFragmentPresenter(
|
||||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
||||||
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
||||||
|
add(BooleanSetting.RENDERER_SAMPLE_SHADING.key)
|
||||||
|
|
||||||
add(HeaderSetting(R.string.veil_renderer))
|
add(HeaderSetting(R.string.veil_renderer))
|
||||||
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
add(BooleanSetting.FRAME_INTERPOLATION.key)
|
||||||
|
|
|
@ -74,6 +74,8 @@
|
||||||
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
|
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
|
||||||
<string name="descriptor_indexing">Descriptor Indexing</string>
|
<string name="descriptor_indexing">Descriptor Indexing</string>
|
||||||
<string name="descriptor_indexing_description">Improves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.</string>
|
<string name="descriptor_indexing_description">Improves texture and buffer handling, as well as the Maxwell translation layer. Supported by some Vulkan 1.1 GPUs and all Vulkan 1.2+ GPUs.</string>
|
||||||
|
<string name="sample_shading">Sample Shading</string>
|
||||||
|
<string name="sample_shading_description">Allows the fragment shader to execute per sample in a multi-sampled fragment instead once per fragment. Improves graphics quality at the cost of some performance. Only Vulkan 1.1+ devices support this extension.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
||||||
|
|
|
@ -509,6 +509,7 @@ struct Values {
|
||||||
|
|
||||||
SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
|
SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
|
||||||
SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
|
SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
|
||||||
|
SwitchableSetting<bool> sample_shading{linkage, false, "sample_shading", Category::RendererExtensions};
|
||||||
|
|
||||||
Setting<bool> renderer_debug{linkage, false, "debug", Category::RendererDebug};
|
Setting<bool> renderer_debug{linkage, false, "debug", Category::RendererDebug};
|
||||||
Setting<bool> renderer_shader_feedback{linkage, false, "shader_feedback",
|
Setting<bool> renderer_shader_feedback{linkage, false, "shader_feedback",
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
@ -735,7 +738,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||||
.pNext = nullptr,
|
.pNext = nullptr,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.rasterizationSamples = MaxwellToVK::MsaaMode(key.state.msaa_mode),
|
.rasterizationSamples = MaxwellToVK::MsaaMode(key.state.msaa_mode),
|
||||||
.sampleShadingEnable = VK_FALSE,
|
.sampleShadingEnable = Settings::values.sample_shading.GetValue() ? VK_TRUE : VK_FALSE,
|
||||||
.minSampleShading = 0.0f,
|
.minSampleShading = 0.0f,
|
||||||
.pSampleMask = nullptr,
|
.pSampleMask = nullptr,
|
||||||
.alphaToCoverageEnable = key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
|
.alphaToCoverageEnable = key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
|
||||||
|
|
|
@ -349,6 +349,13 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent)
|
||||||
tr("Improves texture & buffer handling and the Maxwell translation layer.\n"
|
tr("Improves texture & buffer handling and the Maxwell translation layer.\n"
|
||||||
"Some Vulkan 1.1+ and all 1.2+ devices support this extension."));
|
"Some Vulkan 1.1+ and all 1.2+ devices support this extension."));
|
||||||
|
|
||||||
|
INSERT(Settings,
|
||||||
|
sample_shading,
|
||||||
|
tr("Sample Shading"),
|
||||||
|
tr("Allows the fragment shader to execute per sample in a multi-sampled fragment "
|
||||||
|
"instead once per fragment. Improves graphics quality at the cost of some performance.\n"
|
||||||
|
"Only Vulkan 1.1+ devices support this extension."));
|
||||||
|
|
||||||
// Renderer (Debug)
|
// Renderer (Debug)
|
||||||
|
|
||||||
// System
|
// System
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue