diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 99c0a69abd0..25519d2a37c 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -5359,6 +5359,8 @@ static void CDECL device_parent_wined3d_device_created(struct wined3d_device_par TRACE("device_parent %p, device %p.\n", device_parent, device); } +/* This is run from device_process_message() in wined3d, we can't take the + * wined3d mutex. */ static void CDECL device_parent_mode_changed(struct wined3d_device_parent *device_parent) { struct IDirectDrawImpl *ddraw = ddraw_from_device_parent(device_parent); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index d0768aa0aeb..17560c6ca45 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5912,9 +5912,7 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL } else if (message == WM_DISPLAYCHANGE) { - wined3d_mutex_lock(); device->device_parent->ops->mode_changed(device->device_parent); - wined3d_mutex_unlock(); } if (unicode)