diff --git a/src/gallium/auxiliary/vl/vl_winsys.h b/src/gallium/auxiliary/vl/vl_winsys.h index 4590bbb9e2c..32ee05d60c7 100644 --- a/src/gallium/auxiliary/vl/vl_winsys.h +++ b/src/gallium/auxiliary/vl/vl_winsys.h @@ -102,7 +102,7 @@ vl_dri3_screen_create(void *display, int screen) { return NULL; }; #ifdef _WIN32 struct vl_screen *vl_win32_screen_create(LUID *adapter); -struct vl_screen *vl_win32_screen_create_from_d3d12_device(IUnknown* d3d12_device); +struct vl_screen *vl_win32_screen_create_from_d3d12_device(IUnknown* d3d12_device, struct sw_winsys* winsys); #else /* Always enable the DRM vl winsys */ struct vl_screen * diff --git a/src/gallium/auxiliary/vl/vl_winsys_win32.c b/src/gallium/auxiliary/vl/vl_winsys_win32.c index 4c00507316c..20593a5d680 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_win32.c +++ b/src/gallium/auxiliary/vl/vl_winsys_win32.c @@ -88,16 +88,12 @@ release_pipe: } struct vl_screen * -vl_win32_screen_create_from_d3d12_device(IUnknown* d3d12_device) +vl_win32_screen_create_from_d3d12_device(IUnknown* d3d12_device, struct sw_winsys* winsys) { struct vl_win32_screen *vscreen = CALLOC_STRUCT(vl_win32_screen); if (!vscreen) return NULL; - struct sw_winsys* winsys = gdi_create_sw_winsys(gdi_sw_acquire_hdc_by_value, gdi_sw_release_hdc_by_value); - if (!winsys) - goto release_pipe; - vscreen->base.pscreen = d3d12_create_dxcore_screen_from_d3d12_device(winsys, d3d12_device, &vscreen->adapter_luid); if (!vscreen->base.pscreen) @@ -111,8 +107,6 @@ vl_win32_screen_create_from_d3d12_device(IUnknown* d3d12_device) return &vscreen->base; release_pipe: - if(winsys) - winsys->destroy(winsys); vl_win32_screen_destroy(&vscreen->base); return NULL; }