On Wed, Apr 29, 2015 at 7:26 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > The bulk of the change is to prevent overriding the context to > API_OPENGL_CORE based on the requested version. If the context is > API_OPENGL_ES2, don't change it. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
\o/-by: Rob Clark <robdcl...@gmail.com> > --- > src/mesa/drivers/dri/common/dri_util.c | 4 ++++ > src/mesa/main/context.c | 4 +--- > src/mesa/main/version.c | 16 +++++++++------- > src/mesa/state_tracker/st_manager.c | 3 +-- > 4 files changed, 15 insertions(+), 12 deletions(-) > > diff --git a/src/mesa/drivers/dri/common/dri_util.c > b/src/mesa/drivers/dri/common/dri_util.c > index d6e875f..680a907 100644 > --- a/src/mesa/drivers/dri/common/dri_util.c > +++ b/src/mesa/drivers/dri/common/dri_util.c > @@ -163,6 +163,10 @@ driCreateNewScreen2(int scrn, int fd, > } > > int gl_version_override = _mesa_get_gl_version_override(); > + if (gl_version_override >= 20) { > + psp->max_gl_es2_version = MAX2(psp->max_gl_es2_version, > + gl_version_override); > + } > if (gl_version_override >= 31) { > psp->max_gl_core_version = MAX2(psp->max_gl_core_version, > gl_version_override); > diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c > index 4aaf8b1..cd1a02b 100644 > --- a/src/mesa/main/context.c > +++ b/src/mesa/main/context.c > @@ -1109,9 +1109,7 @@ _mesa_initialize_context(struct gl_context *ctx, > ctx->HasConfig = GL_FALSE; > } > > - if (_mesa_is_desktop_gl(ctx)) { > - _mesa_override_gl_version(ctx); > - } > + _mesa_override_gl_version(ctx); > > /* misc one-time initializations */ > one_time_init(ctx); > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c > index 1c19277..f426342 100644 > --- a/src/mesa/main/version.c > +++ b/src/mesa/main/version.c > @@ -134,13 +134,15 @@ _mesa_override_gl_version_contextless(struct > gl_constants *consts, > > if (version > 0) { > *versionOut = version; > - if (version >= 30 && fwd_context) { > - *apiOut = API_OPENGL_CORE; > - consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT; > - } else if (version >= 31 && !compat_context) { > - *apiOut = API_OPENGL_CORE; > - } else { > - *apiOut = API_OPENGL_COMPAT; > + if (*apiOut == API_OPENGL_CORE || *apiOut == API_OPENGL_COMPAT) { > + if (version >= 30 && fwd_context) { > + *apiOut = API_OPENGL_CORE; > + consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT; > + } else if (version >= 31 && !compat_context) { > + *apiOut = API_OPENGL_CORE; > + } else { > + *apiOut = API_OPENGL_COMPAT; > + } > } > return true; > } > diff --git a/src/mesa/state_tracker/st_manager.c > b/src/mesa/state_tracker/st_manager.c > index 840f76a..1b3b4cb 100644 > --- a/src/mesa/state_tracker/st_manager.c > +++ b/src/mesa/state_tracker/st_manager.c > @@ -920,8 +920,7 @@ static unsigned get_version(struct pipe_screen *screen, > struct gl_extensions extensions = {0}; > GLuint version; > > - if ((api == API_OPENGL_COMPAT || api == API_OPENGL_CORE) && > - _mesa_override_gl_version_contextless(&consts, &api, &version)) { > + if (_mesa_override_gl_version_contextless(&consts, &api, &version)) { > return version; > } > > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev