[Mesa-dev] [PATCH] glsl: Allow token pasting in ESSL
Ian Romanick
idr at freedesktop.org
Tue Aug 4 11:39:49 PDT 2015
On 07/22/2015 07:52 PM, Ryan Houdek wrote:
> All vendors I've tested allow token pasting in their ESSL shaders.
> At least one application expects this to be supported
> even though it is against spec.
I'm not very excited about deviating from the spec. Do you know if the
Khronos reference compiler allows this behavior for ESSL shaders? I
have submitted a spec bug report to Khronos. We've discussed this
specific issue quite a few time in the past, and, IIRC, none of the
mobile vendors wanted to change the spec... to match what their
compilers seem to actually do. I'll try again. :( I should have some
information this week.
When we have deviated from the spec in the past, it has been under the
control of a driconf option. If the option is enabled, we emit a
warning. If the option is not enabled (default) we continue to generate
the error. Before I suggest you write more code, let me talk to the
other vendors in Khronos.
> This would be the Dolphin GameCube/Wii emulator that requires this.
Have you contacted the Dolphin authors to see if they'd change their
code to follow the spec? I know they've been very receptive to such
requests in the past. degasus hangs out on #dri-devel quite a lot.
> The vendors I've tested that is known to support this is:
> ARM Mali
> Qualcomm Adreno
> IMGTec PowerVR
> Nvidia Tegra K1/X1
>
> The vendors that I don't have access to testing:
> Intel Android
> Vivante
> ---
> src/glsl/glcpp/glcpp-lex.l | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
> index fa9aa50..3e2ad23 100644
> --- a/src/glsl/glcpp/glcpp-lex.l
> +++ b/src/glsl/glcpp/glcpp-lex.l
> @@ -494,8 +494,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
>
> "##" {
> if (! parser->skipping) {
> - if (parser->is_gles)
> - glcpp_error(yylloc, yyextra, "Token pasting (##) is illegal in GLES");
> RETURN_TOKEN (PASTE);
> }
> }
>
More information about the mesa-dev
mailing list