[PATCH] winex11.drv: Handle X error from vkGetRandROutputDisplayEXT().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49407 Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/winex11.drv/xrandr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index f61a5b190e9..2d1f9d36eb6 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -756,9 +756,10 @@ static void get_vulkan_device_uuid( GUID *uuid, const XRRProviderInfo *provider_ { for (output_idx = 0; output_idx < provider_info->noutputs; ++output_idx) { + X11DRV_expect_error( gdi_display, XRandRErrorHandler, NULL ); vr = pvkGetRandROutputDisplayEXT( vk_physical_devices[device_idx], gdi_display, provider_info->outputs[output_idx], &vk_display ); - if (vr != VK_SUCCESS || vk_display == VK_NULL_HANDLE) + if (X11DRV_check_error() || vr != VK_SUCCESS || vk_display == VK_NULL_HANDLE) continue; memset( &id, 0, sizeof(id) ); -- 2.26.2
On 6/18/20 9:17 PM, Paul Gofman wrote:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49407 Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/winex11.drv/xrandr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index f61a5b190e9..2d1f9d36eb6 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -756,9 +756,10 @@ static void get_vulkan_device_uuid( GUID *uuid, const XRRProviderInfo *provider_ { for (output_idx = 0; output_idx < provider_info->noutputs; ++output_idx) { + X11DRV_expect_error( gdi_display, XRandRErrorHandler, NULL ); vr = pvkGetRandROutputDisplayEXT( vk_physical_devices[device_idx], gdi_display, provider_info->outputs[output_idx], &vk_display ); - if (vr != VK_SUCCESS || vk_display == VK_NULL_HANDLE) I think you should add a XSync( gdi_display, FALSE ) here. And it would be better to mention it's for some Nvidia setups/drivers. Otherwise it looks good to me but I can't test it.
Thanks, Zhiyi
+ if (X11DRV_check_error() || vr != VK_SUCCESS || vk_display == VK_NULL_HANDLE) continue;
memset( &id, 0, sizeof(id) );
participants (2)
-
Paul Gofman -
Zhiyi Zhang