https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #16 from Stefan Dösinger stefan@codeweavers.com --- ok, just zero offsets. As best I can say, the driver just doesn't like glBindBufferRange. Zeb, Henri, can you think of a legitimate reason why? Supposedly glBindBufferRange and glBindBufferBase are added by the same extension...
If there is no good explanation we can try to detect this by calling glBindBufferRange during wined3d init, and if it generates an error advertise no buffer offsetting support to the d3d11 client and disable UBO buffer suballocation. The latter will hurt quite a bit as UBOs are discarded a lot.
Arguably we should at least check the minimum alignment and disable offsetting if it is > 16, which afaics is the maximum allowed by by d3d11. So we need that kind of disabling logic anyway.