On 17 January 2018 at 16:11, Tapani Pälli <tapani.pa...@intel.com> wrote: > > > On 17.01.2018 13:28, Nicolai Hähnle wrote: >> >> On 16.01.2018 18:45, Emil Velikov wrote: >>> >>> Hi Tapani, >>> >>> On 15 January 2018 at 12:31, Tapani Pälli <tapani.pa...@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. >>> >>>> + >>>> + /* 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. >> >> >> Yes, please make it a screen thing. It just makes more sense, and there's >> precedent in Gallium, where the disk-cache is a per-pipe_screen object as >> well. > > > I chose context because eventually I need to access disk_cache which is part > of gl_context. I'm not sure how would I propagate the set/get there from > dri_screen? > Gallium does the following during create_context. I'm not sure if there's any particular reason why i965 cannot do the same. Tim, you've worked a fair bit in the area do you see any drawbacks?
ctx->Cache = pipe->screen->det_dist_shader_cache(pipe->screen); -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev