https://bugs.winehq.org/show_bug.cgi?id=31393
--- Comment #9 from Ruslan Kabatsayev b7.10110111@gmail.com --- (In reply to Henri Verbeet from comment #8)
Does this patch help? It introduces a DWORD registry key "SampleCount" that allows the sample count for the back buffer to be overridden.
Seems to work. As I've tested it with GTAVC, it appears that I can set any number of samples regardless of nvidia's driver settings (__GL_FSAA_MODE). On the one hand, I suppose this allows to work even with non-nvidia drivers (fglrx? mesa seems to have been bad with MS). On the other hand, if I put some "bad" value there, like 5, 6 or 7 for on my GTX 750 Ti, wine just refuses to work giving the following errors:
err:winediag:wined3d_dll_init Forcing sample count to 7. This may not be compatible with all applications. fixme:win:EnumDisplayDevicesW ((null),0,0x33f424,0x00000000), stub! err:ddraw:ddraw_create_swapchain Failed to create swapchain, hr 0x8876086a. err:ddraw:ddraw_set_cooperative_level Failed to create swapchain, hr 0x8876086a. fixme:win:EnumDisplayDevicesW ((null),0,0x33f444,0x00000000), stub! err:ddraw:ddraw_create_swapchain Failed to create swapchain, hr 0x8876086a. err:ddraw:ddraw_set_cooperative_level Failed to create swapchain, hr 0x8876086a. fixme:win:EnumDisplayDevicesW ((null),0,0x33f264,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x33f6a4,0x00000000), stub!
This is in contrast with __GL_FSAA_MODE, where if the mode is unsupported, the setting is (IIRC) ignored, or at least proceeds with some safe default. Also, if we take nVidia's documentation, this variable not only changes number of samples, but also chooses the mode, like "8x (4xSS, 2xMS)". Not sure if Wine is technically able to support such distinction though.