[Mesa-dev] [PATCH v2] gallium: Correctly handle no config context creation
Marek Olšák
maraeo at gmail.com
Mon Sep 10 19:30:53 UTC 2018
Pushed, thanks for the patch!
Marek
On Sat, Sep 8, 2018 at 11:57 PM, Elie Tournier <tournier.elie at gmail.com> wrote:
> 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