src/compiler


Log

Author Commit Date CI Message
alokp@chromium.org 98d04ec8 2012-05-21T22:47:20 Implemented #define and #undef directives. Review URL: https://codereview.appspot.com/6215072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1092 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 0eb51ac3 2012-05-21T21:43:57 Deleted old unused files. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1091 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 964b7194 2012-05-17T21:12:27 Fixed compile error in lexer_glue.cpp. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1089 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 99b5c0c9 2012-05-17T20:44:52 Fixed compile errors and warnings on linux. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1088 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 2c958eef 2012-05-17T20:35:42 Moved error-handling to a separate class - Diagnostics. We were earlier returning errors as tokens which did not work very well when error occured while parsing a preprocessor directive. Now all returned tokens are valid. Errors are reported via an abstract Diagnostics interface. Updated unit-tests with the new scheme. Review URL: https://codereview.appspot.com/6203089 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1087 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 04d7d22b 2012-05-16T19:24:07 Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -> MacroExpander -> DirectiveHandler -> MacroExpander -> DefinedFilter -> Tokenizer. This chain dynamically changes depending on the current context. Also added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work. Review URL: https://codereview.appspot.com/6203060 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ac5d7f39 2012-05-09T15:37:04 Memory associated with allTokens is never freed due to early return in "case -1" in CPPpragma(yystypepp*) in cpp.c ISSUE=328 Signed-off-by: Daniel Koch Author: David Kilzer git-svn-id: https://angleproject.googlecode.com/svn/trunk@1072 736b8ea6-26fd-11df-bfd4-992fa37f6226
jacob.benoit.1@gmail.com b45306b7 2012-05-07T02:12:34 Ensure that strings produced by getVariableInfo are always null-terminated Issue 326 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1070 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 30a487c7 2012-05-02T17:30:46 Minor refactoring for Input class. Chnaged a raw array to std::vector. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1068 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 98eec912 2012-05-01T10:04:08 Using yy_scan_string, which flushes the old buffer does not work. GLSL requires that each input string is concatenated, but yy_scan_string treats each string individually. Added a custom YY_INPUT which maintains the continuity between each string. Review URL: https://codereview.appspot.com/6130045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1066 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 8b47903c 2012-04-29T19:50:09 Added missing files from the renaming of UnfoldSelect to UnfoldShortCircuit. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1064 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com f8f8f362 2012-04-28T00:35:00 Renamed UnfoldSelect to UnfoldShortCircuit. TRAC #11866 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1062 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 8915eba8 2012-04-28T00:34:44 Implemented short-circuiting for logical OR and AND operators. TRAC #11866 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1061 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 44fffeef 2012-04-28T00:34:20 Ensure that non-sequence single-statement conditional blocks and loop bodies get unfolding of short-circuiting operators. TRAC #11866 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1060 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org a11a6ab8 2012-04-27T10:00:38 Changes to handle comments properly and associated tests. Review URL: https://codereview.appspot.com/6111059 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1059 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 128d9199 2012-04-26T22:39:21 Added tests for token location. Review URL: https://codereview.appspot.com/6118062 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1058 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 79fb1019 2012-04-26T21:07:39 Ugly hack to fix compile error on windows. VC++ does not support C99 and hence snprintf. BUG=308 Review URL: https://codereview.appspot.com/6120055 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1057 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org ef1eaa04 2012-04-26T18:02:42 Changed Token::Location::string to Token::Location::file to keep it consistent with __FILE__ inbult macro. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1055 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 85f2b2c5 2012-04-25T06:06:33 Added rules for ignoring comments. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1053 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org ddb6e8e3 2012-04-25T00:48:13 Stop using unsafe sprintf method. ISSUE=308 Signed-off-by: Kenneth Russell Author: David Kilzer git-svn-id: https://angleproject.googlecode.com/svn/trunk@1052 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 28182485 2012-04-24T23:07:34 Drastically simplified Input class. Now most of the heavy lifting is done by in-built yy_scan_string and yy_scan_bytes. Comment handling will be done by the lexer. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1051 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d08bb0cc 2012-04-23T19:27:13 The default implementation in flex only handles LF characters. GLSL supports all three newline characters - LF, CR, and CR+LF. Use a custom newline handler. Review URL: https://codereview.appspot.com/6105045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1049 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 036a7356 2012-04-20T22:34:53 Do not return newline and number sign. They are for internal purposes only. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1048 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 78a35198 2012-04-19T17:16:26 Added a catch-rule for invalid numbers. Note that we do not need such a rule for identifiers because they will always be either terminated by a space, a punctuator, or an invalid character. Space and punctuator are both valid cases. The invalid character will be caught by another rule specifically for invalid characters. I will cover this case when I add tests for valid character set. Review URL: https://codereview.appspot.com/5978048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1047 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com aeba7b89 2012-04-17T23:25:10 Build fix for chromeos. BUG= TEST=chromeos bots compile when we roll ANGLE TBR=alokp git-svn-id: https://angleproject.googlecode.com/svn/trunk@1046 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 571fe348 2012-04-17T17:40:29 Don't append '_' to the end of prefix in long name mapping if the original name starts with '_' Otherwise we will have '__' which is illegal. Review URL: https://codereview.appspot.com/5978058 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1044 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com e63436b9 2012-04-13T22:51:42 Handle hex int constant in preprocessor The patch is provided by jdashg and committed by zmo. (see angle issue 178) ANGLEBUG=178 TEST=shader-with-hex-int-constant-macro.html TBR=zmo Review URL: https://codereview.appspot.com/6037044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1041 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 320c5d7f 2012-04-13T21:32:35 Minor formatting change in pp.l. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1039 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 763d0fb9 2012-04-13T21:27:06 Fixed compile error in lexer_glue.cpp. TBR=zmo@chromium.org Review URL: https://codereview.appspot.com/6035044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1038 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d089d118 2012-04-13T17:05:12 Removed unnecessary includion of Token.h in various files. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1037 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 5e75f344 2012-04-12T23:47:10 Mac/Linux build fix. BUG= TEST=compile fine TBR=alokp Review URL: https://codereview.appspot.com/6013048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1035 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 57442b11 2012-04-12T23:09:59 Update emulated functions. It turns out there are bugs in our tests, so kbr fixed them a while ago. Now we had another look at the tests, and it turned out some functions we don't have emulate, and some functions we need to also emulate in fragment shaders. BUG= TEST= R=kbr Review URL: https://codereview.appspot.com/6011056 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1034 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 14e966b2 2012-04-12T20:57:53 Modified the interface of Preprocessor. Added it to the build file. Lexer changes to record leading space. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1033 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 40da4c53 2012-04-12T05:23:19 Added HAS_LEADING_SPACE flag to pp::Token. Split the new preprocessor into a separate target. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1032 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com beadd5d2 2012-04-12T02:35:31 Update reserved keywords. TRAC #20514 ISSUE=317 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1031 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com b7ad052f 2012-04-11T20:55:01 Fix a few compilation warning/errors on Linux/Mac. Review URL: https://codereview.appspot.com/6009045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1030 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 2e793f0f 2012-04-11T19:41:35 Decorate (and undecorate) struct fields too (when not built-in). Trac #20510 Issue=316,317 Authored-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1027 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org bac1aa1c 2012-04-05T17:06:55 Removed the unnecessary usage of InputSrc::getch and InputSrc::ungetch when handling pragma. These functions are not supported by the new lexer. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1020 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 408c45e7 2012-04-05T15:54:43 Added an alternate lexer for the existing preprocessor. It is still behind a compile-time flag. Review URL: https://codereview.appspot.com/5976072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1019 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 978702d8 2012-04-04T15:05:58 Return a sequence when optimizing constant conditions so that brackets will be added to the HLSL output. TRAC #20052 ISSUE=252 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1016 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org ff6a0a5c 2012-04-03T21:03:02 Fixed line number reporting. Each newline was being counted twice. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1015 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 3f990c4a 2012-04-03T19:50:35 Added lexer rules for operators. Review URL: https://codereview.appspot.com/5966072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1014 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 4b2a522a 2012-04-03T17:19:42 Punted on bison parser. It was turning out to be more complicated than necessary. Manual parsing combined with a flex lexer is easier. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1012 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 01fd431c 2012-03-30T21:33:30 More prep work for macro expansion. Off-loaded lexing from Context class to a new Lexer class. Review URL: https://codereview.appspot.com/5059048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1011 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 43affc5e 2012-03-28T14:55:39 Selection nodes are temporaries. Issue=156 TRAC #16816 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1010 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ed2180dc 2012-03-26T17:08:54 Fix comma operator precedence. TRAC #20059 ISSUE=290 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1009 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 73536984 2012-03-21T20:45:49 Fixed missing semicolon for do-while. TRAC #20055 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1007 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 43eecdc1 2012-03-20T20:10:33 Avoid adding duplicate struct constructors. TRAC #20057 ISSUE=285 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1006 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 5dd6d09f 2012-03-20T20:10:28 The function parameters and function body belong to the same scope. TRAC #20056 ISSUE=256 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1005 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ab8ca191 2012-03-20T20:10:24 Define constructors for structures defined in argument lists. TRAC #20056 ISSUE=256 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1004 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com eec8efc3 2012-03-09T21:57:49 Detect when declaring previously undeclared variables as invariant, and avoid using an uninitialized type. TRAC #20042 ISSUE=241 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1002 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 83dc5a78 2012-03-09T21:57:07 Start a new scope for conditional statements even when there are no curly brackets. Also fix the DO WHILE grammar. TRAC #20052 ISSUE=252,255 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1001 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 05bc204e 2012-03-09T21:56:58 Regenerate the parser using Bison 2.4.2. TRAC #20052 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@1000 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 2a073de7 2012-03-09T21:56:43 Limit HLSL loop scope to match that of GLSL. TRAC #19197 ISSUE=260 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@999 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 35342dc4 2012-02-28T02:01:22 Provide multi-dimensional atan intrinsics. TRAC #19989 Issue=302 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@996 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9c3a393d 2012-01-30T20:03:32 Enabled MSVC warning 4389 : signed/unsigned mismatch. I also fixed Config.cpp so it compiles without the warning. This is because this is now a warning as error in Chromium. Review URL: https://codereview.appspot.com/5600047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@980 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 26f6e5d8 2012-01-27T22:57:16 Added missing printf format type. %z was actually just a modifier. Review URL: https://codereview.appspot.com/5569082 git-svn-id: https://angleproject.googlecode.com/svn/trunk@979 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org e4319635 2012-01-27T22:13:17 Fix printf format specifier in PoolAlloc.cpp. %Iu is used for size_t printf arguments in MSVC. The GCC equivalent is %z. MSVC does not support %z though. Review URL: https://codereview.appspot.com/5578050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@977 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org c742fca5 2012-01-27T02:01:32 Fix warning in PoolAlloc.cpp. Use "I" instead of "l" as printf type prefix for size_t. Review URL: https://codereview.appspot.com/5572071 git-svn-id: https://angleproject.googlecode.com/svn/trunk@966 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org e057c5dd 2012-01-26T19:18:24 Fixed more warnings. Clang warns about missing case in enum glslang_lex.cpp so I disabled that one as well. MSVC, as Chromium is built at least, warns about things in its own STL headers in SymbolTable.cpp so disabled the warning for that file. esTransform.c had a struct that the compiler could not determine was initialized so I explicitly initialized it. Review URL: https://codereview.appspot.com/5577048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@965 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org a1d8059d 2012-01-25T21:52:10 Increase MSVC warning level to 4. There are some exceptions, a subset of the exceptions used by Chromium. They didn't seem to be useful warnings. In code which we don't change much, like the preprocessor, I just suppressed the warnings in the specific files rather than changing the code. There should be no functional changes in this patch. Review URL: https://codereview.appspot.com/5570066 git-svn-id: https://angleproject.googlecode.com/svn/trunk@964 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 536888b8 2012-01-25T02:10:25 Explicitly disable warnings for auto-generated files. I think this is better than modifying the auto-generated files. Review URL: https://codereview.appspot.com/5569058 git-svn-id: https://angleproject.googlecode.com/svn/trunk@963 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org f3c92311 2012-01-25T00:51:19 Fix remaining compiler warnings in translator_common. One MSVC warning and one GCC warning. I also added a variable to build_angle.gyp that will enforce various rules not normally applied to third party software when built as part of chromium. Review URL: https://codereview.appspot.com/5570061 git-svn-id: https://angleproject.googlecode.com/svn/trunk@962 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9dc0a247 2012-01-24T21:45:37 Enable warnings as errors. I didn't do it for translator_common though because it contains automatically generated code. This is improve the signal to noise ratio in the chromium build logs. Review URL: https://codereview.appspot.com/5572055 git-svn-id: https://angleproject.googlecode.com/svn/trunk@960 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 7e84fd68 2012-01-24T21:44:39 Fix MSVC warning in DetectRecursion.cpp. In preparation for turning on warnings as errors. Review URL: https://codereview.appspot.com/5564053 git-svn-id: https://angleproject.googlecode.com/svn/trunk@959 736b8ea6-26fd-11df-bfd4-992fa37f6226
jacob.benoit.1@gmail.com 77b95e1c 2012-01-23T17:09:06 Detect GNU Hurd and Debian kFreeBSD as ANGLE_OS_POSIX See https://bugzilla.mozilla.org/show_bug.cgi?id=711353 Patch by Mike Hommey git-svn-id: https://angleproject.googlecode.com/svn/trunk@954 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com b9f64aae 2012-01-20T00:35:15 Use a global ref-counted singleton for long name map. This makes sure the same varying/uniform variables maps to the unique name in vertex/fragment shader. BUG= TEST=webgl conformance tests Review URL: https://codereview.appspot.com/5556065 git-svn-id: https://angleproject.googlecode.com/svn/trunk@950 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 9996b8e6 2012-01-19T01:43:55 Rollback r942. MapLongVariableNames inherits from TIntermTraverser, and TIntermTraverser uses ANGLE's memory allocator, thus the memory is released per compilation. Our design is for MapLongVariableNames to be a singleton across all compilations, thus, this is not working. BUG= TEST= TBR=kbr Review URL: https://codereview.appspot.com/5556053 git-svn-id: https://angleproject.googlecode.com/svn/trunk@949 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 6575602e 2012-01-17T21:45:38 Finished off the GLSL compiler's support for parsing shaders using OES_EGL_image_external. The GLSL to HLSL translator work is not done yet so the extension is disabled in Shader.cpp. Review URL: https://codereview.appspot.com/5530081 git-svn-id: https://angleproject.googlecode.com/svn/trunk@946 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 4625d27b 2012-01-13T00:29:21 Long name mapping needs to be consistent between vertex/fragment shaders. For example: varying variables, uniforms. This CL makes MapLongVariableNames a ref-counted singleton and therefore, the map is shared by all shaders. Also, function/variable names changes from Varying to Global because uniforms also need to be consistent, not just varying variables. ANGLEBUG=279 TEST=webgl conformance tests, especially invalid-passed-params.html and glsl-long-variable-names.html Review URL: http://codereview.appspot.com/5539046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@942 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 89c9813b 2012-01-06T02:17:03 Fix a bug in long variable name mapping. Originally we only match varying variables in vertex/fragment shaders. However, we should also match uniform names. For example, if a uniform variable name is used in both vertex and fragment shader, and after mapping the names are different, then the name mapping table is no longer 1:1. BUG=106638 (crbug) TEST=http://seanseefried.com/chrome-bug/simple-broken.html shows a magenta square Review URL: http://codereview.appspot.com/5520051 git-svn-id: https://angleproject.googlecode.com/svn/trunk@939 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org 9a4d112c 2012-01-05T20:06:28 Fix off-by-one error in enforcement of WebGL's maximum struct nesting. BUG=http://code.google.com/p/angleproject/issues/detail?id=275 TEST=WebGL conformance suite TBR=nicolas Review URL: http://codereview.appspot.com/5520049 git-svn-id: https://angleproject.googlecode.com/svn/trunk@938 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d9a54f98 2011-12-22T18:32:53 Fixed gl_FragCoord.y calculation TRAC #19349 ANGLEBUG=272 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@925 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 93563fcf 2011-12-13T18:18:04 (Landing this on behalf of groby@chromium.org. Review the CL at http://codereview.appspot.com/5482053/) Fix issue-242 (failure to compile any shader using cos() with SH_EMULATE_BUILT_IN_FUNCTIONS) ANGLEBUG=242 git-svn-id: https://angleproject.googlecode.com/svn/trunk@910 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 67d72526 2011-11-29T17:23:51 Checks parameters of matrices for under-fullness in shader constructor check. TRAC #18906 Issue=218 Signed-off-by: Nicolas Capens Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@898 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 4229f59f 2011-11-24T22:34:04 Fix HLSL translation for mod(vec2,vec2) ANGLEBUG=258 Signed-off-by: Daniel Koch Signed-off-by: Nicolas Capens Author: Sam Hocevar git-svn-id: https://angleproject.googlecode.com/svn/trunk@890 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org 205fef33 2011-11-22T20:50:02 Added support for GL_ARB_texture_rectangle to shader validator. Parser was regenerated with the flex/bison shipped with Ubuntu 10.04. BUG=251 TEST=tested with new Core Animation plugin rendering path on Mac OS X Review URL: http://codereview.appspot.com/5432044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@888 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 1625d7d4 2011-11-14T21:15:39 Fixed the incorrect TQualifier on gl_FragData. Signed-off-by: Daniel Koch Author: Mark Callow git-svn-id: https://angleproject.googlecode.com/svn/trunk@879 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org 476541f6 2011-10-27T21:14:51 Implemented new restrictions on nesting of structs in WebGL shaders. Added previously missing check for embedded structs; even though these attempts would be caught by an underlying GLSL compiler, the shader validator should not let them through. BUG=http://code.google.com/p/angleproject/issues/detail?id=235 TEST=WebGL conformance tests Review URL: http://codereview.appspot.com/5327046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@809 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org 22152117 2011-10-26T01:18:28 Limit copied uniform and vertex attribute names to the implicit size of the buffers passed in. Increase the size of the buffer the client will allocate for mapped names to be equal to the maximum token length. BUG=http://code.google.com/p/angleproject/issues/detail?id=234 TEST=WebGL conformance test to be checked in soon Review URL: http://codereview.appspot.com/5306063 git-svn-id: https://angleproject.googlecode.com/svn/trunk@804 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a033e02d 2011-10-19T13:29:32 VC11 fails to build angle because oppl_allocator::operator= does not exist ANGLEBUG=229 Signed-off-by: Nicolas Capens Author: Ehsan Akhgari git-svn-id: https://angleproject.googlecode.com/svn/trunk@798 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a9ae4aa9 2011-10-19T13:29:27 Fix for bogus "Bad aggregation op" error when dumping intermediate tree Bug=228 Author: Mark Callow git-svn-id: https://angleproject.googlecode.com/svn/trunk@797 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ccb38417 2011-10-04T18:43:40 Support multiple nested ternary operators per statement TRAC #18382 ANGLEBUG=203,208 Signed-off-by: Daniel Koch Author: Nicolas Capens - by incrementing the temporary index, adding 1 for every nesting level, and rewinding it after each traverse. Also fixed multiple ternary operator unfolding for loops. git-svn-id: https://angleproject.googlecode.com/svn/trunk@784 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com c0d73ed8 2011-10-04T18:43:30 Use a different name for ternary operator unfolding temporaries, to avoid clashes with T x = x handling. TRAC #18382 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@783 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 46974d29 2011-09-27T21:26:19 Fix memory corruption in ANGLE shader translator. The bug is that within each compilation cycle, all the memory allocated through T* types are freed to be reused. So if certain information is meant to outlive the cycle, it should use the std type instead of the T* type: 1) emulated function vector 2) mapped long names map BUG=none TEST=webgl conformance test conformance/glsl/glsl-feature-mod-gentype.html does not crash in Win Debug. Review URL: http://codereview.appspot.com/5137047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@773 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 55d48c74 2011-09-26T18:24:36 Create structure definitions for structures in a return statement. TRAC #18319 ANGLEBUG=185 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@766 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 7fb81e83 2011-09-23T18:20:46 Fix single statement loops. TRAC #18301 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@765 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 51db7fb1 2011-09-20T16:11:06 Optimize string comparisons by avoiding the creation of temporary substrings. TRAC #16567 Bug=136 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@761 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com c72c6416 2011-09-20T16:09:17 Decorate arrays uniforms with "ar_" to identify arrays of size 1. TRAC #16567 Bug=136 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@760 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com a3b4ab4c 2011-09-16T00:53:26 Further work on the function emulation. This is to work around driver bugs. We added more functions, and removed some unnecessary ones. Remove the function group because we have flags for each function now. Use more macros instead of functions. Don't emit global precision because that will affect all later code. ANGLEBUG=196 TEST=build and test on Mac ATI/NVIDIA, fixes the failing webgl glsl conformance tests. Review URL: http://codereview.appspot.com/5011053 git-svn-id: https://angleproject.googlecode.com/svn/trunk@754 736b8ea6-26fd-11df-bfd4-992fa37f6226
vangelis@google.com 74a46a5c 2011-09-15T18:47:53 Recognize ANDROID as a POSIX OS BUG=207 Review URL: http://codereview.appspot.com/5016050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@753 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 16efbbae 2011-09-13T04:10:41 Complete implementation for handling #define directive. Review URL: http://codereview.appspot.com/4963062 git-svn-id: https://angleproject.googlecode.com/svn/trunk@752 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com f420c424 2011-09-12T18:27:59 Add/remove more functions to use shims. Remove normalize and add cos instead to avoid a crash in Mac with ATI cards (angle bug 193, 202). Also add atan and mod as it's also buggy on Mac/Win with NVIDIA cards. Also, trying to minimize emulated functions by adding masks for fragment/vertex shaders. ANGLEBUG=196 Review URL: http://codereview.appspot.com/4992047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@748 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com f5450910 2011-09-09T01:37:19 Fix extension behavior in shader validation. If an extension is not specified, it is disabled by default, thus a shader should fail compiling if features from that extension are used. ANGLEBUG=204 TEST=webgl conformance/extensions/oes-standard-derivatives.html Review URL: http://codereview.appspot.com/4974071 git-svn-id: https://angleproject.googlecode.com/svn/trunk@745 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 3a01d1bc 2011-08-30T05:10:53 Preparation for macro expansion. Review URL: http://codereview.appspot.com/4919045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@741 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com e4eb9911 2011-08-29T21:13:12 Fix a bug introduced in r738. ANGLEBUG=201 TEST=chrome gpu bots green, no complaint from Firefox/Benoit Review URL: http://codereview.appspot.com/4956050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@740 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 32e97315 2011-08-24T01:03:11 Emulate certain buil-in functions to work around driver bugs. This is implemented by adding a new compile option SH_EMULATE_BUILT_IN_FUNCTIONS. The emulated functions are names as webgl_originalName_emu so there will never be naming conflicts. At the moment only three functions are emulated: normalize, abs, sign. Also, the compile option will emulate all three. However, the mechanism to emulate only a selected subset is also imeplemented. It can be turned on easily. ANGLEBUG=196 TEST=with this option, the failed test with abs.frag passes. Review URL: http://codereview.appspot.com/4916043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@738 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org b81c401d 2011-08-21T06:53:11 Modified Token class to store various types of data. Added debug code to dump token to an output stream. Review URL: http://codereview.appspot.com/4920041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@737 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 71c14ff8 2011-08-17T20:24:24 Fix the standalone translator_common.vcproj BUG=none TEST=build fine with that .vcproj TBR=daniel@transgaming.com Review URL: http://codereview.appspot.com/4902049 git-svn-id: https://angleproject.googlecode.com/svn/trunk@735 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 0c6bb7a6 2011-08-17T19:39:58 Add an compile option to unroll for-loops with integer indices. ANGLEBUG=193 TEST=with this option, for-loops with integer indices will be unrolled. Review URL: http://codereview.appspot.com/4899047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@734 736b8ea6-26fd-11df-bfd4-992fa37f6226