Hi Marek, Am Freitag, den 02.12.2016, 23:10 +0100 schrieb Marek Olšák: > Shouldn't this be in pipe_context if it does a copy? It's basically > the opposite of flush_resource, right?
I tried this at first (actually, at first I misunderstood the meaning of invalidate_resource and reused that, for GL_OES_EGL_image_external: https://patchwork.freedesktop.org/patch/89097/ https://patchwork.freedesktop.org/patch/89098/ I should update these to use resource_changed instead). But for WL_bind_wayland_display, resource_changed needs to be called in the eglCreateImageKHR -> dri2_create_image -> dri2_drm_create_image_khr -> dri2_create_image_khr -> dri2_create_image_wayland_wl_buffer -> dri2_from_planar path, though. eglCreateImageKHR is called without context for the EGL_WAYLAND_BUFFER_WL target when attaching an EGL wl_buffer to a wl_surface. I see resource_changed as complementary to the resource_create / resource_from_handle functionality, which already resides in pipe_screen. regards Philipp > Marek > > On Fri, Dec 2, 2016 at 4:27 PM, Philipp Zabel <p.za...@pengutronix.de> wrote: > > Add a hook to tell drivers that an imported resource may have changed > > and they need to update their internal derived resources. > > > > Signed-off-by: Philipp Zabel <p.za...@pengutronix.de> > > --- > > src/gallium/include/pipe/p_screen.h | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/src/gallium/include/pipe/p_screen.h > > b/src/gallium/include/pipe/p_screen.h > > index 255647e..e21229e 100644 > > --- a/src/gallium/include/pipe/p_screen.h > > +++ b/src/gallium/include/pipe/p_screen.h > > @@ -224,6 +224,12 @@ struct pipe_screen { > > struct winsys_handle *handle, > > unsigned usage); > > > > + /** > > + * Trigger recreation of derived internal resources. This can be used > > for > > + * reimporting external images that can't be directly used as texture > > + * sampler source. > > + */ > > + void (*resource_changed)(struct pipe_screen *, struct pipe_resource > > *pt); > > > > void (*resource_destroy)(struct pipe_screen *, > > struct pipe_resource *pt); > > -- > > 2.10.2 > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev