summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--externals/libusb/CMakeLists.txt5
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp14
2 files changed, 18 insertions, 1 deletions
diff --git a/externals/libusb/CMakeLists.txt b/externals/libusb/CMakeLists.txt
index c0d24b126..70d6735e3 100644
--- a/externals/libusb/CMakeLists.txt
+++ b/externals/libusb/CMakeLists.txt
@@ -1,3 +1,8 @@
1# Ensure libusb compiles with UTF-8 encoding on MSVC
2if(MSVC)
3 add_compile_options(/utf-8)
4endif()
5
1add_library(usb STATIC EXCLUDE_FROM_ALL 6add_library(usb STATIC EXCLUDE_FROM_ALL
2 libusb/libusb/core.c 7 libusb/libusb/core.c
3 libusb/libusb/core.c 8 libusb/libusb/core.c
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 1ae5f1d62..ba59414a7 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -210,6 +210,12 @@ Device::Device() {
210 const bool is_amd = vendor == "ATI Technologies Inc."; 210 const bool is_amd = vendor == "ATI Technologies Inc.";
211 const bool is_intel = vendor == "Intel"; 211 const bool is_intel = vendor == "Intel";
212 212
213#ifdef __linux__
214 const bool is_linux = true;
215#else
216 const bool is_linux = false;
217#endif
218
213 bool disable_fast_buffer_sub_data = false; 219 bool disable_fast_buffer_sub_data = false;
214 if (is_nvidia && version == "4.6.0 NVIDIA 443.24") { 220 if (is_nvidia && version == "4.6.0 NVIDIA 443.24") {
215 LOG_WARNING( 221 LOG_WARNING(
@@ -249,7 +255,9 @@ Device::Device() {
249 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 && 255 GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 &&
250 GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2; 256 GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2;
251 257
252 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue(); 258 // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
259 use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue() &&
260 !(is_amd || (is_intel && !is_linux));
253 use_driver_cache = is_nvidia; 261 use_driver_cache = is_nvidia;
254 262
255 LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi); 263 LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi);
@@ -261,6 +269,10 @@ Device::Device() {
261 if (Settings::values.use_assembly_shaders.GetValue() && !use_assembly_shaders) { 269 if (Settings::values.use_assembly_shaders.GetValue() && !use_assembly_shaders) {
262 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported"); 270 LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported");
263 } 271 }
272
273 if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) {
274 LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported");
275 }
264} 276}
265 277
266Device::Device(std::nullptr_t) { 278Device::Device(std::nullptr_t) {