[Mesa-dev] [PATCH v2] gallium: Correctly handle no config context creation
Elie Tournier
tournier.elie at gmail.com
Sun Sep 9 03:57:45 UTC 2018
If you don't mind, can you please push this patch for me?
I don't have git access.
Thanks a lot,
Elie
On Fri, 7 Sep 2018 at 22:49, Marek Olšák <maraeo at gmail.com> wrote:
>
> Reviewed-by: Marek Olšák <marek.olsak at amd.com>
>
> Marek
>
> On Thu, Sep 6, 2018 at 5:46 AM, Elie Tournier <tournier.elie at gmail.com> wrote:
> > This patch fixes the following Piglit test:
> > spec at egl_mesa_configless_context@basic
> > It also fixes few test in a virgl guest.
> >
> > v2: Evaluate the value of no_config (Ilia)
> >
> > Suggested-by: Emil Velikov <emil.velikov at collabora.com>
> > Signed-off-by: Elie Tournier <elie.tournier at collabora.com>
> > ---
> > src/gallium/include/state_tracker/st_api.h | 2 ++
> > src/gallium/state_trackers/dri/dri_screen.c | 4 +++-
> > src/mesa/state_tracker/st_manager.c | 9 ++++++++-
> > 3 files changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h
> > index 61152e3546..2b63b8a3d2 100644
> > --- a/src/gallium/include/state_tracker/st_api.h
> > +++ b/src/gallium/include/state_tracker/st_api.h
> > @@ -190,6 +190,8 @@ struct st_egl_image
> > */
> > struct st_visual
> > {
> > + bool no_config;
> > +
> > /**
> > * Available buffers. Bitfield of ST_ATTACHMENT_*_MASK bits.
> > */
> > diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
> > index 027e85024f..308e23685e 100644
> > --- a/src/gallium/state_trackers/dri/dri_screen.c
> > +++ b/src/gallium/state_trackers/dri/dri_screen.c
> > @@ -308,8 +308,10 @@ dri_fill_st_visual(struct st_visual *stvis,
> > {
> > memset(stvis, 0, sizeof(*stvis));
> >
> > - if (!mode)
> > + if (!mode) {
> > + stvis->no_config = true;
> > return;
> > + }
> >
> > /* Deduce the color format. */
> > switch (mode->redMask) {
> > diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
> > index 69286b5791..9ed316b0f7 100644
> > --- a/src/mesa/state_tracker/st_manager.c
> > +++ b/src/mesa/state_tracker/st_manager.c
> > @@ -834,6 +834,7 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
> > struct st_context *shared_ctx = (struct st_context *) shared_stctxi;
> > struct st_context *st;
> > struct pipe_context *pipe;
> > + struct gl_config* mode_ptr;
> > struct gl_config mode;
> > gl_api api;
> > bool no_error = false;
> > @@ -893,7 +894,13 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
> > }
> >
> > st_visual_to_context_mode(&attribs->visual, &mode);
> > - st = st_create_context(api, pipe, &mode, shared_ctx,
> > +
> > + if (attribs->visual.no_config)
> > + mode_ptr = NULL;
> > + else
> > + mode_ptr = &mode;
> > +
> > + st = st_create_context(api, pipe, mode_ptr, shared_ctx,
> > &attribs->options, no_error);
> > if (!st) {
> > *error = ST_CONTEXT_ERROR_NO_MEMORY;
> > --
> > 2.18.0
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list