[Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Ilia Mirkin
Some required extension might be missing, and we may expose a GLSL
version that does not match up with the GL version. Fix that up when
computing the GL version.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
---
 src/mesa/main/version.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a65ace0..bf0a1cf 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants *consts)
  */
 static GLuint
 compute_version(const struct gl_extensions *extensions,
-const struct gl_constants *consts, gl_api api)
+struct gl_constants *consts, gl_api api)
 {
GLuint major, minor, version;
 
@@ -330,38 +330,47 @@ compute_version(const struct gl_extensions *extensions,
if (ver_4_2) {
   major = 4;
   minor = 2;
+  consts-GLSLVersion = 420;
}
else if (ver_4_1) {
   major = 4;
   minor = 1;
+  consts-GLSLVersion = 410;
}
else if (ver_4_0) {
   major = 4;
   minor = 0;
+  consts-GLSLVersion = 400;
}
else if (ver_3_3) {
   major = 3;
   minor = 3;
+  consts-GLSLVersion = 330;
}
else if (ver_3_2) {
   major = 3;
   minor = 2;
+  consts-GLSLVersion = 150;
}
else if (ver_3_1) {
   major = 3;
   minor = 1;
+  consts-GLSLVersion = 140;
}
else if (ver_3_0) {
   major = 3;
   minor = 0;
+  consts-GLSLVersion = 130;
}
else if (ver_2_1) {
   major = 2;
   minor = 1;
+  consts-GLSLVersion = 120;
}
else if (ver_2_0) {
   major = 2;
   minor = 0;
+  consts-GLSLVersion = 110;
}
else if (ver_1_5) {
   major = 1;
-- 
2.0.5

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


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Brian Paul

On 04/27/2015 07:23 AM, Ilia Mirkin wrote:

Some required extension might be missing, and we may expose a GLSL
version that does not match up with the GL version. Fix that up when
computing the GL version.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
---
  src/mesa/main/version.c | 11 ++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a65ace0..bf0a1cf 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants *consts)
   */
  static GLuint
  compute_version(const struct gl_extensions *extensions,
-const struct gl_constants *consts, gl_api api)
+struct gl_constants *consts, gl_api api)
  {
 GLuint major, minor, version;

@@ -330,38 +330,47 @@ compute_version(const struct gl_extensions *extensions,
 if (ver_4_2) {
major = 4;
minor = 2;
+  consts-GLSLVersion = 420;
 }
 else if (ver_4_1) {
major = 4;
minor = 1;
+  consts-GLSLVersion = 410;
 }
 else if (ver_4_0) {
major = 4;
minor = 0;
+  consts-GLSLVersion = 400;
 }
 else if (ver_3_3) {
major = 3;
minor = 3;
+  consts-GLSLVersion = 330;
 }
 else if (ver_3_2) {
major = 3;
minor = 2;
+  consts-GLSLVersion = 150;
 }
 else if (ver_3_1) {
major = 3;
minor = 1;
+  consts-GLSLVersion = 140;
 }
 else if (ver_3_0) {
major = 3;
minor = 0;
+  consts-GLSLVersion = 130;
 }
 else if (ver_2_1) {
major = 2;
minor = 1;
+  consts-GLSLVersion = 120;
 }
 else if (ver_2_0) {
major = 2;
minor = 0;
+  consts-GLSLVersion = 110;
 }
 else if (ver_1_5) {
major = 1;



This looks OK, but another approach might be to have a new function 
which returns the GLSL version for a given GL version (could be encoded 
in a small table).  Then, use that function to clamp/set 
consts-GLSLVersion.  That way we can keep the nice const-ness of the 
compute_version() parameters.


Otherwise, we should at least update the comments to indicate that the 
gl_constants can change.


-Brian

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


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Brian Paul

On 04/27/2015 07:39 AM, Ilia Mirkin wrote:

On Mon, Apr 27, 2015 at 9:38 AM, Brian Paul bri...@vmware.com wrote:

On 04/27/2015 07:23 AM, Ilia Mirkin wrote:


Some required extension might be missing, and we may expose a GLSL
version that does not match up with the GL version. Fix that up when
computing the GL version.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
---
   src/mesa/main/version.c | 11 ++-
   1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a65ace0..bf0a1cf 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants
*consts)
*/
   static GLuint
   compute_version(const struct gl_extensions *extensions,
-const struct gl_constants *consts, gl_api api)
+struct gl_constants *consts, gl_api api)
   {
  GLuint major, minor, version;

@@ -330,38 +330,47 @@ compute_version(const struct gl_extensions
*extensions,
  if (ver_4_2) {
 major = 4;
 minor = 2;
+  consts-GLSLVersion = 420;
  }
  else if (ver_4_1) {
 major = 4;
 minor = 1;
+  consts-GLSLVersion = 410;
  }
  else if (ver_4_0) {
 major = 4;
 minor = 0;
+  consts-GLSLVersion = 400;
  }
  else if (ver_3_3) {
 major = 3;
 minor = 3;
+  consts-GLSLVersion = 330;
  }
  else if (ver_3_2) {
 major = 3;
 minor = 2;
+  consts-GLSLVersion = 150;
  }
  else if (ver_3_1) {
 major = 3;
 minor = 1;
+  consts-GLSLVersion = 140;
  }
  else if (ver_3_0) {
 major = 3;
 minor = 0;
+  consts-GLSLVersion = 130;
  }
  else if (ver_2_1) {
 major = 2;
 minor = 1;
+  consts-GLSLVersion = 120;
  }
  else if (ver_2_0) {
 major = 2;
 minor = 0;
+  consts-GLSLVersion = 110;
  }
  else if (ver_1_5) {
 major = 1;



This looks OK, but another approach might be to have a new function which
returns the GLSL version for a given GL version (could be encoded in a small
table).  Then, use that function to clamp/set consts-GLSLVersion.  That way
we can keep the nice const-ness of the compute_version() parameters.


Where do you envision the clamping be done?


How about _mesa_compute_version()?

-Brian

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


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Ilia Mirkin
On Mon, Apr 27, 2015 at 9:58 AM, Brian Paul bri...@vmware.com wrote:
 On 04/27/2015 07:39 AM, Ilia Mirkin wrote:

 On Mon, Apr 27, 2015 at 9:38 AM, Brian Paul bri...@vmware.com wrote:

 On 04/27/2015 07:23 AM, Ilia Mirkin wrote:


 Some required extension might be missing, and we may expose a GLSL
 version that does not match up with the GL version. Fix that up when
 computing the GL version.

 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 ---
src/mesa/main/version.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)

 diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
 index a65ace0..bf0a1cf 100644
 --- a/src/mesa/main/version.c
 +++ b/src/mesa/main/version.c
 @@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants
 *consts)
 */
static GLuint
compute_version(const struct gl_extensions *extensions,
 -const struct gl_constants *consts, gl_api api)
 +struct gl_constants *consts, gl_api api)
{
   GLuint major, minor, version;

 @@ -330,38 +330,47 @@ compute_version(const struct gl_extensions
 *extensions,
   if (ver_4_2) {
  major = 4;
  minor = 2;
 +  consts-GLSLVersion = 420;
   }
   else if (ver_4_1) {
  major = 4;
  minor = 1;
 +  consts-GLSLVersion = 410;
   }
   else if (ver_4_0) {
  major = 4;
  minor = 0;
 +  consts-GLSLVersion = 400;
   }
   else if (ver_3_3) {
  major = 3;
  minor = 3;
 +  consts-GLSLVersion = 330;
   }
   else if (ver_3_2) {
  major = 3;
  minor = 2;
 +  consts-GLSLVersion = 150;
   }
   else if (ver_3_1) {
  major = 3;
  minor = 1;
 +  consts-GLSLVersion = 140;
   }
   else if (ver_3_0) {
  major = 3;
  minor = 0;
 +  consts-GLSLVersion = 130;
   }
   else if (ver_2_1) {
  major = 2;
  minor = 1;
 +  consts-GLSLVersion = 120;
   }
   else if (ver_2_0) {
  major = 2;
  minor = 0;
 +  consts-GLSLVersion = 110;
   }
   else if (ver_1_5) {
  major = 1;


 This looks OK, but another approach might be to have a new function which
 returns the GLSL version for a given GL version (could be encoded in a
 small
 table).  Then, use that function to clamp/set consts-GLSLVersion.  That
 way
 we can keep the nice const-ness of the compute_version() parameters.


 Where do you envision the clamping be done?


 How about _mesa_compute_version()?

... which is the only caller of compute_version(). You just want it
split up into a separate switch statement or something?
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Ilia Mirkin
On Mon, Apr 27, 2015 at 10:22 AM, Brian Paul bri...@vmware.com wrote:
 On 04/27/2015 08:05 AM, Ilia Mirkin wrote:

 On Mon, Apr 27, 2015 at 9:58 AM, Brian Paul bri...@vmware.com wrote:

 On 04/27/2015 07:39 AM, Ilia Mirkin wrote:


 On Mon, Apr 27, 2015 at 9:38 AM, Brian Paul bri...@vmware.com wrote:


 On 04/27/2015 07:23 AM, Ilia Mirkin wrote:



 Some required extension might be missing, and we may expose a GLSL
 version that does not match up with the GL version. Fix that up when
 computing the GL version.

 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 ---
 src/mesa/main/version.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

 diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
 index a65ace0..bf0a1cf 100644
 --- a/src/mesa/main/version.c
 +++ b/src/mesa/main/version.c
 @@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants
 *consts)
  */
 static GLuint
 compute_version(const struct gl_extensions *extensions,
 -const struct gl_constants *consts, gl_api api)
 +struct gl_constants *consts, gl_api api)
 {
GLuint major, minor, version;

 @@ -330,38 +330,47 @@ compute_version(const struct gl_extensions
 *extensions,
if (ver_4_2) {
   major = 4;
   minor = 2;
 +  consts-GLSLVersion = 420;
}
else if (ver_4_1) {
   major = 4;
   minor = 1;
 +  consts-GLSLVersion = 410;
}
else if (ver_4_0) {
   major = 4;
   minor = 0;
 +  consts-GLSLVersion = 400;
}
else if (ver_3_3) {
   major = 3;
   minor = 3;
 +  consts-GLSLVersion = 330;
}
else if (ver_3_2) {
   major = 3;
   minor = 2;
 +  consts-GLSLVersion = 150;
}
else if (ver_3_1) {
   major = 3;
   minor = 1;
 +  consts-GLSLVersion = 140;
}
else if (ver_3_0) {
   major = 3;
   minor = 0;
 +  consts-GLSLVersion = 130;
}
else if (ver_2_1) {
   major = 2;
   minor = 1;
 +  consts-GLSLVersion = 120;
}
else if (ver_2_0) {
   major = 2;
   minor = 0;
 +  consts-GLSLVersion = 110;
}
else if (ver_1_5) {
   major = 1;


 This looks OK, but another approach might be to have a new function
 which
 returns the GLSL version for a given GL version (could be encoded in a
 small
 table).  Then, use that function to clamp/set consts-GLSLVersion.
 That
 way
 we can keep the nice const-ness of the compute_version() parameters.



 Where do you envision the clamping be done?



 How about _mesa_compute_version()?


 ... which is the only caller of compute_version().


 Via _mesa_get_version() which also called from st_manager.c which seems to
 be unconcerned with GLSL stuff.


 You just want it
 split up into a separate switch statement or something?


 As I said, I thought a table would work, but a switch would be fine too.

 If you feel this is too much work, it's not that big of deal.  I just
 thought it would be cleaner.

Nope, not too much work, just trying to tease out what you want me to
do. I got confused between _mesa_compute_version and
_mesa_get_version. It does seem like a switch is simpler than a table
though. (The table would have to be indexed by GL version, which is
pretty sparse if you do versions like 20, 33 and 40.)

  -ilia
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Ilia Mirkin
On Mon, Apr 27, 2015 at 9:38 AM, Brian Paul bri...@vmware.com wrote:
 On 04/27/2015 07:23 AM, Ilia Mirkin wrote:

 Some required extension might be missing, and we may expose a GLSL
 version that does not match up with the GL version. Fix that up when
 computing the GL version.

 Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
 ---
   src/mesa/main/version.c | 11 ++-
   1 file changed, 10 insertions(+), 1 deletion(-)

 diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
 index a65ace0..bf0a1cf 100644
 --- a/src/mesa/main/version.c
 +++ b/src/mesa/main/version.c
 @@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants
 *consts)
*/
   static GLuint
   compute_version(const struct gl_extensions *extensions,
 -const struct gl_constants *consts, gl_api api)
 +struct gl_constants *consts, gl_api api)
   {
  GLuint major, minor, version;

 @@ -330,38 +330,47 @@ compute_version(const struct gl_extensions
 *extensions,
  if (ver_4_2) {
 major = 4;
 minor = 2;
 +  consts-GLSLVersion = 420;
  }
  else if (ver_4_1) {
 major = 4;
 minor = 1;
 +  consts-GLSLVersion = 410;
  }
  else if (ver_4_0) {
 major = 4;
 minor = 0;
 +  consts-GLSLVersion = 400;
  }
  else if (ver_3_3) {
 major = 3;
 minor = 3;
 +  consts-GLSLVersion = 330;
  }
  else if (ver_3_2) {
 major = 3;
 minor = 2;
 +  consts-GLSLVersion = 150;
  }
  else if (ver_3_1) {
 major = 3;
 minor = 1;
 +  consts-GLSLVersion = 140;
  }
  else if (ver_3_0) {
 major = 3;
 minor = 0;
 +  consts-GLSLVersion = 130;
  }
  else if (ver_2_1) {
 major = 2;
 minor = 1;
 +  consts-GLSLVersion = 120;
  }
  else if (ver_2_0) {
 major = 2;
 minor = 0;
 +  consts-GLSLVersion = 110;
  }
  else if (ver_1_5) {
 major = 1;


 This looks OK, but another approach might be to have a new function which
 returns the GLSL version for a given GL version (could be encoded in a small
 table).  Then, use that function to clamp/set consts-GLSLVersion.  That way
 we can keep the nice const-ness of the compute_version() parameters.

Where do you envision the clamping be done?


 Otherwise, we should at least update the comments to indicate that the
 gl_constants can change.

 -Brian

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


Re: [Mesa-dev] [PATCH 1/2] mesa: fix up GLSL version when computing GL version

2015-04-27 Thread Brian Paul

On 04/27/2015 08:05 AM, Ilia Mirkin wrote:

On Mon, Apr 27, 2015 at 9:58 AM, Brian Paul bri...@vmware.com wrote:

On 04/27/2015 07:39 AM, Ilia Mirkin wrote:


On Mon, Apr 27, 2015 at 9:38 AM, Brian Paul bri...@vmware.com wrote:


On 04/27/2015 07:23 AM, Ilia Mirkin wrote:



Some required extension might be missing, and we may expose a GLSL
version that does not match up with the GL version. Fix that up when
computing the GL version.

Signed-off-by: Ilia Mirkin imir...@alum.mit.edu
---
src/mesa/main/version.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index a65ace0..bf0a1cf 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -207,7 +207,7 @@ _mesa_override_glsl_version(struct gl_constants
*consts)
 */
static GLuint
compute_version(const struct gl_extensions *extensions,
-const struct gl_constants *consts, gl_api api)
+struct gl_constants *consts, gl_api api)
{
   GLuint major, minor, version;

@@ -330,38 +330,47 @@ compute_version(const struct gl_extensions
*extensions,
   if (ver_4_2) {
  major = 4;
  minor = 2;
+  consts-GLSLVersion = 420;
   }
   else if (ver_4_1) {
  major = 4;
  minor = 1;
+  consts-GLSLVersion = 410;
   }
   else if (ver_4_0) {
  major = 4;
  minor = 0;
+  consts-GLSLVersion = 400;
   }
   else if (ver_3_3) {
  major = 3;
  minor = 3;
+  consts-GLSLVersion = 330;
   }
   else if (ver_3_2) {
  major = 3;
  minor = 2;
+  consts-GLSLVersion = 150;
   }
   else if (ver_3_1) {
  major = 3;
  minor = 1;
+  consts-GLSLVersion = 140;
   }
   else if (ver_3_0) {
  major = 3;
  minor = 0;
+  consts-GLSLVersion = 130;
   }
   else if (ver_2_1) {
  major = 2;
  minor = 1;
+  consts-GLSLVersion = 120;
   }
   else if (ver_2_0) {
  major = 2;
  minor = 0;
+  consts-GLSLVersion = 110;
   }
   else if (ver_1_5) {
  major = 1;



This looks OK, but another approach might be to have a new function which
returns the GLSL version for a given GL version (could be encoded in a
small
table).  Then, use that function to clamp/set consts-GLSLVersion.  That
way
we can keep the nice const-ness of the compute_version() parameters.



Where do you envision the clamping be done?



How about _mesa_compute_version()?


... which is the only caller of compute_version().


Via _mesa_get_version() which also called from st_manager.c which seems 
to be unconcerned with GLSL stuff.




You just want it
split up into a separate switch statement or something?


As I said, I thought a table would work, but a switch would be fine too.

If you feel this is too much work, it's not that big of deal.  I just 
thought it would be cleaner.


-Brian

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