[Mesa-dev] Request for support of GL_AMD_pinned_memory and GL_ARB_buffer_storage extensions
Tony Wasserka
neobrainx at googlemail.com
Thu Nov 28 08:13:35 PST 2013
Hey Matt,
The speedup was only observed on discrete GPUs so far, I have no data
about APUs.
Best regards,
Tony
Am 26.11.2013 04:50, schrieb Matt Harvey:
> Hi Tony,
>
> I guess the lack of response means that neither of those extensions is
> on anyone's road map for right now.
>
> I have a quick question. Were you seeing those speedups only on the
> AMD APUs, or also on the discrete cards?
>
> Thanks,
> Matt
>
>
> On Sun, Nov 24, 2013 at 7:19 AM, Tony Wasserka
> <neobrainx at googlemail.com <mailto:neobrainx at 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 at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131128/22d0b61a/attachment.html>
More information about the mesa-dev
mailing list