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 <neobra...@googlemail.com <mailto: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 <mailto: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

Reply via email to