Hi, The patch is conceptually wrong, tweaking how you disable ARB_map_buffer_range won't improve the odds of it getting in. As I said, you want to make sure that the problem is indeed fglrx(i.e., test on other cards and see if map_buffer_range has a negative impact there), and if it is, we have to find out why it is slow in this case, rather than just disabling it.
ARB_map_buffer_range works as intended on fglrx in many other applications(e.g. Half Life 2, 3DMark 2000 and 2001, UT2004, World in Conflict, …) . Disabling it because it slows down one application is not the correct approach. I'll still address some of the points below as it may help you with the wined3d code: Am 16.02.2013 um 12:18 schrieb Stanislaw Halik <stha...@misaki.pl>: >> Other than being wrong conceptually, you're disabling dynamic buffers >> the wrong way: The "proper" way would be to add a quirk to the >> quirk_table in directx.c that removes ARB_map_buffer_range from the >> list of supported extensions if the driver vendor is AMD. > > Like this? Patch attached. No, you can just set gl_info->supported[ARB_MAP_BUFFER_RANGE] to FALSE. See e.g. quirk_amd_dx9(). > Lack of GLSL disables HDR apparently. But enabling it changes FPS from 70 to > 90. You want GLSL on AMD GPUs because the ARB shader extensions support only Shader Model 2.0. I don't see the problem with changing the fps from 70 to 90 either :-) . Did you accidentally swap the numbers? > Without GDI, there's some nasty display corruption on FBOs. Uh, unless this is a DirectDraw / d3d7 application, the DirectDrawRenderer setting won't affect it. And if it is such an app, UseGLSL won't have any real effect. Are you sure about this? In a ddraw app, setting DirectDrawRenderer = gdi will disable any 3D acceleration. > But with all this busywork, performance is near-native. Catalyst at > least supports indirect addressing (whatever that means) and doesn't > choke on > 128 temps... FYI Mesa bug submitted: I'm not sure what you mean by this. The mesa bug is incomprehensible as well, it isn't clear what exactly fails. I guess some shader doesn't compile, it might be helpful to attach the failing shader from Wine's debug output.