Browse Source

Merge pull request #85121 from jsjtxietian/return-early-nv

Prevent crash in  `_nvapi_disable_threaded_optimization` when attached to renderdoc
Rémi Verschelde 1 năm trước cách đây
mục cha
commit
b5779cc5c0
1 tập tin đã thay đổi với 6 bổ sung2 xóa
  1. 6 2
      platform/windows/gl_manager_windows_native.cpp

+ 6 - 2
platform/windows/gl_manager_windows_native.cpp

@@ -104,8 +104,8 @@ static bool nvapi_err_check(const char *msg, int status) {
 }
 
 // On windows we have to disable threaded optimization when using NVIDIA graphics cards
-// to avoid stuttering, see https://github.com/microsoft/vscode-cpptools/issues/6592
-// also see https://github.com/Ryujinx/Ryujinx/blob/master/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs
+// to avoid stuttering, see see https://stackoverflow.com/questions/36959508/nvidia-graphics-driver-causing-noticeable-frame-stuttering/37632948
+// also see https://github.com/Ryujinx/Ryujinx/blob/master/src/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs
 void GLManagerNative_Windows::_nvapi_disable_threaded_optimization() {
 	HMODULE nvapi = 0;
 #ifdef _WIN64
@@ -149,6 +149,10 @@ void GLManagerNative_Windows::_nvapi_disable_threaded_optimization() {
 
 	NvDRSSessionHandle session_handle;
 
+	if (NvAPI_DRS_CreateSession == nullptr) {
+		return;
+	}
+
 	if (!nvapi_err_check("NVAPI: Error creating DRS session", NvAPI_DRS_CreateSession(&session_handle))) {
 		NvAPI_Unload();
 		return;