diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_device.cpp | 23 |
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 | } |