[Mesa-dev] [PATCH 1/2] egl/dri2: implement platform_null (v2).

Frank Henigman fjhenigman at google.com
Tue Apr 7 23:03:58 PDT 2015


On Wed, Apr 8, 2015 at 1:28 AM, Chad Versace <chad.versace at intel.com> wrote:
> On Tue 07 Apr 2015, Kristian Høgsberg wrote:
>>
>> On Tue, Apr 7, 2015 at 6:46 PM, Frank Henigman <fjhenigman at google.com>
>> wrote:
>>>
>>> The name "surfaceless" suits me.
>>>
>>> Does this platform need to provide a hint to the user about buffer
>>> format?
>>> Platform drm does this via the EGL_NATIVE_VISUAL_ID query of
>>> eglGetConfigAttrib(), returning a gbm format value.  Unless we do the
>>> same or similar here, how does the user robustly find the right format
>>> for allocating buffers?
>>
>>
>> GBM provides
>>
>> int gbm_device_is_format_supported(struct gbm_device *gbm, uint32_t
>> format, uint32_t usage);
>>
>> and you can use that to find a format that works with
>> GBM_BO_USE_RENDERING.
>
>
> I don't think it makes sense to use EGL_NATIVE_VISUAL_ID here, so
> Kristian's suggestion sounds good to me. The EGL_NATIVE_VISUAL_ID, of
> course, has the same type as the native format of
> EGLNativeWindowSurface. But this platform has no EGLNativeWindowSurface,
> so therefore it has no EGL_NATIVE_VISUAL_ID.
>
> On first thought, it seems like re-purposing EGL_NATIVE_VISUAL_ID for
> this platform setting it to a gbm format, might be a good idea. But
> ultimately I think it's a bad idea because the platform isn't tied to
> gbm in any way. Today we use gbm_bo_create() to create the dma_buf
> storage, but tomorrow we might use a different API that doesn't
> understand gbm formats.

That's why I said "or similar."  It doesn't have to be a gbm format,
it could be a fourcc or something that the user translates to whatever
api they're using.
Am I correct in thinking the alternative is to sift through all the
gbm formats (if using gbm) to find one which satisfies
gbm_device_is_format_supported() and has the right number of alpha and
color bits?  So eglChooseConfig() does nothing for us anymore?  Will
we in fact have to be careful to find an egl config that exactly
matches the gbm format we choose?  Or should I not be calling
eglChooseConfig() at all?  I see an extension
EGL_MESA_configless_context...
Thanks.

Surfaceless and configless - next step is egl-less.  (^:


More information about the mesa-dev mailing list