[Mesa-dev] DMA_BUF render targets disabled for intel
Axel Davy
axel.davy at ens.fr
Thu Apr 2 10:40:20 PDT 2015
Hi,
you may be interesting look at this related bug report:
https://bugs.freedesktop.org/show_bug.cgi?id=87452#c5
Yours,
Axel Davy
On 02/04/2015 11:58, Volker Vogelhuber wrote :
> We currently want to stream OpenGL output to an FPGA that does not
> provide
> a SG controller and should manage the transfers from the CPU memory to
> it's
> own hardware. For that reason we want to have the OpenGL driver (intel
> baytrail)
> to render at a specific memory area within the CPU system. Render to
> texture as
> it is possible e.g. on the PowerVR 530 seems not to be possible, as
> GL_TEXTURE_EXTERNAL_OES is not valid for glFrameBufferTexture2D and
> in contrast to the PowerVR OpenGL implementation, Mesa seems to
> prohibit the
> use of GL_TEXTURE_2D for textures created by glEGLImageTargetTexture2DOES
> (there is a check within Mesa where glEGLImageTargetTexture2DOES's
> target has
> to be equal to the target of the texture => GL_TEXTURE_EXTERNAL_OES !=
> GL_TEXTURE_2D).
>
> So the only possible way to render to an EGLImage with memory
> allocated by myself
> seems to be the use of glEGLImageTargetRenderbufferStorageOES and bind
> this
> render buffer using glFramebufferRenderbuffer to the FBO.
>
> But for some reason, it seems to be forbidden to use an EGLImage
> imported from
> a dmabuf as render buffer. At least within
> src/mesa/drivers/dri/i965/intel_fbo.c there
> is a check:
>
> /* Buffers originating from outside are for read-only. */
> if (image->dma_buf_imported) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> "glEGLImageTargetRenderbufferStorage(dma buffers are
> read-only)");
> return;
> }
>
> This prevents me from doing what I wanted to do and I googled a bit.
> I found someone else that just removed that check:
>
> https://github.com/kalyankondapally/Chromium-OzoneGBM/blob/master/0010-i965-remove-read-only-restriction-of-imported-buffer.patch
>
>
> and after I did so myself, it just worked as I wanted it to work. I
> only wonder why this
> limitation has been added. Is it just for some pedantic reasons or is
> there any good reason
> why EGLImages imported from dmabuf descriptors shouldn't be used for
> render targets?
>
> --
> Volker
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list