<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hey Matt,<br>
      The speedup was only observed on discrete GPUs so far, I have no
      data about APUs.<br>
      <br>
      Best regards,<br>
      Tony<br>
      <br>
      <br>
      Am 26.11.2013 04:50, schrieb Matt Harvey:<br>
    </div>
    <blockquote
cite="mid:CADP3KAQV1Xt-JM6RskWm3metX4c7amoo_smp1MY1w4pUosfMHQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Tony,
        <div><br>
        </div>
        <div>I guess the lack of response means that neither of those
          extensions is on anyone's road map for right now.</div>
        <div><br>
        </div>
        <div>I have a quick question. Were you seeing those speedups
          only on the AMD APUs, or also on the discrete cards?</div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div>Matt</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Sun, Nov 24, 2013 at 7:19 AM, Tony
          Wasserka <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:neobrainx@googlemail.com" target="_blank">neobrainx@googlemail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
            everyone,<br>
            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<br>
            <br>
            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.<br>
            <br>
            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).<br>
            <br>
            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.<br>
            <br>
            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<br>
            Thanks in advance!<br>
            <br>
            Best regards,<br>
            Tony<br>
            <br>
            [1] <a moz-do-not-send="true"
              href="http://www.opengl.org/registry/specs/AMD/pinned_memory.txt"
              target="_blank">http://www.opengl.org/registry/specs/AMD/pinned_memory.txt</a><br>
            [2] <a moz-do-not-send="true"
              href="http://www.opengl.org/registry/specs/ARB/buffer_storage.txt"
              target="_blank">http://www.opengl.org/registry/specs/ARB/buffer_storage.txt</a><br>
            <br>
            _______________________________________________<br>
            mesa-dev mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:mesa-dev@lists.freedesktop.org"
              target="_blank">mesa-dev@lists.freedesktop.org</a><br>
            <a moz-do-not-send="true"
              href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev"
              target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>