Fix catalyst brain damage to speed up Falcon BMS 2x
stefandoesinger at gmail.com
Sat Feb 16 02:04:25 CST 2013
Am 16.02.2013 um 08:39 schrieb Stanisław Halik <sthalik at misaki.pl>:
> + dynamic_buffer_ok = gl_info->supported[APPLE_FLUSH_BUFFER_RANGE] ||
> + (!gl_info->[GL_AMDX_debug_output] && gl_info->supported[ARB_MAP_BUFFER_RANGE]);
What you really want to do is figure out why GL_ARB_map_buffer_range is slow on fglrx, and make sure that the problem is really fglrx specific. I fixed a number of dynamic buffer performance problems in the past months, but there are still problems if we're falling back to draw_strided_slow for some reason, like fixed function material tracking.
If you absolutely have to do some fglrx hacks for performant dynamic buffers, look into GL_AMD_pinned_memory. I'd prefer not to use this extension though.
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.
More information about the wine-devel