summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ameerj2021-07-17 00:59:57 -0400
committerGravatar ameerj2021-07-22 21:51:40 -0400
commitc9528282d93c6542444a1f35a83eb8101ece157a (patch)
treefd79a87ef75aabc16fa8e60f60517d8d885dfb27
parentglsl: Simplify FCMP emission (diff)
downloadyuzu-c9528282d93c6542444a1f35a83eb8101ece157a.tar.gz
yuzu-c9528282d93c6542444a1f35a83eb8101ece157a.tar.xz
yuzu-c9528282d93c6542444a1f35a83eb8101ece157a.zip
gl_device: Simplify GLASM setting logic
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 563b291cd..6afe6c1e1 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -172,16 +172,14 @@ Device::Device() {
172 // uniform buffers as "push constants" 172 // uniform buffers as "push constants"
173 has_fast_buffer_sub_data = is_nvidia && !disable_fast_buffer_sub_data; 173 has_fast_buffer_sub_data = is_nvidia && !disable_fast_buffer_sub_data;
174 174
175 use_assembly_shaders = 175 shader_backend = Settings::values.shader_backend.GetValue();
176 Settings::values.shader_backend.GetValue() == Settings::ShaderBackend::GLASM && 176 use_assembly_shaders = shader_backend == Settings::ShaderBackend::GLASM &&
177 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 && GLAD_GL_NV_transform_feedback && 177 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 &&
178 GLAD_GL_NV_transform_feedback2; 178 GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2;
179 179 if (shader_backend == Settings::ShaderBackend::GLASM && !use_assembly_shaders) {
180 shader_backend = (Settings::values.shader_backend.GetValue() == 180 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported");
181 Settings::ShaderBackend::GLASM) == use_assembly_shaders 181 shader_backend = Settings::ShaderBackend::GLSL;
182 ? Settings::values.shader_backend.GetValue() 182 }
183 : Settings::ShaderBackend::GLSL;
184
185 // Completely disable async shaders for now, as it causes graphical glitches 183 // Completely disable async shaders for now, as it causes graphical glitches
186 use_asynchronous_shaders = false; 184 use_asynchronous_shaders = false;
187 // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation. 185 // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
@@ -194,11 +192,6 @@ Device::Device() {
194 LOG_INFO(Render_OpenGL, "Renderer_PreciseBug: {}", has_precise_bug); 192 LOG_INFO(Render_OpenGL, "Renderer_PreciseBug: {}", has_precise_bug);
195 LOG_INFO(Render_OpenGL, "Renderer_BrokenTextureViewFormats: {}", 193 LOG_INFO(Render_OpenGL, "Renderer_BrokenTextureViewFormats: {}",
196 has_broken_texture_view_formats); 194 has_broken_texture_view_formats);
197
198 if (shader_backend == Settings::ShaderBackend::GLASM && !use_assembly_shaders) {
199 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported");
200 }
201
202 if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) { 195 if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) {
203 LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported"); 196 LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported");
204 } 197 }