Yes, GL_ARB_buffer_storage is being worked on. We'll support it on all Radeon cards R300 and up.
Anyway, GL_STREAM_DRAW should give you the same behavior as GL_CLIENT_STORAGE_BIT on open source Radeon drivers. Marek On Sun, Nov 24, 2013 at 1:19 PM, Tony Wasserka <neobra...@googlemail.com> wrote: > Hello everyone, > I was told on IRC that my question would get most attention around here - so > bear with me if this is the wrong place to ask > > I'm one of the developers of the GC/Wii emulator Dolphin. We recently > rewrote our OpenGL renderer to use modern OpenGL 3 features, however one > thing that we stumbled upon are the lack of efficient (vertex/index) buffer > data streaming mechanisms in OpenGL. Basically, most of our vertex data is > used once and never again after that (we have to do this for accurate > emulation) - so all vertex data gets streamed into one huge ring buffer (and > analogously for index data, which uses its own huge ring buffer). For buffer > streaming, we have multiple code paths using a combination of > glMapBufferRange, glBufferSubData, fences and buffer orphaning, yet none of > these come anywhere close to the performance of (legacy) rendering from a > vertex array stored in RAM. > > There are two OpenGL extensions which greatly help us in this situation: > AMD's pinned memory [1], and buffer storage[2] in GL 4.4. We currently have > no buffer storage code path, but usage of pinned memory gave us a speedup of > up to 60% under heavy workloads when working with AMD's Catalyst driver > under Windows. We expect the same speedup when using buffer storage > (specifically we need CLIENT_STORAGE_BIT, if I recall correctly). > > So the natural question that arises is: Is either of these two extensions > going to be supported in mesa anytime soon or is it of lower priority than > other extensions? Also, is the pinned memory extension AMD hardware specific > or would it be possible to support it for other hardware, too? I'm not sure > if buffer storage (being a GL 4.4 extension, and I read that it might > actually depend on some other GL 4.3 extension) is possible to implement on > older hardware, yet it would be very useful for us to have efficient > streaming methods for old GPUs, too. > > I hope this mail doesn't sound too commanding or anything, it's just > supposed to be a friendly question on improving the emulator experience for > our user base > Thanks in advance! > > Best regards, > Tony > > [1] http://www.opengl.org/registry/specs/AMD/pinned_memory.txt > [2] http://www.opengl.org/registry/specs/ARB/buffer_storage.txt > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev