Headless rendering with PVR SGX530, EGL, OpenGL - is it supported?

Hello, does the PowerVR SGX530 egl implementation support GPU rendering to a pbuffer or similar without any physical display attached or windowing system installed? I could not find PVR egl extensions which support this…though I may be looking in the wrong place.

eglQueryDevicesEXT et. al. appear to support the type of thing I am describing
https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_device_enumeration.txt
, but dont appear to be supported by PVR(?).

Should I be using a different approach?

I am targeting the Beagle Bone Black (AM335x Cortex A8, PowerVR SGX530).

Cheers.

Hi,

I don’t have that device with me, can you please post information returned by these calls?
You might need a display for this :slight_smile:
eglQueryString(display, EGL_EXTENSIONS);
eglQueryString(display, EGL_VERSION);
glGetString(GL_EXTENSIONS);
glGetString(GL_RENDERER);

It should be just a matter of technicality. Eg. get an EGL display from somewhere, then:
eglInitialize(display, …)
eglChooseConfig(display, …);
eglBindAPI(EGL_OPENGL_ES_API);
EGLContext context = eglCreateContext(display, …);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, context));

and then just create an GL Framebuffer object and render to it. You would end frames with glFinish.

thank you,
Marton

I have also been trying to do some headless rendering on a SGX530 (on a Pocketbeagle).

I’ve found that creating a valid EGL context is the hardest thing and without a display connected, i haven’t managed to do it.

My understanding is that you have to create a GBM device, something like:

int32_t fd = open("/dev/dri/renderD128", O_RDWR);
struct gbm_device *gbm = gbm_create_device(fd);

However, this prints out:

PVR:(Error): [22682->22682] <gbm_pvr_create_device():592|ERROR> Failed to create
DBM device: No such device [0, ]

Can you confirm that this is because no display is connected?

Does this mean it’s not possible to do headless rendering?

Hi whg,

I’ll be taking a look at the issue you’re facing and I’ll get back you ASAP. I understand you’ve been trying to get headless rendering to work on both the BeagleBone Black and The BeagleBoard pocket, correct?

In the meantime, would you mind sharing which BeagleBoard image you are currently using?

Omar.

Sorry about the delay… I’ve only been trying this on the Pocketbeagle.

The image I’m using was made by Robert McNeel (who makes all the beaglebone images) and can be found at:

https://rcn-ee.net/rootfs/bb.org/testing/2020-04-04/stretch-imgtec/

It’s a debian 9 image with all the Imagination things included, apparently.

© Imagination Technologies Limited. All rights reserved.
Privacy PolicyTerms & ConditionsTrademarksCookies