summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-06-29 18:42:17 -0300
committerGravatar ameerj2021-07-22 21:51:40 -0400
commit8722668b3c027f0132d0be07e867247debd08d30 (patch)
treef921ddda0a9d30d1f8845964c8018b6d5783c429 /src/video_core
parentconfigure_graphics: Re-order vulkan device populating (diff)
downloadyuzu-8722668b3c027f0132d0be07e867247debd08d30.tar.gz
yuzu-8722668b3c027f0132d0be07e867247debd08d30.tar.xz
yuzu-8722668b3c027f0132d0be07e867247debd08d30.zip
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index cde0f54c9..2ea9c9f07 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -206,6 +206,7 @@ ShaderCache::ShaderCache(RasterizerOpenGL& rasterizer_, Core::Frontend::EmuWindo
206 .has_broken_spirv_clamp = true, 206 .has_broken_spirv_clamp = true,
207 .has_broken_unsigned_image_offsets = true, 207 .has_broken_unsigned_image_offsets = true,
208 .has_broken_signed_operations = true, 208 .has_broken_signed_operations = true,
209 .has_broken_fp16_float_controls = false,
209 .has_gl_component_indexing_bug = device.HasComponentIndexingBug(), 210 .has_gl_component_indexing_bug = device.HasComponentIndexingBug(),
210 .has_gl_precise_bug = device.HasPreciseBug(), 211 .has_gl_precise_bug = device.HasPreciseBug(),
211 .ignore_nan_fp_comparisons = true, 212 .ignore_nan_fp_comparisons = true,
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 7aaa40ef2..87b843e3d 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -315,6 +315,7 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::Engines::Maxw
315 .has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR, 315 .has_broken_spirv_clamp = driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
316 .has_broken_unsigned_image_offsets = false, 316 .has_broken_unsigned_image_offsets = false,
317 .has_broken_signed_operations = false, 317 .has_broken_signed_operations = false,
318 .has_broken_fp16_float_controls = driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR,
318 .ignore_nan_fp_comparisons = false, 319 .ignore_nan_fp_comparisons = false,
319 }; 320 };
320 host_info = Shader::HostTranslateInfo{ 321 host_info = Shader::HostTranslateInfo{