[PATCH] winex11.drv: Handle X error from vkGetRandROutputDisplayEXT().

Zhiyi Zhang zzhang at codeweavers.com
Thu Jun 18 08:58:51 CDT 2020



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 at 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) );




More information about the wine-devel mailing list