imx8mp OpenGL without display

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

imx8mp OpenGL without display

1,612 次查看
KobusGvid
Contributor III

Is there a way to get OpenGL to work while running in headless mode (without connecting a display)?
I'm running a imx8mp with an fsl-xwayland based image. I know PGU et-al are configured correctly in my devicetree as I can get a display working when connected. If I try to run a simple gstreamer pipeline like this:

gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12,width=1920,height=1080 ! queue ! glupload ! glcolorconvert ! gldownload ! video/x-raw,format=RGB ! queue ! fakesink

I get the following error: 

Got context from element 'gldownloadelement0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
ERROR: from element /GstPipeline:pipeline0/GstGLUploadElement:gluploadelement0: Failed to perform a wayland roundtrip

 

My system is set up to use remote-x server via SSH, but even then I get nothing.

Is there some XDG variable to set? or is there a way to get a fake framebuffer or something?

0 项奖励
回复
7 回复数

637 次查看
KobusGvid
Contributor III

So to answer my own question for anyone else coming here: 

I could get the GPU working and perform gstreamer glupload/glshader etc commands by: 
- Loading VKMS kernel module for a virtual display

- setting renderer=gl and disabling "g2d" in westom.ini. 

 

With these chnages weston starts up, and I have opngl commands. 

Interestingly, I was able to verify that OpenCL works fine even when weston is offline. Unfortunately the performance of anything in OpenCV using UMat's and the T-API didn't improve vs a normal matrix. It does seem to be much faster than a simple element wise multiplication for example in C, so that's probably down to the ARM-Neon acceleration in OpenCV.  

0 项奖励
回复

1,599 次查看
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

Please try this again:

$ DISPLAY=:0 gst-launch-1.0 videotestsrc ! video/x-raw(memory:NVMM),width=1920,height=1080, 'video/x-raw,width=1920, height=1080 ! xvimagesink sync=0

 

Regards

0 项奖励
回复

1,595 次查看
KobusGvid
Contributor III

I get the following:

WARNING: erroneous pipeline: could not link videotestsrc0 to xvimagesink0, neither element can handle caps video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080

Am I missing a kernel config?

0 项奖励
回复

1,591 次查看
Bio_TICFSL
NXP TechSupport
NXP TechSupport

That's is not an error, your system should be running without display.

Regards

0 项奖励
回复

1,555 次查看
KobusGvid
Contributor III

so does they teach us anything? Do you have any other ideas what could be causing the issue?

标记 (1)
0 项奖励
回复

1,421 次查看
ugurkurt
Contributor I

 

Hi there, I encountered the same issue on my i.MX8M board. What worked for me was adding the weston, weston-init, and weston-xwayland packages to my Yocto image, which completely resolved the display errors. Additionally, I set the XDG_RUNTIME_DIR environment variable using the following command: 
export XDG_RUNTIME_DIR=/run/user/$(id -u)

I hope this helps you resolve your issue as well!

0 项奖励
回复

1,409 次查看
KobusGvid
Contributor III

thanks ugurkur, but that doesn't seem to help. 

If I check `echo $XDG_RUNTIME_DIR` I get "/run/user/0", so that seems fine. 

And according to my manifest I have all the packages you mentioned. Still I cant get OpenGL to work.

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2047350%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Eimx8mp%20OpenGL%20%E6%97%A0%E6%98%BE%E7%A4%BA%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2047350%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E8%AE%A9%20OpenGL%20%E5%9C%A8%E6%97%A0%E5%A4%B4%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%BF%90%E8%A1%8C%EF%BC%88%E4%B8%8D%E8%BF%9E%E6%8E%A5%E6%98%BE%E7%A4%BA%E5%99%A8%EF%BC%89%EF%BC%9F%3CBR%20%2F%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E5%9F%BA%E4%BA%8E%20fsl-xwayland%20%E6%98%A0%E5%83%8F%E7%9A%84%20imx8mp%E3%80%82%E6%88%91%E7%9F%A5%E9%81%93%20PGU%20%E7%AD%89%E8%AE%BE%E5%A4%87%E5%9C%A8%E6%88%91%E7%9A%84%E8%AE%BE%E5%A4%87%E6%A0%91%E4%B8%AD%E9%85%8D%E7%BD%AE%E6%AD%A3%E7%A1%AE%EF%BC%8C%E5%9B%A0%E4%B8%BA%E8%BF%9E%E6%8E%A5%E5%90%8E%E5%B0%B1%E8%83%BD%E6%AD%A3%E5%B8%B8%E6%98%BE%E7%A4%BA%E3%80%82%E5%A6%82%E6%9E%9C%E6%88%91%E5%B0%9D%E8%AF%95%E5%83%8F%E8%BF%99%E6%A0%B7%E8%BF%90%E8%A1%8C%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%20gstreamer%20%E7%AE%A1%E9%81%93%EF%BC%9A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Egst-launch-1.0%20videotestsrc%20!%20video%2Fx-raw%2Cformat%3DNV12%2Cwidth%3D1920%2Cheight%3D1080%20!%20queue%20!%20glupload%20!%20glcolorconvert%20!%20gldownload%20!%20video%2Fx-raw%2Cformat%3DRGB%20!%20queue%20!%20fakesink%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E6%88%91%E6%94%B6%E5%88%B0%E4%BB%A5%E4%B8%8B%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF%20%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3EGot%20context%20from%20element%20'gldownloadelement0'%3A%20gst.gl.GLDisplay%3Dcontext%2C%20gst.gl.GLDisplay%3D(GstGLDisplay)%22%5C(GstGLDisplayWayland%5C)%5C%20gldisplaywayland0%22%3B%0AERROR%3A%20from%20element%20%2FGstPipeline%3Apipeline0%2FGstGLUploadElement%3Agluploadelement0%3A%20Failed%20to%20perform%20a%20wayland%20roundtrip%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E4%B8%BA%E9%80%9A%E8%BF%87%20SSH%20%E4%BD%BF%E7%94%A8%20remote-x%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E4%BD%86%E5%8D%B3%E4%BE%BF%E5%A6%82%E6%AD%A4%EF%BC%8C%E6%88%91%E4%B9%9F%E4%B8%80%E6%97%A0%E6%89%80%E8%8E%B7%E3%80%82%3C%2FP%3E%3CP%3E%E6%9C%89%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%20XDG%20%E5%8F%98%E9%87%8F%E5%8F%AF%E4%BB%A5%E8%AE%BE%E7%BD%AE%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2047350%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E5%9B%BE%E5%BD%A2%E4%B8%8E%E6%98%BE%E7%A4%BA%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E5%A4%9A%E5%AA%92%E4%BD%93%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EYocto%20Project%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2149293%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2149293%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%89%80%E4%BB%A5%EF%BC%8C%E6%88%91%E8%A6%81%E5%9B%9E%E7%AD%94%E6%88%91%E8%87%AA%E5%B7%B1%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BE%9B%E5%85%B6%E4%BB%96%E6%9D%A5%E8%BF%99%E9%87%8C%E7%9A%84%E4%BA%BA%E5%8F%82%E8%80%83%EF%BC%9A%20%3C%2FP%3E%3CP%3E%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E4%BB%A5%E4%B8%8B%E6%96%B9%E6%B3%95%E8%AE%A9%20GPU%20%E5%B7%A5%E4%BD%9C%E5%B9%B6%E6%89%A7%E8%A1%8C%20gstreamer%20glupload%2Fglshader%20%E7%AD%89%E5%91%BD%E4%BB%A4%EF%BC%9A%3CBR%20%2F%3E-%20%E4%B8%BA%E8%99%9A%E6%8B%9F%E6%98%BE%E7%A4%BA%E5%99%A8%E5%8A%A0%E8%BD%BD%20VKMS%20%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97%3C%2FP%3E%3CP%3E-%20%E5%9C%A8%20westom.ini%20%E4%B8%AD%E8%AE%BE%E7%BD%AE%20renderer%3Dgl%20%E5%B9%B6%E7%A6%81%E7%94%A8%22g2d%22%20%E3%80%82%20%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E7%BB%8F%E8%BF%87%E8%BF%99%E4%BA%9B%E8%AE%BE%E7%BD%AE%E5%90%8E%EF%BC%8CWESTON%20%E5%90%AF%E5%8A%A8%E4%BA%86%EF%BC%8C%E6%88%91%E4%B9%9F%E6%9C%89%E4%BA%86%20opngl%20%E5%91%BD%E4%BB%A4%E3%80%82%20%3C%2FP%3E%3CP%3E%E6%9C%89%E8%B6%A3%E7%9A%84%E6%98%AF%EF%BC%8C%E6%88%91%E9%AA%8C%E8%AF%81%E4%BA%86%20OpenCL%20%E5%9C%A8%20weston%20%E7%A6%BB%E7%BA%BF%E6%97%B6%E4%B9%9F%E8%83%BD%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82%E9%81%97%E6%86%BE%E7%9A%84%E6%98%AF%EF%BC%8C%E4%B8%8E%E6%99%AE%E9%80%9A%E7%9F%A9%E9%98%B5%E7%9B%B8%E6%AF%94%EF%BC%8COpenCV%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20UMat%20%E5%92%8C%20T-API%20%E7%9A%84%E6%80%A7%E8%83%BD%E5%B9%B6%E6%B2%A1%E6%9C%89%E6%8F%90%E9%AB%98%E3%80%82%E5%AE%83%E4%BC%BC%E4%B9%8E%E7%A1%AE%E5%AE%9E%E6%AF%94%E7%AE%80%E5%8D%95%E7%9A%84%E9%80%90%E5%85%83%E7%B4%A0%E4%B9%98%E6%B3%95%E5%BF%AB%E5%BE%97%E5%A4%9A%EF%BC%8C%E4%BE%8B%E5%A6%82%E5%9C%A8%20C%20%E4%B8%AD%EF%BC%8C%E6%89%80%E4%BB%A5%E8%BF%99%E5%8F%AF%E8%83%BD%E8%A6%81%E5%BD%92%E5%9B%A0%E4%BA%8E%20OpenCV%20%E4%B8%AD%E7%9A%84%20Arm-neon%20%E5%8A%A0%E9%80%9F%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2056407%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2056407%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%B0%A2%E8%B0%A2%20ugurkur%EF%BC%8C%E4%BD%86%E8%BF%99%E4%BC%BC%E4%B9%8E%E6%B2%A1%E4%BB%80%E4%B9%88%E7%94%A8%E3%80%82%20%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E6%88%91%E6%A3%80%E6%9F%A5%20%60echo%20%24XDG_RUNTIME_DIR%60%20%EF%BC%8C%E4%BC%9A%E5%BE%97%E5%88%B0%22%2Frun%2Fuser%2F0%22%20%EF%BC%8C%E6%89%80%E4%BB%A5%E7%9C%8B%E8%B5%B7%E6%9D%A5%E6%B2%A1%E9%97%AE%E9%A2%98%E3%80%82%20%3C%2FP%3E%3CP%3E%E6%A0%B9%E6%8D%AE%E6%88%91%E7%9A%84%E6%B8%85%E5%8D%95%EF%BC%8C%E6%88%91%E6%9C%89%E4%BD%A0%E6%8F%90%E5%88%B0%E7%9A%84%E6%89%80%E6%9C%89%E4%BB%A3%E7%A0%81%E5%8C%85%E3%80%82%E4%BD%86%E6%88%91%E4%BB%8D%E7%84%B6%E6%97%A0%E6%B3%95%E8%AE%A9%20OpenGL%20%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2056260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2056260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CBR%20%2F%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E6%88%91%E5%9C%A8%20i.MX8M%20%E6%9D%BF%E4%B8%8A%E9%81%87%E5%88%B0%E4%BA%86%E5%90%8C%E6%A0%B7%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%E5%AF%B9%E6%88%91%E6%9C%89%E7%94%A8%E7%9A%84%E6%98%AF%E5%B0%86%20%3CSTRONG%3Eweston%3C%2FSTRONG%3E%E3%80%81%3CSTRONG%3Eweston-init%3C%2FSTRONG%3E%20%E5%92%8C%20%3CSTRONG%3Eweston-xwayland%3C%2FSTRONG%3E%20%E4%BB%A3%E7%A0%81%E5%8C%85%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%88%91%E7%9A%84%20Yocto%20%E5%9B%BE%E5%83%8F%E4%B8%AD%EF%BC%8C%E8%BF%99%E5%AE%8C%E5%85%A8%E8%A7%A3%E5%86%B3%E4%BA%86%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF%E3%80%82%E6%AD%A4%E5%A4%96%EF%BC%8C%E6%88%91%E8%BF%98%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E5%91%BD%E4%BB%A4%E8%AE%BE%E7%BD%AE%E4%BA%86%3CSTRONG%3E%20XDG_RUNTIME_DIR%3C%2FSTRONG%3E%20%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9A%3CBR%20%2F%3E%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%20export%3C%2FSPAN%3E%20XDG_RUNTIME_DIR%3D%2Frun%2Fuser%2F%24(%3CSPAN%20class%3D%22%22%3E%20id%3C%2FSPAN%3E%20-u)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E5%B8%8C%E6%9C%9B%E8%BF%99%E4%B9%9F%E8%83%BD%E5%B8%AE%E5%8A%A9%E6%82%A8%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2048433%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2048433%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E9%82%A3%E4%B9%88%EF%BC%8C%E5%AE%83%E4%BB%AC%E8%83%BD%E6%95%99%E7%BB%99%E6%88%91%E4%BB%AC%E4%BB%80%E4%B9%88%E5%90%97%EF%BC%9F%E6%82%A8%E8%BF%98%E6%9C%89%E4%BB%80%E4%B9%88%E5%85%B6%E4%BB%96%E6%83%B3%E6%B3%95%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E5%AF%BC%E8%87%B4%E4%BA%86%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2047500%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2047500%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%BF%99%E4%B8%8D%E6%98%AF%E9%94%99%E8%AF%AF%EF%BC%8C%E4%BD%A0%E7%9A%84%E7%B3%BB%E7%BB%9F%E5%BA%94%E8%AF%A5%E5%9C%A8%E6%97%A0%E6%98%BE%E7%A4%BA%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%BF%90%E8%A1%8C%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2047490%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2047490%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E5%BE%97%E5%88%B0%E4%BB%A5%E4%B8%8B%E4%BF%A1%E6%81%AF%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3EWARNING%3A%20erroneous%20pipeline%3A%20could%20not%20link%20videotestsrc0%20to%20xvimagesink0%2C%20neither%20element%20can%20handle%20caps%20video%2Fx-raw(memory%3ANVMM)%2C%20width%3D(int)1920%2C%20height%3D(int)1080%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%E6%88%91%E6%98%AF%E5%90%A6%E6%BC%8F%E6%8E%89%E4%BA%86%E5%86%85%E6%A0%B8%E9%85%8D%E7%BD%AE%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2047456%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20imx8mp%20OpenGL%20without%20display%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2047456%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E5%86%8D%E8%AF%95%E4%B8%80%E6%AC%A1%EF%BC%9A%3C%2FP%3E%0A%3CP%3E%24%20DISPLAY%3D%3A0%20gst-%E7%94%A8%E4%B8%8A%E5%B8%82%EF%BC%8C%E4%B8%8D%E7%94%A8%E5%8F%91%E5%B8%83-1.0videotestsrc%20%EF%BC%81video%2Fx-raw(memory%3ANVMM)%2Cwidth%3D1920%2Cheight%3D1080%2C%20'video%2Fx-raw%2Cwidth%3D1920%2Cheight%3D1080%20%EF%BC%81xvimagesink%20sync%3D0%20%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%3C%2FP%3E%3C%2FLINGO-BODY%3E