[Mesa-dev] EGL_EXT_*_drm - primary vs render node (Was Re: [Piglit] [PATCH 1/2] egl: Add sanity test for EGL_EXT_device_query (v3))

Mathias Fröhlich Mathias.Froehlich at gmx.net
Thu Sep 8 07:19:27 UTC 2016


Hi Emil,

Thanks for taking care so far.

On Wednesday, 7 September 2016 12:18:24 CEST Emil Velikov wrote:
> On 6 September 2016 at 18:32, Mathias Fröhlich
> <Mathias.Froehlich at gmx.net> wrote:
> 
> >>  ** EGL_EXT_output_drm
> Correction - the above should read: EGL_EXT_{device,output}_drm
> 
> >>  *** Using/exposing the card or render node
> >>  - Extension is designed with EGL streams in mind (using the
> >> primary/card node) while people expect to use to select the rendering
> >> device.
> >>  - Elaborate on the spec and/or introduce EGL_EXT_output{,_drm}_render ?
> >>  *** Exposing EGL_EXT_output{,_drm}{,_render} on EGL implementations
> >> supporting both SW and HW devices
> >>  - Elaborate on the spec(s), add new one for SW devices and/or error
> >> type to distinguish between the current errors and SW devices
> > I do not care about anything built on top of EGL_EXT_output_base or
> > EGL_*_stream_*. From my point of view this is beside.
> >
> >
> > What I do care about is EGL_EXT_platform_device.
> >
> That's precisely what, where and why we want to clarify, correct the
> spec or add a new one.

I am under the impression that we are not talking about the same things:
I believe that everything talking about EXT*_output_* is covering a completely 
different use case. The intent of what I am talking about is either a head- 
and outputless pbuffer or a context that is aimed to be used with 
EXT_KRH_surfaceless_context. There is not output required! And there is even 
no (sensible) output available. Also no remote output or virtualization 
output. This is just to produce offline image data.
If I could not motivate the use case so far, there is a nice reference
https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/
explaining the use case.

Given this is all headless a restricted and to be authenticated main node is 
of not so much use for this purpose. So to make the above usage work and under 
the assumption that render nodes were designed for this kind of use case there 
must be at least render nodes available in the device enumeration.
May be device enumeration should just enumerate both, the main nodes that you 
may need to attach monitor outputs and the render nodes to get offline 
contexts?

best
Mathias

> James, Daniel, can we hear your input on the following ?
> 
> The way I read the spec(s) EGL_EXT_device_drm can effectively be
> either the card/primary or render node, while EGL_EXT_output_drm must
> be the card one.
> Can/should we restrict the former to render only, do you see any
> implications that will bring ?
> Or should we just roll out another spec for the "render only" case ?




More information about the mesa-dev mailing list