[libre-riscv-dev] Request for input and technical expertise for Systèmes Libres Amazon Alexa IOT Pitch 10-JUN-2020
cand at gmx.com
Mon Jun 8 15:15:07 BST 2020
On Mon, 8 Jun 2020 09:55:54 -0400
Hendrik Boom <hendrik at topoi.pooq.com> wrote:
> And on avoiding data copying between CPU ad GPU:
> I believe the OpenGL API involves copying data from CPU buffers to GPU
> buffers, with the understanding that the CPU copies can be discarded
> while the GPU goes on with its copy.
> Having the same storage for both sets of buffers could obviously obviate
> these copies, except that software that uses this API will likely rely
> on being able to overwrite the CPU-side buffers with impunity. So the
> copy will still have to be done.
> Do I misunderstand OpenGL? Is Vulcan different? Will users want to
> bypass these libraries and use the graphics instructios directly? Or
> is there some other sublety I'm missing?
Your understanding is correct at a high level, one way of using OpenGL
will have to do that memcpy even on the Libresoc. Vulkan is explicit and
there are other ways in OpenGL too.
However you're missing the copy after that. On a traditional system,
using OpenGL that way, there will be a copy after the memcpy, to
transfer everything over PCI-E to the GPU. That's one of the copies that
Intel and AMD APUs may also eliminate that, sharing the main RAM, but
integrating the GPU in the same package does not save them from
marshalling the commands. Etc.
More information about the libre-riscv-dev