src/compiler


Log

Author Commit Date CI Message
Jamie Madill 41a49272 2014-03-18T16:10:13 Fixed error message for exceeding maximum struct nesting. It got broken in r2423. We were referring to field-name as struct-name. This patch fixes the regression and also improves the error message by adding the field-name. BUG=angle:459 R=kbr@chromium.org Review URL: https://codereview.appspot.com/12891043 Change-Id: I9ac9a8dafcad1857f7d39e6d494e457d1fc50f70 Reviewed-on: https://chromium-review.googlesource.com/190530 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens bd0ea9c7 2014-03-04T13:53:29 Don't attempt to perform constant folding with an uninitialized constant variable. BUG=348205 Change-Id: I9be17832b1a35d2995725ab147977992c2732274 Reviewed-on: https://chromium-review.googlesource.com/188711 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/189471
Zhenyao Mo 3cdfcce8 2014-03-07T13:00:08 Remove SH_MAP_LONG_VARIABLE_NAMES We use hashing to map all variables/strcuture field names, etc, so we no longer need this option. Checked with Firefox and WebKit, they no longer use this option either. Time to remove it. Change-Id: Ie3e79b91a05258b04af419a9c42b2fd1b00e67c4 Reviewed-on: https://chromium-review.googlesource.com/189236 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/189568
Zhenyao Mo 550c600b 2014-02-26T15:40:48 Improvement on loop unrolling with loops indexing sampler arrays 1) Before this workaround is hardwired on mac, now we move it behind a compil 2) Fix the issue where "break" inside the loop isn't handled while unrolled. BUG=338474 TEST=webgl conformance test sampler-array-using-loop-index.html Change-Id: I4996a42c2dea39a8a5af772c256f8e3cb383f59a Reviewed-on: https://chromium-review.googlesource.com/188079 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Conflicts: include/GLSLANG/ShaderLang.h src/compiler/translator/ValidateLimitations.cpp Change-Id: I546197bd7df1634ebccdd380be14c3250cd56151 Reviewed-on: https://chromium-review.googlesource.com/189061 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Nicolas Capens 0027fa9f 2014-02-20T14:26:42 Emulate integer cube texture sampling as an array of six 2D textures. BUG=angle:525 Change-Id: I3c3ec2cecebf9e745f0c02a132433e3076a6fdea Reviewed-on: https://chromium-review.googlesource.com/187534 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 477bc781 2014-02-26T09:54:17 Fix crash on multiple calls to ShInitialize(). The previous fix would allow the calling app to trigger an ASSERT if it did not first call ShFinalize. Chrome would do this in some cases, causing a test failure. BUG=344043 Change-Id: I33fa0c4668dac8750ca949febc7f02cc7d3d95e7 Reviewed-on: https://chromium-review.googlesource.com/187849 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 1d1c1152 2014-02-26T11:00:28 Prevent overflow in the variable packer by sanity checking each variable. BUG=346489 Change-Id: I28f5751580729a4d4d77fa6fdee0b4a6628a05de Reviewed-on: https://chromium-review.googlesource.com/188030 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill b4d192cd 2014-02-26T09:54:10 Re-initialize shader translator properly after one shutdown. Because of a local static, we could get stuck and never re-initialize the translator after calling ShFinalize. BUG=344043 Change-Id: Ib4d18da886eac28f3e1bc959a7eadf5b34d9410f Reviewed-on: https://chromium-review.googlesource.com/186975 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187848
Nicolas Capens 691bd3e9 2014-02-19T17:38:45 texture(sampler2DArrayShadow, ...) should not take a bias parameter. BUG=angle:564 Change-Id: I3b86e8d52ebae0e1efd0805671bd58580a712b23 Reviewed-on: https://chromium-review.googlesource.com/187082 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens f7378e38 2014-02-19T17:29:32 Implement textureProjGrad and textureProjGradOffset. BUG=angle:564 Change-Id: Ice6a3715b0fda13324b3162940de875c932627c9 Reviewed-on: https://chromium-review.googlesource.com/186992 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens bf7db103 2014-02-19T17:20:28 Implement textureGradOffset. BUG=angle:564 Change-Id: Iad0e452f53469208d55755e14a350b5d2ca83e9d Reviewed-on: https://chromium-review.googlesource.com/186987 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens d11d549f 2014-02-19T17:06:10 Implement textureGrad. BUG=angle:564 Change-Id: I95dcd95a274f6d560250c197be0d6e64a5b23516 Reviewed-on: https://chromium-review.googlesource.com/187081 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens fc01454b 2014-02-18T14:47:13 Implement texelFetch and texelFetchOffset. BUG=angle:564 Change-Id: I7ad3484061f5d6912d7842bdadc6297de3e82ef8 Reviewed-on: https://chromium-review.googlesource.com/186990 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 2adc256a 2014-02-14T23:50:59 Implement textureProjLod and textureProjLodOffset. BUG=angle:564 Change-Id: I547c69908d0aa1809f844a50230bc019e6dd5893 Reviewed-on: https://chromium-review.googlesource.com/186685 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens df86c6b9 2014-02-14T20:09:17 Implement textureProjOffset and textureLodOffset. BUG=angle:564 Change-Id: I647abed0609afd178d2e9522f139d25dd3c7fda4 Reviewed-on: https://chromium-review.googlesource.com/186684 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 5508f39d 2014-02-20T13:31:36 Fix breaking the build with missing GetGlobalMaxTokenSize. Because the preprocessor is used independently from the compiler, we need a way to track max token size when we don't have access to the parse context with the current spec. BUG=angle:550 Change-Id: Idf5035ec2c001ee75f264151ab3c4e92f3cd44d7 Reviewed-on: https://chromium-review.googlesource.com/187140 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 4fd5e4a3 2014-02-14T18:17:15 Use generic sampler types to compact symbol table initialization. BUG=angle:564 Change-Id: Idbca76a4c8360d34652b571227fbb068d8d017c4 Reviewed-on: https://chromium-review.googlesource.com/186683 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 759b994b 2014-02-14T17:57:14 Define generic sampler types. BUG=angle:564 Change-Id: I627f55152000371e73f3e5b4ba6938119fab0223 Reviewed-on: https://chromium-review.googlesource.com/186682 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Nicolas Capens c9508842 2014-02-14T17:48:50 Simplify the creation of global types. BUG=angle:564 Change-Id: If611947f7e8ceb603001165c3c1d61d7686f1d30 Reviewed-on: https://chromium-review.googlesource.com/186681 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 88f6e946 2014-02-19T10:27:53 Proper support for token max size in WebGL+ES3. WebGL specifies a maximum token size of 256 characters, while ES3 specifies 1024 characters. We can determine the proper max size to support from the spec. BUG=angle:550 Change-Id: I6aeabe8af3b6184a27b456248ce2f84f361b76e4 Reviewed-on: https://chromium-review.googlesource.com/186973 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c9f140d8 2014-02-18T15:27:21 Add preprocess bison files to the gyp files. We had accidentally left out the y and l files from our generation scripts, causing us to miss several instances of updated enum names. BUG=angle:550 Change-Id: I8790742fbaab5435e4c0db4f61c3e8194a231550 Reviewed-on: https://chromium-review.googlesource.com/186972 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5c55caf3 2014-02-18T15:27:18 Fix bugged tokens marked as reserved/free in ES2. We had accidentally marked 'smoooth', 'centroid' and 'case' as reserved in ES2, when they are available as identifiers. Additionally 'sampler2DShadow' was marked as free, instead of reserved. BUG=angle:550 Change-Id: I33ec1b790ad5b4d9a6f4d2ea2e91cec1ca8e7320 Reviewed-on: https://chromium-review.googlesource.com/186970 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Zhenyao Mo 4a667fe9 2014-02-11T12:35:01 Add an option to initialize varyings without static use in vertex shaders ANGLEBUG=554 TEST=webgl conformance test on mac: shaders-with-varyings.html r=kbr@chromium.org,nicolascapens@chromium.org cc=alokp@chromium.org,shannonwoods@chromium.org Change-Id: I2e692d43fb15f1cf3ade3e398020d1fedb2b32f0 Reviewed-on: https://chromium-review.googlesource.com/185922 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Conflicts: src/common/version.h src/compiler/translator/Compiler.cpp Change-Id: If7db13ef345bd6199d4ea0d7786f0de20885f2f3 Reviewed-on: https://chromium-review.googlesource.com/186144 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Geoff Lang c6856732 2014-02-11T09:38:55 Fix wrong enum type being compared. Change-Id: I020bbf8179c08574f5fc0a207db03d7456eeeba1 Reviewed-on: https://chromium-review.googlesource.com/185860 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens 7d649a00 2014-02-07T11:24:32 Fix initializing the MaxExpressionComplexity and MaxCallStackDepth compiler limits. BUG=339860 Change-Id: I64600db4bef62236c6acd8728902471df06a8f0a Reviewed-on: https://chromium-review.googlesource.com/185380 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill e53c98ba 2014-02-03T11:57:13 Add work-around for D3D9 shader compiler bug. With certain selection statements with a vertex input in the condition and side-effects in the else-block, we'd run in to a D3D9 compiler bug which would cause incorrect results. We can work around this bug in D3D9 by selectively rewriting these statements to use an 'else if' clause instead of 'else'. BUG=322794 Change-Id: I93c96fb201ff4959c00d9a36321faac7e0343278 Reviewed-on: https://chromium-review.googlesource.com/184681 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4b8c3eba 2014-01-14T16:09:43 Fix build on Visual Studio 2013. A breaking change in VS2013 necessitates we include <algorithm> to use std::min/max. BUG=angle:547 Change-Id: Ia1b21e61d22148ab6d268b34dbfe9a707ca3e59d Reviewed-on: https://chromium-review.googlesource.com/182512 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Brendan Long eaa84061 2013-12-08T18:26:50 Remove unnecessary int cast in ParseContext. BUG=angle:536 Change-Id: I72287f5ce9736cd48fc241022e09446db717cf92 Reviewed-on: https://chromium-review.googlesource.com/181770 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens b1f45b70 2013-12-19T17:37:19 Create HLSL texture offset functions. BUG=angle:541 Change-Id: I63dd47c40d693724aa6bed93e9967e3b1f8535bd Reviewed-on: https://chromium-review.googlesource.com/181521 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods f831e3dd 2014-01-06T12:06:46 Add NetBSD and DragonFly to posix-compliant OS list BUG=angle:428 Change-Id: I282a6bf138b4e2a2c17baf428cbe1e636f43bdd6 Reviewed-on: https://chromium-review.googlesource.com/181640 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/181670 Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 1fbc2873 2014-01-03T14:12:09 Add textureOffset intrinsics to the symbol table. BUG=angle:541 Change-Id: Ied96edd073017a507369319a781b8ed23f60790b Reviewed-on: https://chromium-review.googlesource.com/181520 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 44cc79f6 2014-01-03T10:57:22 Fix compiler crash. Create a fake variable for function identifiers used as a variable identifier to allow continuing compilation after reporting the error. BUG=chromium:330222 Change-Id: I96c330694e3503fe2df66621375d2bf76115e325 Reviewed-on: https://chromium-review.googlesource.com/181491 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Nicolas Capens f9ea3e17 2014-01-03T10:21:58 Regenerate the parser using Bison 2.7.12. The next patch requires a parser grammar change, but Cygwin's Bison version got updated so this separates the changes caused by that update from the ones for the actual bug fix. Change-Id: I6a596e02198725c7dbc6a1a356fdbe388ee512d7 Reviewed-on: https://chromium-review.googlesource.com/181490 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ee42308e 2014-01-02T14:04:09 Update guards in ShaderVariable.h. We neglected to update the text of the guards when we renamed the file from Uniform.h to ShaderVariable.h. BUG=angle:533 Change-Id: I59969113536b69a418cf233ef0d7dd797e666ea9 Reviewed-on: https://chromium-review.googlesource.com/180978 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 79bb0d9e 2013-12-09T16:20:28 Fix initializer type bug when using list declarations. We were using the first type as the type for each declaration, which could cause erros for arrays, eg "float one[4], two;" BUG=angle:431 TEST=WebGL CTS 1.0.2 Change-Id: I104d6701cc019ae3b3831a2d568ffe2b656b45a2 Reviewed-on: https://chromium-review.googlesource.com/179351 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill a738f085 2013-11-01T17:45:04 Fix build on QNX. InfoSink.h needs stdlib.h for abs(int) and free() in the global namespace. ExpressionParser needs malloc.h, because bison needs malloc and free in the global namespace, but "#include <cassert>" will put it only in the std:: namespace on QNX. BUG=500 R=geofflang@chromium.org, jmadill@chromium.org, shannonwoods@chromium.org, zmo@chromium.org Review URL: https://codereview.appspot.com/19330044 Change-Id: Ifa30a8ba5eced1156123416d4a24b490620721af Reviewed-on: https://chromium-review.googlesource.com/178993 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill d7f2135f 2013-10-30T17:53:15 Fix build on QNX. InfoSink.h needs stdlib.h for abs(int) and free() in the global namespace. ExpressionParser needs malloc.h, because bison needs malloc and free in the global namespace, but "#include <cassert>" will put it only in the std:: namespace on QNX. BUG=500 R=geofflang@chromium.org, shannonwoods@chromium.org Review URL: https://codereview.appspot.com/19330044 Conflicts: src/compiler/translator/InfoSink.h Change-Id: Ie480d5c293d099f21dafc8c1e7997c0b4cda7207 Reviewed-on: https://chromium-review.googlesource.com/178998 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Zhenyao Mo 7cab38b5 2013-10-15T12:59:30 Add an option to unfold short circuiting in AST. We replace "a || b" with "a ? true : b", "a && b" with "a ? b : false". This is to work around short circuiting bug in Mac drivers. ANGLEBUG=482 TEST=webgl conformance tests R=alokp@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/14529048 Conflicts: src/build_angle.gypi src/compiler/translator/Compiler.cpp Change-Id: Ic2384a97d58f54294efcb3a012deb2007a9fc658 Reviewed-on: https://chromium-review.googlesource.com/178996 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Zhenyao Mo 6cb95f3a 2013-10-03T17:01:52 Fix a traverse bug. In loop node, the init part was skipped in traversing. BUG= TEST= R=kbr@chromium.org Review URL: https://codereview.appspot.com/14366043 Change-Id: If3200f1dbcafda1147820b2d47b758b897de0fc6 Reviewed-on: https://chromium-review.googlesource.com/178992 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Zhenyao Mo e88dcaf3 2013-10-03T16:55:19 Style violation cleanup for IntermTraverse.cpp Per suggested by kbr in https://codereview.appspot.com/14366043/, we clean up the stype violation in a separate CL. BUG= TEST=no behavioral change TBR=kbr@chromium.org Review URL: https://codereview.appspot.com/14371043 Change-Id: I27e15f632eff3a9d0d22ae955b5a952793128661 Reviewed-on: https://chromium-review.googlesource.com/178991 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 74d03eaf 2013-12-03T13:47:39 Fix unused variable warning in compiler/debug.cpp. BUG=angle:534 Change-Id: I893e552628c7deba4bc67baae6e5e28b6161c5d4 Reviewed-on: https://chromium-review.googlesource.com/178438 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f4b79ba8 2013-11-26T10:38:18 Fix issues with the conditional discard workarounds to do with assignments. The old modifiesState method really checked if an operator was an assignment, so restored that behaviour and use the new side effects detection only for the new code. ANGLEBUG=486 BUG= R=nicolascapens@chromium.org, zmo@chromium.org Review URL: https://codereview.appspot.com/22130043 Change-Id: I84d4e95a0457e63f237a814d80e4f72dd861496b
Jamie Madill 3c9eeb97 2013-11-04T11:09:26 Disable optimizations for shaders with conditional discard in D3D9, and only use expanded short-circuiting conditionals for expressions with potential side-effects. Conservatively assume aggreate and selection operators have side effects for now. BUG= ANGLEBUG=486 R=geofflang@chromium.org, kbr@chromium.org, nicolas@transgaming.com, shannonwoods@chromium.org Review URL: https://codereview.appspot.com/14441075 Conflicts: src/common/version.h src/compiler/translator.vcxproj src/compiler/translator.vcxproj.filters src/compiler/translator/OutputHLSL.cpp src/libGLESv2/ProgramBinary.cpp src/libGLESv2/Shader.cpp src/libGLESv2/Shader.h Change-Id: Iaf9f10b5de7b33c927ef032f3c4fe9d5095f64dd
Nicolas Capens a621c2e4 2013-11-20T13:40:23 Use 64-bit safe constant union indexes. BUG=angle:450 Change-Id: I4a16733e3e6aebf2939f8255ae2e4e8c5febc606
Shannon Woods 9b27ebb0 2013-11-19T21:44:28 Merge "Manual merge of Ehsan Akhgari's change to add include guards to ForLoopUnroll.h" into es3proto
Shannon Woods 7f2d7945 2013-11-19T15:07:58 Manual merge of Ehsan Akhgari's patch to rename Diagnostics enums to avoid collision with Windows.h (See https://chromium-review.googlesource.com/#/c/177181/3) Change-Id: I2978d06ec96789b3ee1696b65a84c2a9f31f7ba4
Shannon Woods f67e8025 2013-11-19T12:22:54 Manual merge of Ehsan Akhgari's change to add include guards to ForLoopUnroll.h (See https://chromium-review.googlesource.com/#/c/177180) Change-Id: I353b6ff868dbfd5764d4fa3fb0af88891cf5b436
Jamie Madill 03847b6d 2013-11-13T19:42:39 Fix the shader calculation for the level of detail for certain samplers. We were using an extra sqrt function for some cases. TRAC #23591 Change-Id: I7d5d2b4b78586085396a281daf7975be316a1386 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Jamie Madill 829f59e9 2013-11-13T19:40:54 Remove usages of the auto keyword from the translator. TRAC #22875 Change-Id: I3ecf30843a82962fbfa5c38f026425fa8acf4657 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 16a1c072 2013-10-22T15:42:15 Expose the textureLod functiosn to GLES 3.00 shaders. We should have support for these methods, but they were not exposed to the shaders. TRAC #23991 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Geoff Lang 036aa49b 2013-10-09T16:23:30 Disable warnings about size_t conversion and fix ambiguous template parameters in 64 bit builds. TRAC #23409 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill 6b9cb259 2013-10-17T10:45:47 Rename ParseHelper.cpp/h to ParseContext.cpp/h. TRAC #24002 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Jamie Madill 455a6f5c 2013-10-17T10:45:46 Expose gl_MaxDrawBuffers to ESSL 3.00 shaders. Previously was only exposed in ESSL 1.00. TRAC #23990 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang 2b6008c9 2013-10-08T10:44:05 Merge 366229430ea056cf7f33917a4fa37b721512a42c from master. Create a static translator project and allow the previous translator project to be used in component builds.
Geoff Lang 7c697201 2013-10-07T17:18:14 Deleted manually maintained visual studio projects and replaced them with gyp generated ones.
Geoff Lang 17732823 2013-08-29T13:46:49 Moved the compiler source files into directories based on their project and added a compiler.gypi to generate the compiler projects.
Nicolas Capens ef2c2b83 2013-09-26T10:06:07 Eliminate bitfield enum members to avoid GCC compile error. BUG=448 R=shannonwoods@chromium.org Review URL: https://codereview.appspot.com/14302044
Zhenyao Mo cc4ec64c 2013-09-23T14:57:10 Use the same mechanism to process int/float literals This also fixes the float overflow errno leaking bug. BUG= R=alokp@chromium.org Review URL: https://codereview.appspot.com/13368050
Zhenyao Mo ac44cd2b 2013-09-23T14:57:09 Add an option in ANGLE shader translator to initialize gl_Position to vec4(0.0, 0.0, 0.0, 1.0). This is to work around driver bugs where shader compile or program link would fail incorrectly if gl_Position is not set in vertex shader. At the moment at least Linux NVIDIA driver has this bug. ANGLEBUG=472 R=alokp@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/13509043
Zhenyao Mo a15f3e84 2013-09-23T14:57:08 Expose the packing function so we can check varyings packing per program ANGLEBUG=471 R=kbr@chromium.org Review URL: https://codereview.appspot.com/13322043
Zhenyao Mo f1d723c6 2013-09-23T14:57:07 Clamp numeric overflow rather than failing with an error BUG=249086 ANGLEBUG=468 TEST= R=alokp@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/13195043
Zhenyao Mo d2d340b0 2013-09-23T14:57:05 Add static_use to shader variable info query. BUG=249018 ANGLEBUG=465 R=kbr@chromium.org Review URL: https://codereview.appspot.com/13158043
Zhenyao Mo fa3c346f 2013-09-23T14:57:04 Build fix: not all types support precisions. Currently Angle translator made the wrong assumption that all variables have a precision, and ASSERT that. BUG=276031 TBR=alokp@chromium.org Review URL: https://codereview.appspot.com/13113044
Zhenyao Mo a5a1dfc6 2013-09-23T14:57:03 Support precision for sampler types. BUG= R=alokp@chromium.org Review URL: https://codereview.appspot.com/12833045
Alok Priyadarshi bc3f1ac6 2013-09-23T14:57:02 Minor refactoring of TSymbolTable. Used pointers for precision-stack entries as well to avoid unnecessarily re-allocating PrecisionStackLevel whenever the vector needs to resize. Added a scoped class to properly restore symbol-table level after each compile. R=kbr@chromium.org Review URL: https://codereview.appspot.com/12583047
Zhenyao Mo 74da9f2f 2013-09-23T14:57:01 Expose varying variables and also precision for all variables. ANGLEBUG=457 R=alokp@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/12487043
Alok Priyadarshi 0b67bfbf 2013-09-23T14:56:59 Print token string into the syntax error message. Bison calls yyerror("syntax error") when it cannot match any grammar rule. We used to append current token string to the error message, which got broken in r2202. This patch restores the original behavior. BUG=442 R=kbr@chromium.org Review URL: https://codereview.appspot.com/12876043
Alok Priyadarshi 8156b6be 2013-09-23T14:56:58 Fixed memory leak associated with TLS. We used to allocate thread-local memory on each compile. If the compile did not happen on the same thread as ShInitialize, we leaked the thread-local memory. It turns out that there is no need to allocate any thread-local memory. This patch cleans up all the unnecessary junk around TLS. BUG=crbug.com/181691 R=kbr@chromium.org Review URL: https://codereview.appspot.com/11679046 Conflicts: src/compiler/ConstantUnion.h src/compiler/ShaderLang.cpp src/compiler/Types.h src/compiler/ValidateLimitations.cpp
Jamie Madill 36be856c 2013-09-23T14:56:57 Generate a new grammar with the Bison 2.7.1, the latest cygwin version. TRAC #23854 Signed-off-by: Shannon Woods Signed-off-by: Nicolas Capens
Jamie Madill ba615196 2013-09-24T14:07:39 Normalize line endings of tracked files in the repository. TRAC #23896 Signed-off-by: Shannon Woods
Jamie Madill 02f20dd8 2013-09-12T12:07:42 Fix compile error regressions in OutputGLSL and OutputESSL. These were broken back with the symbol table changes. TRAC #23857 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 384b6041 2013-09-13T10:06:24 Add missing varying in and out qualifiers to the interpolation qualifier switch statement. This was causing a benign assert in Debug mode with GLSL ES 1.00 shaders. TRAC #23746 Signed-off-by: Shannon Woods
Shannon Woods 3841b8e0 2013-09-10T18:23:12 Revert "Eliminate bitfield enum members." This reverts commit 56702e6d60883f2d1e33641b907680a852cdb15a.
Alok Priyadarshi b11713fb 2013-08-01T16:02:39 Made multiple calls to ShInitialize not assert. BUG=456 R=apatrick@chromium.org, kbr@chromium.org Review URL: https://codereview.appspot.com/11916046 Conflicts: src/common/version.h src/compiler/ShaderLang.cpp
Jamie Madill 5609378d 2013-08-30T13:21:11 Add full support for uniform structs. TRAC #23750 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 28167c62 2013-08-30T13:21:10 Add support for struct varyings, and more robust varying link validation. TRAC #23749 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 94599669 2013-08-30T13:21:10 Ensure struct varyings maintain the proper interpolation qualifier for the child fields. TRAC #23749 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 86a97a1a 2013-08-30T13:21:09 Use the proper register count for structs in HLSL uniforms and varyings. We must respect HLSL packing rules when uploading structs to D3D. TRAC #23748 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 2b538b85 2013-08-30T13:21:09 Rename some constants in BlockLayoutEncoder for clarity. TRAC #23748 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill c2141fb3 2013-08-30T13:21:08 Consolidate the register counting functions to a single location in the HLSL layout encoder source. This new method explicitly depends on HLSL packing rules, instead of a GL idiom. TRAC #23748 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 77456f28 2013-08-30T13:21:07 Allow block encoders to work with a NULL pointer for the output list structure. TRAC #23748 Signed-off-by: Nicolas Capens Signed-off-by: Geoff Lang
Jamie Madill a6da33a1 2013-08-30T13:21:07 Remove the gl::Varying class, and replace all usages with sh::Varying. TRAC #23746 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 139b9091 2013-08-30T13:21:06 Simplify the gl::Varying struct to be more like sh::Varying. The subsequent patches will remove gl::Varying entirely. TRAC #23746 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 1cb333eb 2013-08-30T13:21:05 Rename compiler/Uniform.cpp+h to ShaderVariable.cpp+h. TRAC #23754 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 47fdd13e 2013-08-30T13:21:04 Pass varyings to the GLES API from the translator using a direct pointer. Instead of parsing them indirectly from HLSL, the pointer will allow us to more flexibly support new types, especially compound types such as structures. TRAC #23754 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 9d2ffb1d 2013-08-30T13:21:04 Refactor sh::Uniform and sh::ShaderVariable into a shader variable base type with different child types. This change gives us better memory usage (many fields are unnecessary in different types) with better static typing and clear type abstraction for specific methods that might take Attributes or Varyings, etc. TRAC #23754 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 912cbfe8 2013-08-30T13:21:03 Allow the block encoder classes to encode types directly passed by value, instead of as a compound type. TRAC #23754 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 9060a4e0 2013-08-12T16:22:57 Fix some missing UBO qualifier link validation errors. TRAC #23747 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill 19571818 2013-08-12T15:26:34 Add more robust support for interpolation and storage qualifiers with varyings for GLSL ES 3.00. This fixes some conformance failures in the dEQP varying link tests, particularly with ints and the flat keyword. TRAC #23745 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Jamie Madill f2e0f9bb 2013-08-26T16:39:42 Moved the code to combine interpolation and stoarge qualifiers to the parse helper. TRAC #23745 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
Nicolas Capens 56702e6d 2013-08-12T11:10:06 Eliminate bitfield enum members. TRAC #23653 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Author: Nicolas Capens
Nicolas Capens 9edebd68 2013-08-06T10:59:10 Implement mipmapping for integer samplers. TRAC #23655 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Author: Nicolas Capens
Shannon Woods a49a9bf9 2013-08-02T17:23:14 Removes auto from compiler. TRAC #23604 Author: Shannon Woods Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill 5ccc6248 2013-07-26T13:14:54 Add a missing case to build manged names of uint types. TRAC #23590 Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 0b20c944 2013-07-19T16:36:56 Replace the logic for doing vector and matrix equivalence tests in the shader with a much simpler formula. We can use the HLSL fragment "all(a == b)" for all matrix and vector types. TRAC #23535 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Nicolas Capens cb127d3d 2013-07-15T17:26:18 Create the HLSL shadow texture function. TRAC #23394 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
Nicolas Capens 354ed2d1 2013-07-11T11:26:26 Compact sampler type translation. TRAC #23394 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
Nicolas Capens 8f80e024 2013-07-11T11:20:50 Remove intrinsic parameter names. TRAC #23394 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
Nicolas Capens 77c9d1a4 2013-07-11T11:10:34 Add shadow texture intrinsics to the symbol table. TRAC #23394 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
Nicolas Capens 2a1d8a38 2013-07-18T11:49:40 Add shadow samplers to the compiler front-end. TRAC #23394 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens