Closed Bug 785855 Opened 12 years ago Closed 5 years ago

WebGL angle d3d preprocessor bug - expected error is not generated on Linux/OSX

Categories

(Core :: Graphics: CanvasWebGL, defect)

14 Branch
x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: pyalot, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.8 Safari/536.11

Steps to reproduce:

Run http://codeflow.org/issues/preprocessor-problem/


Actual results:

Got a big error log:

Time to Error: 8ms
ERROR: 0:348: 'FXAA_CONSOLE__PS3_EDGE_SHARPNESS' : macro name is reserved 
ERROR: 0:376: 'FXAA_CONSOLE__PS3_EDGE_THRESHOLD' : macro name is reserved 
ERROR: 0:408: 'FXAA_QUALITY__PRESET' : macro name is reserved 
ERROR: 0:421: 'syntax error' : invalid expression 
WARNING: 0:421: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:428: 'syntax error' : invalid expression 
WARNING: 0:428: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:436: 'syntax error' : invalid expression 
WARNING: 0:436: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:445: 'syntax error' : invalid expression 
WARNING: 0:445: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:455: 'syntax error' : invalid expression 
WARNING: 0:455: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:466: 'syntax error' : invalid expression 
WARNING: 0:466: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:481: 'syntax error' : invalid expression 
WARNING: 0:481: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:488: 'syntax error' : invalid expression 
WARNING: 0:488: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:496: 'syntax error' : invalid expression 
WARNING: 0:496: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:505: 'syntax error' : invalid expression 
WARNING: 0:505: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:515: 'syntax error' : invalid expression 
WARNING: 0:515: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:526: 'syntax error' : invalid expression 
WARNING: 0:526: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:538: 'syntax error' : invalid expression 
WARNING: 0:538: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:551: 'syntax error' : invalid expression 
WARNING: 0:551: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:565: 'syntax error' : invalid expression 
WARNING: 0:565: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:580: 'syntax error' : invalid expression 
WARNING: 0:580: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:599: 'syntax error' : invalid expression 
WARNING: 0:599: 'FXAA_QUALITY__PRESET' : unexpected token after conditional expression 
ERROR: 0:1021: 'FXAA_QUALITY__P0' : undeclared identifier 
ERROR: 0:1041: 'FXAA_QUALITY__P1' : undeclared identifier 
ERROR: 0:1042: 'FXAA_QUALITY__P1' : undeclared identifier 
ERROR: 0:1044: 'FXAA_QUALITY__P1' : undeclared identifier 
ERROR: 0:1045: 'FXAA_QUALITY__P1' : undeclared identifier 
ERROR: 0:1054: 'FXAA_QUALITY__P2' : undeclared identifier 
ERROR: 0:1055: 'FXAA_QUALITY__P2' : undeclared identifier 
ERROR: 0:1057: 'FXAA_QUALITY__P2' : undeclared identifier 
ERROR: 0:1058: 'FXAA_QUALITY__P2' : undeclared identifier 
ERROR: 0:1060: 'syntax error' : invalid expression 
WARNING: 0:1060: 'FXAA_QUALITY__PS' : unexpected token after conditional expression 


Expected results:

Works on Linux/OSX
Can't reproduce the problem in Firefox (tested nightly and 14) on OS/X either. I do get that error in Chrome 23 on the same machine. GPU is a nvidia geforce gt 330m.
ERROR: 0:348: 'FXAA_CONSOLE__PS3_EDGE_SHARPNESS' : macro name is reserved 
ERROR: 0:376: 'FXAA_CONSOLE__PS3_EDGE_THRESHOLD' : macro name is reserved 
ERROR: 0:408: 'FXAA_QUALITY__PRESET' : macro name is reserved 

That's not a bug -- that's per spec.

The ESSL (v100, p12, section 3.4: Preprocessor says: 
"All macro names containing two consecutive underscores ( __ ) are reserved for future use as predefined macro names. "
It does not throw an error on Linux/OSX firefox/chrome. So clearly the spec is not validated on these platforms by the parser then.
Summary: WebGL angle d3d preprocessor bug → WebGL angle d3d preprocessor bug - expected error is not generated on Linux/OSX
Proposing this conformance test: https://github.com/KhronosGroup/WebGL/pull/18
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Florian, the link to the Khronos test is now broken. Was it moved?

I tested the original link on Linux FF latest, and got the following output:
ERROR: 0:4: 'float' : illegal type argument for default precision qualifier
ERROR: 0:5: 'float' : illegal type argument for default precision qualifier
ERROR: 0:6: 'float' : illegal type argument for default precision qualifier
WARNING: 0:348: 'FXAA_CONSOLE__PS3_EDGE_SHARPNESS' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:376: 'FXAA_CONSOLE__PS3_EDGE_THRESHOLD' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:408: 'FXAA_QUALITY__PRESET' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:437: 'FXAA_QUALITY__PS' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:438: 'FXAA_QUALITY__P0' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:439: 'FXAA_QUALITY__P1' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:440: 'FXAA_QUALITY__P2' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:441: 'FXAA_QUALITY__P3' : macro name with a double underscore is reserved - unintented behavior is possible
WARNING: 0:442: 'FXAA_QUALITY__P4' : macro name with a double underscore is reserved - unintented behavior is possible 

I'm slightly confused that these are warnings and not errors.
I've fixed the test on my site, I don't know what happened to the Khronos test suite that was checked in. Please consult Kenneth Russel and Jeff Gilbert.
Jeff, issuing a warning is not an expected behaviour here, right?
Flags: needinfo?(jgilbert)
These should be errors.
Looks like a bug in the ANGLE validator.
Flags: needinfo?(jgilbert)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.