[Mesa-dev] [PATCH 2/7] egl: add support for EGL_ANDROID_blob_cache
Tapani Pälli
tapani.palli at intel.com
Wed Jan 17 08:42:18 UTC 2018
On 16.01.2018 19:45, Emil Velikov wrote:
> Hi Tapani,
>
> On 15 January 2018 at 12:31, Tapani Pälli <tapani.palli at intel.com> wrote:
>
>> +static void
>> +update_blob_cache_functions(struct dri2_egl_display *dri2_dpy,
>> + struct dri2_egl_context *dri2_ctx)
>> +{
>> + if (!dri2_dpy || !dri2_ctx)
>> + return;
> AFAICT dri2_dpy can never be NULL.
Yeah, that check can be removed.
It was because of my 'debug framework' (see eariler RFC). It was hit
when running PIGLIT_PLATFORM=gbm and during Piglit teardown we end up
here from eglMakeCurrent that called drv->API.SetBlobCacheFuncsANDROID
(and which is called during __run_exit_handlers) and display is then
0x0. But it won't ever happen without my 'debug framework' addition.
>> +
>> + /* No blob support. */
>> + if (!dri2_dpy->blob)
>> + return;
>> +
>> + /* No functions to set. */
>> + if (!dri2_dpy->blob_cache_set)
>> + return;
>> +
>> + dri2_dpy->blob->set_cache_funcs(dri2_ctx->dri_context,
>> + dri2_dpy->blob_cache_set,
>> + dri2_dpy->blob_cache_get);
>> +}
>> +
> I'm wondering why you opted to make set_cache_funcs dri_context
> specific as opposed to dri_screen.
> The latter seems to align better to EGLDisplay.
>
> Plus doing so will simplify the existing code - no hunk in
> dri2_make_current, no dri2_dpy->blob/blob_cache_set checks, etc.
It's an extension so we would still need dri2_dpy->blob check but maybe
not so much checks overall .. I'll see how that would look. Thanks!
>
>> @@ -230,6 +231,9 @@ struct dri2_egl_display
>>
>> bool is_render_node;
>> bool is_different_gpu;
>> +
>> + EGLSetBlobFuncANDROID blob_cache_set;
>> + EGLGetBlobFuncANDROID blob_cache_get;
> These two are part of the EGL API, so they are better suited in struct
> _egl_display.
OK, will move them there.
// Tapani
More information about the mesa-dev
mailing list