http://bugs.winehq.org/show_bug.cgi?id=31014
--- Comment #1 from Ralf Jung ralfjung-e@gmx.de 2012-06-29 15:39:54 CDT --- I did some more analysis on this:
Audiosurf calls wined3d_device_get_display_mode with a swapchain_idx of 0. In current wine, this means that the returned hr will be uninitialized, and the mode structure left unchanged - so there's garbage in there (I added a FIXME to get these values):
fixme:d3d:wined3d_device_get_display_mode device 0x146a80, swapchain_idx 0, mode 0xda80ac, rotation (nil). fixme:d3d:wined3d_device_get_display_mode hr 4, Return width 14348384, height 14348216, format_id 98596972, refresh_rate -2147467259
Interesting enough, just removing the if (so that swapchain 0 is properly queried) does not fix the issue even though the data looks much saner:
fixme:d3d:wined3d_device_get_display_mode device 0x146a80, swapchain_idx 0, mode 0xda80ac, rotation (nil). fixme:d3d:wined3d_device_get_display_mode hr 0, Return width 1366, height 768, format_id 115, refresh_rate 60
I am still experimenting to come up with a minimal patch fixing/working around the issue locally.