summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--externals/libusb/CMakeLists.txt5
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp14
-rw-r--r--src/yuzu/configuration/configure_filesystem.cpp5
3 files changed, 22 insertions, 2 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 @@
+# Ensure libusb compiles with UTF-8 encoding on MSVC
+if(MSVC)
+ add_compile_options(/utf-8)
+endif()
+
add_library(usb STATIC EXCLUDE_FROM_ALL
libusb/libusb/core.c
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() {
const bool is_amd = vendor == "ATI Technologies Inc.";
const bool is_intel = vendor == "Intel";
+#ifdef __linux__
+ const bool is_linux = true;
+#else
+ const bool is_linux = false;
+#endif
+
bool disable_fast_buffer_sub_data = false;
if (is_nvidia && version == "4.6.0 NVIDIA 443.24") {
LOG_WARNING(
@@ -249,7 +255,9 @@ Device::Device() {
GLAD_GL_NV_gpu_program5 && GLAD_GL_NV_compute_program5 &&
GLAD_GL_NV_transform_feedback && GLAD_GL_NV_transform_feedback2;
- use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue();
+ // Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
+ use_asynchronous_shaders = Settings::values.use_asynchronous_shaders.GetValue() &&
+ !(is_amd || (is_intel && !is_linux));
use_driver_cache = is_nvidia;
LOG_INFO(Render_OpenGL, "Renderer_VariableAOFFI: {}", has_variable_aoffi);
@@ -261,6 +269,10 @@ Device::Device() {
if (Settings::values.use_assembly_shaders.GetValue() && !use_assembly_shaders) {
LOG_ERROR(Render_OpenGL, "Assembly shaders enabled but not supported");
}
+
+ if (Settings::values.use_asynchronous_shaders.GetValue() && !use_asynchronous_shaders) {
+ LOG_WARNING(Render_OpenGL, "Asynchronous shader compilation enabled but not supported");
+ }
}
Device::Device(std::nullptr_t) {
diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp
index bde2d4620..58f644af4 100644
--- a/src/yuzu/configuration/configure_filesystem.cpp
+++ b/src/yuzu/configuration/configure_filesystem.cpp
@@ -103,7 +103,10 @@ void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit)
str = QFileDialog::getOpenFileName(this, caption, QFileInfo(edit->text()).dir().path(),
QStringLiteral("NX Gamecard;*.xci"));
} else {
- str = QFileDialog::getExistingDirectory(this, caption, edit->text()) + QDir::separator();
+ str = QFileDialog::getExistingDirectory(this, caption, edit->text());
+ if (!str.isNull() && str.back() != QDir::separator()) {
+ str.append(QDir::separator());
+ }
}
if (str.isEmpty())