This patch seems to fix it here (Windows 7, Intel HD 3000/Nvidia GT 630M). It looks like when in fullscreen the set cursor stuff must be run in the window thread, otherwhise it causes a deadlock. Tested with -video accel -rd direct3d/opengl/opengles2, not tested in Linux though.
Code:
diff -Nru ./src/osd/sdl/window.c ./src2/osd/sdl/window.c --- ./src/osd/sdl/window.c 2014-11-26 10:37:58.000000000 +0100 +++ ./src2/osd/sdl/window.c 2014-12-28 15:10:55.000000000 +0100 @@ -589,11 +589,15 @@ //============================================================ // sdlwindow_update_cursor_state -// (main or window thread) +// (window thread) //============================================================ -static void sdlwindow_update_cursor_state(running_machine &machine, sdl_window_info *window) +static OSDWORK_CALLBACK( sdlwindow_update_cursor_state_wt ) { + worker_param *wp = (worker_param *) param; + sdl_window_info *window = wp->window; + running_machine &machine = window->machine(); + #if (USE_XINPUT) // Hack for wii-lightguns: // they stop working with a grabbed mouse; @@ -652,8 +656,20 @@ } #endif #endif + return NULL; } +static void sdlwindow_update_cursor_state(running_machine &machine, sdl_window_info *window) +{ + worker_param wp; + + ASSERT_MAIN_THREAD(); + + clear_worker_param(&wp); + wp.window = window; + wp.m_machine = &machine; + execute_async_wait(&sdlwindow_update_cursor_state_wt, &wp); +} //============================================================ // sdlwindow_video_window_create
Edited by Calamity (12/28/14 06:31 PM)
|