[Mesa-dev] [PATCH 2/2] glsl: allow linking ES shaders with desktop shaders in desktop GL

Marek Olšák maraeo at gmail.com
Thu May 17 00:39:08 UTC 2018


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, May 16, 2018 at 3:04 AM, Timothy Arceri <tarceri at itsqueeze.com>
wrote:

> In GLES shader versions must match but there is nothing
> in the ARB_ES*_compatibility specs that say they must match.
>
> This fixes some compilation errors in Google Earth VR.
> ---
>  src/compiler/glsl/linker.cpp | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
> index f060c5316fa..2b7ee0ad5a6 100644
> --- a/src/compiler/glsl/linker.cpp
> +++ b/src/compiler/glsl/linker.cpp
> @@ -83,6 +83,7 @@
>  #include "builtin_functions.h"
>  #include "shader_cache.h"
>
> +#include "main/context.h"
>  #include "main/imports.h"
>  #include "main/shaderobj.h"
>  #include "main/enums.h"
> @@ -4799,7 +4800,8 @@ link_shaders(struct gl_context *ctx, struct
> gl_shader_program *prog)
>        min_version = MIN2(min_version, prog->Shaders[i]->Version);
>        max_version = MAX2(max_version, prog->Shaders[i]->Version);
>
> -      if (prog->Shaders[i]->IsES != prog->Shaders[0]->IsES) {
> +      if (!_mesa_is_desktop_gl(ctx) &&
> +          prog->Shaders[i]->IsES != prog->Shaders[0]->IsES) {
>           linker_error(prog, "all shaders must use same shading "
>                        "language version\n");
>           goto done;
> @@ -4817,7 +4819,7 @@ link_shaders(struct gl_context *ctx, struct
> gl_shader_program *prog)
>     /* In desktop GLSL, different shader versions may be linked together.
> In
>      * GLSL ES, all shader versions must be the same.
>      */
> -   if (prog->Shaders[0]->IsES && min_version != max_version) {
> +   if (!_mesa_is_desktop_gl(ctx) && min_version != max_version) {
>        linker_error(prog, "all shaders must use same shading "
>                     "language version\n");
>        goto done;
> --
> 2.17.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180516/fcb30f1d/attachment-0001.html>


More information about the mesa-dev mailing list