GPU error attempting to render with EGL_image_external

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

GPU error attempting to render with EGL_image_external

跳至解决方案
1,177 次查看
Brainsnacks
Contributor II

Running on an iMX.8QuadMax, I am trying to deploy a Gstreamer pipeline that decodes HEVC frames that are then passed to "glupload", a Gstreamer element capable of producing EGL_image-backed GL textures.

glupload appears to be setting the correct parameters when creating the EGL image from the DMA buffer, based on its debug and logging output.

However, when I attempt to render the decoded frame inside GLES, sampling from the EGL_image-backed texture, I get the error:

[ 1] ES30: some draw get error and skipped during validation

Also, it will occasionally SEGFAULT during the draw which samples from the texture. The call stack is:

#0 0x0000fffff5a48e68 in ?? () from /usr/lib/libGAL.so
#1 0x0000fffff59edcb4 in gcoSURF_DisableTileStatus () from /usr/lib/libGAL.so
#2 0x0000fffff5a036e8 in gco3D_SetTarget () from /usr/lib/libGAL.so

Can I get some help figuring out what is wrong?

0 项奖励
回复
1 解答
1,104 次查看
Brainsnacks
Contributor II

I solved the issue. The Gstreamer plugins were using their own GL context instead of sharing my render context, so the texture IDs I was getting, despite being valid texture IDs in the render context, were not actually the same objects. Hence, attempting to sample those textures as EGLImage external backed textures was an error. 

在原帖中查看解决方案

3 回复数
1,105 次查看
Brainsnacks
Contributor II

I solved the issue. The Gstreamer plugins were using their own GL context instead of sharing my render context, so the texture IDs I was getting, despite being valid texture IDs in the render context, were not actually the same objects. Hence, attempting to sample those textures as EGLImage external backed textures was an error. 

1,144 次查看
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

For supported formats one can refer to the Release Notes, and the graphics user guide.

pay attention to Table 15. i.MX GStreamer 1.0 plugins.

Also if you are receiving segmentation fault is due to your don't have enough memory to run the graphics check this part.

 

Regards

 

0 项奖励
回复
1,141 次查看
Brainsnacks
Contributor II

I really don't think it's a memory space limitation. The texture is 200x200 RGBA. The video stream I'm playing back has 3 frames in it. That is only 160KB total.

I've read the Gstreamer guide. It mostly talks about constructing pipelines with gst-launch and isn't helpful here.

What does "some draw get error and skipped during validation" mean? How do I get more details on the actual *error*?

I also tried VIV_DEBUG=-MSG_LEVEL:WARNING and that didn't print anything new.

0 项奖励
回复