[Mesa-dev] [PATCH v2 3/5] mesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override

2018-03-18 Thread Andres Gomez
From: Marek Olšák 

v2:
 - Provide a correct explanation on the envvars documentation (Ian).
 - Provide a more correct explanation on the function comments (Andres).

Fixes: 2599b92eb97 ("mesa: allow forcing >=3.1 compatibility contexts
with MESA_GL_VERSION_OVERRIDE")

Cc: Jordan Justen 
Cc: Ian Romanick 
Cc: Eric Engestrom 
Cc: Emil Velikov 
Signed-off-by: Andres Gomez 
---
 docs/envvars.html   | 25 ++---
 src/mesa/main/version.c | 23 +++
 2 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/docs/envvars.html b/docs/envvars.html
index ea42a50779b..7ec91a1fd91 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -88,19 +88,30 @@ This is a work-around for that.
 MESA_GL_VERSION_OVERRIDE - changes the value returned by
 glGetString(GL_VERSION) and possibly the GL API type.
 
- The format should be MAJOR.MINOR[FC]
+ The format should be MAJOR.MINOR[FC|COMPAT]
  FC is an optional suffix that indicates a forward compatible context.
 This is only valid for versions >= 3.0.
- GL versions < 3.0 are set to a compatibility (non-Core) profile
- GL versions = 3.0, see below
- GL versions > 3.0 are set to a Core profile
- Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
+ COMPAT is an optional suffix that indicates a compatibility
+context or GL_ARB_compatibility support. This is only valid for
+versions >= 3.1.
+ GL versions <= 3.0 are set to a compatibility (non-Core) profile
+ GL versions = 3.1, depending on the driver, it may or may not
+have the ARB_compatibility extension enabled.
+ GL versions >= 3.2 are set to a Core profile
+ Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, 3.2, 3.2FC, 3.2COMPAT
 
  2.1 - select a compatibility (non-Core) profile with GL version 2.1
  3.0 - select a compatibility (non-Core) profile with GL version 3.0
  3.0FC - select a Core+Forward Compatible profile with GL version 3.0
- 3.1 - select a Core profile with GL version 3.1
- 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
+ 3.1 - select OpenGL 3.1. GL_ARB_compatibility will be enabled per
+the driver default.
+ 3.1FC - select OpenGL 3.1 with forward compatibility
+enabled. GL_ARB_compatibilty will not be enabled.
+ 3.1COMPAT - select OpenGL 3.1 with GL_ARB_compatibilty forced
+enabled.
+ 3.2 - select a Core profile with GL version 3.2
+ 3.2FC - select a Core+Forward Compatible profile with GL version 3.2
+ 3.2COMPAT - select a compatibility (non-Core) profile with GL version 3.2
 
  Mesa may not really implement all the features of the given version.
 (for developers only)
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a28069054d3..ac8dd9b9e43 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -139,11 +139,15 @@ create_version_string(struct gl_context *ctx, const char 
*prefix)
  *
  * Example uses of MESA_GL_VERSION_OVERRIDE:
  *
- * 2.1: select a compatibility (non-Core) profile with GL version 2.1
- * 3.0: select a compatibility (non-Core) profile with GL version 3.0
- * 3.0FC: select a Core+Forward Compatible profile with GL version 3.0
- * 3.1: select a Core profile with GL version 3.1
- * 3.1FC: select a Core+Forward Compatible profile with GL version 3.1
+ * 2.1: select a compatibility (non-Core) profile with GL version 2.1.
+ * 3.0: select a compatibility (non-Core) profile with GL version 3.0.
+ * 3.0FC: select a Core+Forward Compatible profile with GL version 3.0.
+ * 3.1: select GL version 3.1 with GL_ARB_compatibility enabled per the driver 
default.
+ * 3.1FC: select GL version 3.1 with forward compatibility and 
GL_ARB_compatibility disabled.
+ * 3.1COMPAT: select GL version 3.1 with GL_ARB_compatibilty enabled.
+ * X.Y: override GL version to X.Y without changing the profile.
+ * X.YFC: select a Core+Forward Compatible profile with GL version X.Y.
+ * X.YCOMPAT: select a Compatibility profile with GL version X.Y.
  */
 bool
 _mesa_override_gl_version_contextless(struct gl_constants *consts,
@@ -157,17 +161,12 @@ _mesa_override_gl_version_contextless(struct gl_constants 
*consts,
if (version > 0) {
   *versionOut = version;
 
-  /* If the API is a desktop API, adjust the context flags.  We may also
-   * need to modify the API depending on the version.  For example, Mesa
-   * does not support a GL 3.3 compatibility profile.
-   */
+  /* Modify the API and context flags as needed. */
   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 {
+ } else if (compat_context) {
 *apiOut = API_OPENGL_COMPAT;
  }
   }
-- 
2.16.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/

Re: [Mesa-dev] [PATCH v2 3/5] mesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override

2018-03-27 Thread Emil Velikov
On 19 March 2018 at 00:41, Andres Gomez  wrote:
> From: Marek Olšák 
>
> v2:
>  - Provide a correct explanation on the envvars documentation (Ian).
>  - Provide a more correct explanation on the function comments (Andres).
>
> Fixes: 2599b92eb97 ("mesa: allow forcing >=3.1 compatibility contexts
> with MESA_GL_VERSION_OVERRIDE")
>
> Cc: Jordan Justen 
> Cc: Ian Romanick 
> Cc: Eric Engestrom 
> Cc: Emil Velikov 
> Signed-off-by: Andres Gomez 
> ---
>  docs/envvars.html   | 25 ++---
>  src/mesa/main/version.c | 23 +++
>  2 files changed, 29 insertions(+), 19 deletions(-)
>
> diff --git a/docs/envvars.html b/docs/envvars.html
> index ea42a50779b..7ec91a1fd91 100644
> --- a/docs/envvars.html
> +++ b/docs/envvars.html
> @@ -88,19 +88,30 @@ This is a work-around for that.
>  MESA_GL_VERSION_OVERRIDE - changes the value returned by
>  glGetString(GL_VERSION) and possibly the GL API type.
>  
> - The format should be MAJOR.MINOR[FC]
> + The format should be MAJOR.MINOR[FC|COMPAT]
>   FC is an optional suffix that indicates a forward compatible context.
>  This is only valid for versions >= 3.0.
> - GL versions < 3.0 are set to a compatibility (non-Core) profile
> - GL versions = 3.0, see below
> - GL versions > 3.0 are set to a Core profile
> - Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
> + COMPAT is an optional suffix that indicates a compatibility
> +context or GL_ARB_compatibility support. This is only valid for
> +versions >= 3.1.
> + GL versions <= 3.0 are set to a compatibility (non-Core) profile
> + GL versions = 3.1, depending on the driver, it may or may not
> +have the ARB_compatibility extension enabled.
> + GL versions >= 3.2 are set to a Core profile
> + Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, 3.2, 3.2FC, 3.2COMPAT
>  
>   2.1 - select a compatibility (non-Core) profile with GL version 2.1
>   3.0 - select a compatibility (non-Core) profile with GL version 3.0
>   3.0FC - select a Core+Forward Compatible profile with GL version 3.0
> - 3.1 - select a Core profile with GL version 3.1
> - 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
> + 3.1 - select OpenGL 3.1. GL_ARB_compatibility will be enabled per
> +the driver default.
> + 3.1FC - select OpenGL 3.1 with forward compatibility
> +enabled. GL_ARB_compatibilty will not be enabled.
> + 3.1COMPAT - select OpenGL 3.1 with GL_ARB_compatibilty forced
> +enabled.
> + 3.2 - select a Core profile with GL version 3.2
> + 3.2FC - select a Core+Forward Compatible profile with GL version 3.2
> + 3.2COMPAT - select a compatibility (non-Core) profile with GL version 
> 3.2
This hunk and the inline comment vary in small ways - can we just copy/paste?
The inline comments slightly better.

Also there seems to be a typo'd GL_ARB_compatibilty throughout.
Simple sed s/GL_ARB_compatibilty/GL_ARB_compatibility/ should do it.

With that
Reviewed-by: Emil Velikov 

No need to resent - but if you want fire away. Just merge the other
reviewed patches, please?

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev