On 09/08/2014 01:10 AM, Tapani Pälli wrote:
> From: Kalyan Kondapally <kalyan.kondapa...@intel.com>
> 
> According to GLSL-ES Spec(i.e. 1.0, 3.0), gl_Position value is undefined
> after the vertex processing stage if we don't write gl_Position. However,
> GLSL 1.10 Spec mentions that writing to gl_Position is mandatory. In case
> of GLSL-ES, it's not an error and atleast the linking should pass.
> Currently, Mesa throws an linker error in case we dont write to gl_position
> and Version is less then 140(GLSL) and 300(GLSL-ES). This patch changes
> it so that we don't report an error in case of GLSL-ES.

Wow.  We can add this to the list of ways OpenGL ES is just plain
broken.  Since there is absolutely NO WAY this shader can produce any
useful results, we should at least do the courtesy of generating a
warning.  So, keep the first if-condistion the same, but do
linker_warning instead of linker_error if prog->IsES.

> Signed-off-by: Kalyan Kondapally <kalyan.kondapa...@intel.com>
> Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83380
> ---
>  src/glsl/linker.cpp | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index 57be493..e9cf550 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -559,10 +559,10 @@ validate_vertex_shader_executable(struct 
> gl_shader_program *prog,
>      *      vertex processing has occurred. Its value is undefined if
>      *      the vertex shader executable does not write gl_Position."
>      *
> -    * GLSL ES 3.00 is similar to GLSL 1.40--failing to write to gl_Position 
> is
> -    * not an error.
> +    * All GLSL ES Versions are similar to GLSL 1.40--failing to write to
> +    * gl_Position is not an error.
>      */
> -   if (prog->Version < (prog->IsES ? 300 : 140)) {
> +   if (!prog->IsES && prog->Version < 140) {
>        find_assignment_visitor find("gl_Position");
>        find.run(shader->ir);
>        if (!find.variable_found()) {
> 

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

Reply via email to