2009/8/19 Stefan Dösinger stefan@codeweavers.com:
and its value(=0) is not sane
MSDN seems to disagree. "The value of 0 indicates an adapter default."
Am Wednesday 19 August 2009 14:46:21 schrieb Henri Verbeet:
2009/8/19 Stefan Dösinger stefan@codeweavers.com:
and its value(=0) is not sane
MSDN seems to disagree. "The value of 0 indicates an adapter default."
0 as a refresh rate? Or in the sense of "this is the default adapter"?
0 for D3DADAPTER_DEFAULT certainly makes sense. But 0 as advertised refresh rate does not. 0 probably makes sense as requested refresh rate, in the sense of "Use whatever refresh rate is set".
Even if MSDN claims that a driver can enum a refresh rate of zero, games evidently don't like it: Battlefield 1942 refuses to change the screen resolution if all resolutions have a refresh rate of 0.
Am Wednesday 19 August 2009 14:51:44 schrieb Stefan Dösinger:
MSDN seems to disagree. "The value of 0 indicates an adapter default."
0 for D3DADAPTER_DEFAULT certainly makes sense. But 0 as advertised refresh rate does not. 0 probably makes sense as requested refresh rate, in the sense of "Use whatever refresh rate is set".
I found the quote in the SDK docs - the msdn search doesn't work too well, especially for "legacy" d3d that doesn't use XNA.
I don't know what to make of it. There's no place to pass a D3DDISPLAYMODE into a setter, it is only returned by getters. I still think its odd to enumerate 0 HZ in EnumAdapterModes. I think its an msdn error unless I see a Windows box that shows this behavior.
2009/8/19 Stefan Dösinger stefan@codeweavers.com:
Even if MSDN claims that a driver can enum a refresh rate of zero, games evidently don't like it: Battlefield 1942 refuses to change the screen resolution if all resolutions have a refresh rate of 0.
Sure, it's picky like that. IIRC most battlefield games need 800x600@60 to startup. Occasionally that's a problem on Windows as well. It seems to me that you should be looking at why EnumDisplaySettingsExW() didn't give you a refresh rate for that though.
Am Wednesday 19 August 2009 15:09:03 schrieb Henri Verbeet:
Sure, it's picky like that. IIRC most battlefield games need 800x600@60 to startup. Occasionally that's a problem on Windows as well. It seems to me that you should be looking at why EnumDisplaySettingsExW() didn't give you a refresh rate for that though.
The discussion continued on IRC a bit:
Turns out that winex11.drv doesn't set the DM_DISPLAYFREQUENCY flag because X11 reports 0 HZ. This in turn happens because OSX always reporty 0 HZ for LCDs, probably as a way of telling the app that this display is an LCD, which have 60 HZ on osx. Or so I understand things.
So from Wine's side everything seems ok(except that the name WINED3DADAPTER_DEFAULT is bad for a frequency). Ken will replace the 0 HZ with 60 HZ in the X server, which should make Battlefield happy on Wine and CrossOver.