src


Log

Author Commit Date CI Message
Jamie Madill be13ffca 2015-03-19T13:42:16 Use google test to wrap our perf tests. This provides easy implementation with the Chromium perf bots. BUG=angleproject:744 Change-Id: I71c04e3d67cae9344ddca9fd95fd3c9849494922 Reviewed-on: https://chromium-review.googlesource.com/260644 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 6ae6efca 2015-03-09T14:42:35 Only sync the VAO state just before the draw call. BUG=angleproject:880 Change-Id: Ifd59c0f67aeab0e4700b3dca57c1b75e3fae48b8 Reviewed-on: https://chromium-review.googlesource.com/257671 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fb2a5597 2015-03-20T11:25:37 Fix incorrect assertion. BUG=angleproject:884 Change-Id: I3406eec99609b85c407797c50b71611b445a6ca5 Reviewed-on: https://chromium-review.googlesource.com/261462 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gregoire Payen de La Garanderie 30ceb3a1 2015-03-19T19:20:06 Update Canary WebGL CTS expectations. Change-Id: Ia8375595b34e00a48143a568a4a9ab7157a12cd2 Reviewed-on: https://chromium-review.googlesource.com/261171 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 64af27bd 2015-03-19T13:42:14 Make Optional a proper helper class. Move this to a common area, out of perf tests. Change-Id: I53d36accfe0c53789c007edfb20ba7e964947def Reviewed-on: https://chromium-review.googlesource.com/260643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Austin Kinross 8b695ee3 2015-03-12T13:12:20 Reduce unnecessary built-in varying usage in D3D renderer Change-Id: I0c404e77aa3f56ddc5b97a206b06c7907edfb1eb Reviewed-on: https://chromium-review.googlesource.com/259812 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross c8ef69d2 2015-03-18T16:43:22 Fix C4702 issues (unreachable code) in ANGLE, excluding <xtree> Change-Id: Ia7603139af266fd7b14efc8c3465225738456e67 Reviewed-on: https://chromium-review.googlesource.com/261038 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gregoire Payen de La Garanderie ed54e5db 2015-03-17T16:51:24 Fix framebuffer zero used after being destroyed in Context destructor. BUG=angleproject:950 Change-Id: I06e9e6ccf92ee8ca0b1de98cc48ef68a85107214 Reviewed-on: https://chromium-review.googlesource.com/260573 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Olli Etuaho e79904c3 2015-03-18T16:56:42 Accept equality and assignment for arrays in parsing This is enough to support the operations in GLSL output. HLSL output will likely require additional work to support this. BUG=angleproject:941 Change-Id: I728d511ab07af94bc3382dc2796c1e9ac79d1442 Reviewed-on: https://chromium-review.googlesource.com/260801 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 1ade24db 2015-03-19T16:29:32 Add #version 300 es to ESSL output when needed BUG=angleproject:953 Change-Id: Ib9e45fab1d35f8c78abd0ac2209ac4f63afe4465 Reviewed-on: https://chromium-review.googlesource.com/261170 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho d6b14287 2015-03-17T14:31:35 Move binary op array check to ParseContext Also piece together an addAssign function in ParseContext that uses the binary op array check. This will make it easier to change the array-related checks in the future to use shaderVersion. Moving validation out from IntermBinary::promote also makes the architecture clearer, promote()'s role should be mainly to determine the type of the return value of the binary operation, not to do validation. BUG=angleproject:941 TEST=angle_unittests, WebGL conformance tests Change-Id: If1de33ea250893527be7f0d7930d4678a0864684 Reviewed-on: https://chromium-review.googlesource.com/260571 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho b2983c95 2015-03-18T14:02:46 Correctly insert unmangled function names to symbol table This fixes detecting some cases of function parameter mismatch (previously a mangled function name corresponding to no function parameters was added to the symbol table for each user-defined function, and this was returned when doing function lookups with no parameters). Also fixes detection of reusing a function name as a variable/struct name. New unit tests are added to ensure that these fixes don't regress. BUG=angleproject:936 TEST=angle_unittests, WebGL conformance tests Change-Id: I2dadde9dcc01c7a4a653c1982c36377b89e6d437 Reviewed-on: https://chromium-review.googlesource.com/260800 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5659619a 2015-03-19T10:23:13 Fix uninitialized ConfigSorter read. We were not initializaing the mWant* members to false. BUG=468638 Change-Id: I90ef131c930c6f9c31e9bc9cec951c1f91816eb0 Reviewed-on: https://chromium-review.googlesource.com/261047 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d4475816 2015-03-18T10:53:05 Always use static_assert for compile-time assertions and remove META_ASSERT. BUG=468139 Change-Id: I696ef307f2faa54bb72df66784bc79a055499987 Reviewed-on: https://chromium-review.googlesource.com/260776 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho fc1806e1 2015-03-17T13:03:11 Move most of addBinaryMath from Intermediate to ParseContext Some type checks for binary math will be different based on the shading language version, which is easily accessible in ParseContext. Because of this and also for architectural simplicity it makes more sense to have the checks in ParseContext. BUG=angle:941 TEST=angle_unittests, WebGL conformance tests Change-Id: I92a499f47e1cbc6a7b6391ce0fa04284803e7140 Reviewed-on: https://chromium-review.googlesource.com/260570 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2c7c625a 2015-03-12T14:15:38 Refactor D3D Debug Annotations code. This encapsultates the different implementations and allows us to compile debug.cpp in the common libraries without link errors. BUG=angleproject:513 Change-Id: I16dc4c666fb4266ee5146d64d77eb9925c7584a8 Reviewed-on: https://chromium-review.googlesource.com/256450 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross b8af723d 2015-03-16T22:33:25 Fix and enable warning C4245 (signed/unsigned mismatch) Change-Id: If48043835fcc98341a0626e3ece7d0e3f7958059 Reviewed-on: https://chromium-review.googlesource.com/260630 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cooper Partin <coopp@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 968992e3 2015-03-17T18:01:49 Fix unreferenced function warning. Change-Id: I66b1821e5effcb761a5a0268f7f375289aa3a621 Reviewed-on: https://chromium-review.googlesource.com/260632 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6bd58312 2015-03-13T10:45:27 Make Platform methods global. This will allow them to be imported dynamically without name mangling. This is necessary because sometimes SwiftShader overrides libGLESv2 and libEGL, so we need to determine at run-time if we are running with "actual" ANGLE. BUG=466735 Change-Id: I396d717b79066feb8ed0d577ee7386b33eb1d160 Reviewed-on: https://chromium-review.googlesource.com/259954 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 1f40291c 2015-03-09T14:28:02 Remove the non-templated RefCountObjectBindingPointer class. This allows the regular BindingPointer class to template on const types. Also added assignment and copy operators that don't leak the resources. BUG=angleproject:880 Change-Id: If3efa26a7fa89306d783c3e8a5fb92b16861d77a Reviewed-on: https://chromium-review.googlesource.com/257670 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Arun Patole 6341939f 2015-03-13T11:51:07 Fix code duplication in OutputHLSL While debugging, I came across the piece of code in OutputHLSL::OutputHLSL which is unnecessarily duplicated, this change just fixes it. Change-Id: I0549d58696417ccf651bacfa19f489b290d4ba6e Reviewed-on: https://chromium-review.googlesource.com/259960 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Cooper Partin 0110e172 2015-03-11T12:26:30 Update ANGLE_platform_angle_d3d to be able to disable automatic trim. BUG=angleproject:946 Change-Id: I5652495842b057998318b1583f8e1a586eba39aa Reviewed-on: https://chromium-review.googlesource.com/258940 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang c05f7065 2015-03-10T09:50:57 TextureGL implementation. BUG=angleproject:884 Change-Id: I877c0a9f753dacff96bbb82486bee71d1996ecb7 Reviewed-on: https://chromium-review.googlesource.com/252982 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 559a2e8c 2015-03-16T17:25:51 Move the ANGLE tests project to src/ *re-re-land with fix for Chrome's angle tests* BUG=angleproject:945 Change-Id: I3c64e2edc776c299791440f65f22450855eb6dfa Reviewed-on: https://chromium-review.googlesource.com/260448 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 96e3f556 2015-03-16T21:24:20 Revert "Move the ANGLE tests project to src/" Still causing build issues on Chrome. This reverts commit 64a3b2a92fe3bbd28972638e6759fae0b98d81b9. Change-Id: I8d40fe3dfd0a877343357153a02b8ef66d571c64 Reviewed-on: https://chromium-review.googlesource.com/260425 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 64a3b2a9 2015-03-16T11:00:20 Move the ANGLE tests project to src/ *re-land with fix for Chromium build* BUG=angleproject:945 Change-Id: I82bff1760e681987fb26e479734aa62fb845898a Reviewed-on: https://chromium-review.googlesource.com/260362 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5491fe66 2015-03-16T17:56:18 Revert "Move the ANGLE tests project to src/" Causing build break in Chromium. This reverts commit 71c2d85c4af2f6cb213d4f3e15f0ae16b63790f3. Change-Id: Iedf001c1f4c60a759f69009610fbce978d193d17 Reviewed-on: https://chromium-review.googlesource.com/260370 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 71c2d85c 2015-03-16T10:47:04 Move the ANGLE tests project to src/ BUG=angleproject:945 Change-Id: I2eb44ac43f65b916ddd838d39e6aae62580d7fa0 Reviewed-on: https://chromium-review.googlesource.com/258903 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 48115b6f 2015-03-16T10:46:57 Use rx::ImplFactory in Framebuffer init. BUG=angleproject:942 Change-Id: Idf14a4e42148b379b64b129ab649a9222cf1fb52 Reviewed-on: https://chromium-review.googlesource.com/258902 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ae6495e5 2015-03-16T10:46:56 Use rx::ImplFactory in ResourceManager. This will make mocking easier for unit testing ResourceManager. BUG=angleproject:942 Change-Id: I24b9d0be550991845225141d6e7d5630383a8718 Reviewed-on: https://chromium-review.googlesource.com/258901 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 87de3627 2015-03-16T10:41:44 Implement pass-through pack state params. Same as for unpack, this allows us to pass through the state reset code of dEQP without UNIMPLEMENTED errors, while still throwing asserts if they are set to non-default values. BUG=angleproject:901,angleproject:512 Change-Id: I0ce0258b0e91eb83c066c241693aaa5c164b2989 Reviewed-on: https://chromium-review.googlesource.com/257131 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 67102f01 2015-03-16T10:41:42 Add pass-through for new unpack store params. Move the UNIMPLEMENTED checks to where they are used with non-default values. This allows dEQP to pass the prerequisite tests like state reset without throwing assertion failures in debug. BUG=angleproject:901,angleproject:512 Change-Id: I3bd35f6dea61e7d80d1379ba4e8e13437e68431a Reviewed-on: https://chromium-review.googlesource.com/257130 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 2728eda4 2015-03-16T10:23:50 Revert "A special state to track field selection is not necessary." This reverts commit f8dc4fb66d2ee473b6ba37626f02756422863f6c. The special state to track field selection is actually necessary to avoid reduce/reduce conflicts when array constructors are added to the grammar. BUG=angleproject:941 TEST=WebGL conformance tests, angle_unittests Change-Id: I55476483c9e83241e8978cd58f05ef303c7c8680 Reviewed-on: https://chromium-review.googlesource.com/260260 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 28291c5a 2015-03-16T10:46:54 Add an ImplFactory base class. This class helps make mocking easier for unit tests. Also update the back-end generator script. BUG=angleproject:942 Change-Id: Ib0cee2b40c3a0faaac32b22c986b824b7b2dddde Reviewed-on: https://chromium-review.googlesource.com/258900 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f75ab350 2015-03-16T10:46:52 Make ClearParameters an rx-only type. This legacy struct duplicates some methods in the gl::State. We can restrict its use to D3D and on newer back-ends use the State directly. BUG=angleproject:930 Change-Id: I2c298e76b072ee73f2b3e17f6696693031ce1f91 Reviewed-on: https://chromium-review.googlesource.com/258070 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 4f52da4a 2015-03-11T10:48:41 Remove no-op functionality from IdentifyBuiltIns and refactor Adding array built-ins like gl_FragData and gl_LastFragData to the symbol table with a name that included their size in brackets was incorrect and unnecessary. Remove this. The array built-ins should only be added with their proper name and with an array type. Also refactor the code to reduce unnecessary repetition of conditions. The previous version attempted to split the built-ins that had dependencies on resources into their own part of the code, but this split was not clearly defined and only made the code harder to follow and prone to issues. TEST=WebGL conformance tests Change-Id: I7a77865a594864a22f3b566f9d3da1d0ead46466 Reviewed-on: https://chromium-review.googlesource.com/258751 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 61ffec88 2015-03-11T10:35:01 Fix formatting of IdentifyBuiltIns Fix indentation of case labels, fix too long lines, put braces on their own lines and remove extraneous spacing and comments that didn't contribute to the readability of the code. TEST=WebGL conformance tests Change-Id: Ie33d0a7c4412c448081f5d879fa9f64baaf8d537 Reviewed-on: https://chromium-review.googlesource.com/258750 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Austin Kinross 434953e2 2015-02-20T10:49:51 Compile the D3D11 VS and PS on separate threads at GL link time Change-Id: Ib534483f2ec3922cfeaf71cf1d9e9c433fe04b08 Reviewed-on: https://chromium-review.googlesource.com/251612 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross bc8a1772 2015-02-26T14:11:43 Fix WinRT build break due to D3D9 histogram assumption Change-Id: Id8e8bed76a813e5cf082659671bb6f4a112ecf24 Reviewed-on: https://chromium-review.googlesource.com/254340 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Arun Patole 44efa0b8 2015-03-04T17:11:05 Conditionally enable IEEE strictness for isnan() ANGLE's ESSL3 built-in function isnan() implementation just uses HLSL intrinsic function isnan(). For HLSL intrinsic function isnan() to work properly, IEEE strictness needs to be enabled for D3D compiler. This change detects use of isnan() in shaders and passes compiler flag D3DCOMPILE_IEEE_STRICTNESS whenever isnan is used in shaders. This change also moves existing workarounds in D3DWorkaroundType to D3DCompilerWorkarounds. BUG=angle:927 TEST= dEQP tests dEQP-GLES3.functional.shaders.builtin_functions.common.isnan.* Change-Id: I1ce5b1a7a825fdd720a37dc9aeb71320e55162d9 Reviewed-on: https://chromium-review.googlesource.com/255834 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 56d1003e 2015-03-05T14:59:56 Add a D3D11 Debug member var. This is useful for dumping live objects on exit, to debug resource leaks. Change-Id: Ie88787defa37853d0a33c951b107ceac289e58df Reviewed-on: https://chromium-review.googlesource.com/256461 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fd67b1bf 2015-03-10T16:13:24 Move implementation unit tests to angle_unittests. Now that libANGLE is cross-platform, this should work on OSX/Linux and Android. Includes a warning fixes for test comparisons, and fix to our META_ASSERT wrapper macro for clang. BUG=angleproject:773 Change-Id: I6b88a85c62a2e07734ae81fb8276c28c5f8f9f47 Reviewed-on: https://chromium-review.googlesource.com/258300 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f90353e8 2015-03-05T19:37:58 Fix typo "setDepthttachment". BUG=angleproject:930 Change-Id: I7680bbc912c0d961143c38ad82d19746dc9b113d Reviewed-on: https://chromium-review.googlesource.com/256732 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 85a1804d 2015-03-05T15:41:41 Make getColorAttachmentsForRender D3D-only. This encapsulates the workaround in the D3D renderer, and also optimizes the workaround to only compute a new set of attachments when there is a change to the state. BUG=angleproject:930 Change-Id: Ibdc15078236e2d19b544fae8e65b7f2554f31844 Reviewed-on: https://chromium-review.googlesource.com/254102 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7147f01a 2015-03-05T15:41:40 Cleanups to FramebufferD3D. With the new shared state structure, we can eliminate a lot of the state tracking within the FramebufferD3D implementation. BUG=angleproject:930 Change-Id: I0953e321bae3afe7cde7b73c55af62546665c890 Reviewed-on: https://chromium-review.googlesource.com/254101 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d1405e51 2015-03-05T15:41:39 Share FBO state with object and Impl. This patch introduces a new Framebuffer::Data class, which stores attachment related state. This will eliminate the need to store duplicated state between the classes. BUG=angleproject:930 Change-Id: I80de4db39ab99d623b0ad8306bf3cbb794cd8bd5 Reviewed-on: https://chromium-review.googlesource.com/254100 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0af26e10 2015-03-05T19:54:33 Prefer using caps to system attachment limits. The caps structure can often give a lower and faster bound, as well as being more general. We should gradually move away from the implementation limits. BUG=angleproject:930 Change-Id: I979472cdb6f59c6f0cc0c80f1c29c51295872bea Reviewed-on: https://chromium-review.googlesource.com/256731 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nico Weber 092e1a12 2015-03-09T07:40:11 Initialize fragmentPrecisionHigh in constructor. This was the only field not initialized by the constructor, which looks like an oversight. Change-Id: If61424d574c663113a4c6d31e94b6ec13b412884 Reviewed-on: https://chromium-review.googlesource.com/257360 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho fc7fab72 2015-03-06T12:03:18 Fix matrix compound multiplication Matrix compound multiplication was lacking transposes. Add them so that results match normal multiplication. BUG=angleproject:938 TEST=dEQP-GLES3.functional.shaders.matrix.mul_assign.* Change-Id: I4c5159de0727afb4ee2831586f04fa817619de7a Reviewed-on: https://chromium-review.googlesource.com/256366 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho 51585037 2015-03-05T19:40:42 Remove unnecessary ifdef APPLE from built-in emulation The emulation is already toggled by a compilation flag, so having it behind an ifdef only adds unnecessary complexity, particularly when testing changes to the emulation code. BUG=angleproject:865 Change-Id: Idf7854c2b5323609880b527ed806440dcc8ac091 Reviewed-on: https://chromium-review.googlesource.com/256365 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho 8efc5ad5 2015-03-03T17:21:10 Initialize BuiltInFunctionEmulator outside Compiler This moves GLSL output specific code from the Compiler class to the GLSL/ESSL translators. BUG=angleproject:865 Change-Id: I2d552e9cdb41f7d8ddfee7b0249a99d629a6d7d7 Reviewed-on: https://chromium-review.googlesource.com/255471 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 72ba85bf 2015-03-04T14:23:26 Fix regression in addFunctionCallOrMethod Fix a crash when parsing a shader with incorrect constructor arguments. BUG=angleproject:911 TEST=WebGL conformance tests Change-Id: I3459612f36185db861a361fa916cc6b671795037 Reviewed-on: https://chromium-review.googlesource.com/255870 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho 95cd3c68 2015-03-03T16:45:32 Move some output out of BuiltInFunctionEmulator subclasses This paves the way for getting rid of the BuiltInFunctionEmulator subclasses in favor of initializing the BuiltInFunctionEmulator dynamically in Compiler subclasses. The eventual goal is getting rid of GLSL output specific functionality in Compiler, which should be language-agnostic. BUG=angle:865 Change-Id: Ibb114b905785c7343b2726c97699268c982536a0 Reviewed-on: https://chromium-review.googlesource.com/255470 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho c4ba3bef 2015-03-02T14:42:24 Refactor addFunctionCallOrMethod out of glslang.y TEST=angle_unittests BUG=angle:911 Change-Id: I6d4c0f0bfbf9e6252e241ae5bb1b6acdb463fce6 Reviewed-on: https://chromium-review.googlesource.com/255451 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Qingqing Deng 5dbece59 2015-02-27T20:35:38 Implement trunc, round, roundEven (Emulated roundEven) BUG=angle:934 Change-Id: If33256bf3707f3f0202147276c71f08c65518205 Reviewed-on: https://chromium-review.googlesource.com/254842 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 2cd7a0ed 2015-02-27T13:57:32 Remove switch fall-through on HLSL Remove fall-through from non-empty labels in switch statements. Tested with dEQP-GLES3.functional.shaders.*switch*. All pass except for tests that require dFdx/dFdy, which fail for an unrelated reason. Additional test coverage could still be useful for cases where a label is terminated by a continue or return statement. BUG=angle:921 Change-Id: I4741867789a9308d66d0adeabdaf83907106e2d2 Reviewed-on: https://chromium-review.googlesource.com/254550 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Olli Etuaho 687ef22c 2015-03-03T10:58:05 Fix derivatives being related to an extension on ESSL3 dFdx, dFdy and fwidth are parts of the core language in ESSL3. This fixes a regression from the patch "Set symbol extension at insertion". BUG=angle:926 Change-Id: I6c0bbce3afad1f064ff115a16e23ea79bd584e49 Reviewed-on: https://chromium-review.googlesource.com/255450 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang ddc7446d 2015-02-25T11:48:09 Move RendererGL caps generation to renderergl_utils. Change-Id: Ia385fc9739174472d698367e2c6093ba1963b1fe Reviewed-on: https://chromium-review.googlesource.com/253634 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
hendrikw c92fa1ee 2015-03-03T15:26:52 Disable textureRG for DX9 DX9 emulates GL_R8_EXT using BGR8. When we made the switch to using GL_R8_EXT for YUV decoding, we decreased performance on DX9 machines. DX9 supports luminance, which we fall back to when R8 isn't available. BUG=438736 Change-Id: Iaa8d0518d481927d66130ea1bf3a95a750c5a761 Reviewed-on: https://chromium-review.googlesource.com/255662 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 05b6b7fc 2015-03-02T17:08:09 Add an SH_GLSL_CORE_OUTPUT profile. So we could generate shaders for Apple using core GL profile. By switching to core profile, we still pass most WebGL conformance tests 1.0.2 on Linux, but not all, so apparently more work is needed. However, I think it's OK to check this CL in because this output profile will be only used behind a chromium switch. BUG=angleproject:933 TEST=webgl conformance tests Change-Id: Iad70e1aebf82349d3fc5f4116c1d6bc4448193fd Reviewed-on: https://chromium-review.googlesource.com/255282 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Arun Patole 7749005a 2015-03-03T18:36:05 Fix min built-in function support One of the recent change that uses generic types to compact the symbol table initialization has introduced a bug in 'min' function implementation, just fixing it here. TEST= dEQP tests: dEQP-GLES3.functional.shaders.operator.common_functions.min.lowp_uvec* Change-Id: I0e3d386c89bc07c3b656ec5029b8ce57f663cf46 Reviewed-on: https://chromium-review.googlesource.com/255369 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d6e50872 2015-02-24T12:42:26 Add a StateManagerGL method to sync state required for a draw call. BUG=angle:883 Change-Id: Iabeb25aef2228a1900bd0209422ddce21771c688 Reviewed-on: https://chromium-review.googlesource.com/252802 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ba4c4a85 2015-02-24T12:38:46 Implement basic functionality in VertexArrayGL. No support for raw vertex data pointers yet. BUG=angle:880 Change-Id: Ifa8099b0f49028a1465edecde495ba725ac79598 Reviewed-on: https://chromium-review.googlesource.com/252801 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens c9d9b30a 2015-02-20T23:02:15 Set symbol extension at insertion. BUG=angle:926 Change-Id: I4c96ae89c79d720d99bde803541c3158ba4629ab Reviewed-on: https://chromium-review.googlesource.com/251662 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 05ae50dc 2015-02-20T10:16:47 Add basic support for HLSL output of switch and case This patch outputs switch and case statements in HLSL, but ignores fall-through. Switch statements that include fall-through cause the platform HLSL compiler to generate errors. BUG=angle:921 Change-Id: I10efbfb45076cf4fd79840698abafd8111e597d4 Reviewed-on: https://chromium-review.googlesource.com/251527 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 01cd8afa 2015-02-20T10:39:20 Add GLSL output of switch and case BUG=angle:921 Change-Id: I0d752440ce6ffdfcc005f1a6123694bdfeb1b067 Reviewed-on: https://chromium-review.googlesource.com/251526 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho c8716df9 2015-02-26T17:17:22 Fix an issue with handling an error case inside ValidateSwitch In case a condition with a wrong type is given to a case statement, it generates an error but the compiler recovers. This caused ValidateSwitch to assert. Fix this. BUG=angle:921 Change-Id: I7949798cab923c2b168817471896470c6c611878 Reviewed-on: https://chromium-review.googlesource.com/254080 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 482907eb 2015-02-23T16:56:33 Set symbol operations at insertion. BUG=angle:926 Change-Id: Ifc8f62ebe1277214a4d3fbd5c56eb5faeff8e389 Reviewed-on: https://chromium-review.googlesource.com/251650 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang 58646526 2015-02-26T16:04:28 Pipe the ProgramBinary functions to the OES implementations. BUG:462020 Change-Id: Ic567bf3d56d551716f1915a208003a7699abe6e6 Reviewed-on: https://chromium-review.googlesource.com/254300 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 91a080d8 2015-02-26T11:07:31 Fix GL typedef conflicts. Moved typedefs to the global namespace to avoid future name conflicts. Change-Id: I70bd47d2516964cd040df48c0b2ca50bc32ba851 Reviewed-on: https://chromium-review.googlesource.com/254090 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e9cc469f 2015-02-19T16:00:13 Accept mismatching auxiliary interpolations. The ES3.1 spec, and discussion on Khronos.org, confirm that dEQP is correct in accepting mismatching centroid specifiers in shader linkage. Mismatching flat/smooth is still a link error. Fixes: shaders.linkage.varying.rules.differing_interpolation_2 Change-Id: I3016f4147e7c1b16b02371ee95866c8daf826212 Reviewed-on: https://chromium-review.googlesource.com/251205 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a2643b64 2015-02-19T11:07:56 Add UMA histogram for D3D9 init results. Similar to D3D11 results, this can add statistics for the result of initializing the D3D9 Renderer. BUG=436191 Change-Id: I746c95a8dbb27456613844fde816e17352dc4b8d Reviewed-on: https://chromium-review.googlesource.com/248660 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b9293977 2015-02-19T11:07:54 Add UMA histogram for D3D11 init failures. This will give ANGLE in Chrome a sense of device init calls fails in D3D11, and why. BUG=436191 Change-Id: Ia7b1bfa334cec595b6f0265357385d0dcc2d6cbf Reviewed-on: https://chromium-review.googlesource.com/248632 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Gregoire Payen de La Garanderie 5cc9ac85 2015-02-20T11:27:56 Fix shadow samplers with textureProj and vertex shaders. Fixes: dEQP-GLES3.functional.shaders.texture_functions.textureproj.sampler2dshadow_fragment dEQP-GLES3.functional.shaders.texture_functions.textureproj.sampler2dshadow_bias_fragment dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_fragment dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_bias_fragment and some of: dEQP-GLES3.functional.shaders.texture_functions.texture*.sampler2dshadow_vertex BUG=angle:925 Change-Id: I080e379ded95469f0486ae9c8bb1756842118a2d Reviewed-on: https://chromium-review.googlesource.com/251530 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 36c79011 2015-02-24T11:47:20 Implement basic functionality in BufferGL. BUG=angle:881 Change-Id: I8d761741d204d26cea1c87eec725bc8ebaaaa584 Reviewed-on: https://chromium-review.googlesource.com/252800 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 63cbace6 2015-02-26T10:03:12 Rename StateManagerGL::setProgram to useProgram. BUG=angle:882 Change-Id: I4046e23bf720690869558fa6a5528d40c4b3bfa3 Reviewed-on: https://chromium-review.googlesource.com/254070 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ab249d18 2015-02-26T09:56:23 Temporarily disable WGL debug contexts. Change-Id: I62f29b8012386cd57181621e0854aa5a8ce534dd Reviewed-on: https://chromium-review.googlesource.com/254061 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho ac5274df 2015-02-20T10:19:08 Add validation for the structure of switch statements Implement a traverser to check for the following errors: -More than one default or replicated constant expression -No statement between a label and the end of a switch statement -Statements in a switch statement before the first case statement -Mismatch between the type of init-expression and type of a case label -Case or default label nested inside other control flow nested within the corresponding switch Tested by manually disabling shading language version checks for switch and by manually enabling case statements in a Chromium build and checking that the expected errors are generated. BUG=angle:921 Change-Id: I99c49c17c8b520849adbe4d8521e46cb10e20e41 Reviewed-on: https://chromium-review.googlesource.com/251524 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho 3c1dfb5a 2015-02-20T11:34:03 Add stubs for switch and case output BUG=angle:921 Change-Id: I58bd645a8d53ef5bad9b680e54c8948d50932fca Reviewed-on: https://chromium-review.googlesource.com/251525 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b1f435e4 2015-02-20T10:01:01 Implement basic functionality of ProgramGL. BUG=angle:882 Change-Id: I1d859197011081729c4c5733b78ac10491fe926c Reviewed-on: https://chromium-review.googlesource.com/251542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang f1e85927 2015-02-23T14:40:04 Add test for very basic operations to enable as GL functionality is added. Add OpenGL and OpenGLES platform types for the ANGLE tests. Comment out some UNIMPLEMENTEDs that tests using OpenGL trigger. BUG=angle:882 Change-Id: I7f85eed184f7cebd25e2521d793fc9c394b704ce Reviewed-on: https://chromium-review.googlesource.com/252252 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 86803677 2015-02-23T14:35:20 Update Display to allow for changing implementation objects. Previously it was possible to change from a D3D9 to D3D11 display because both were implemented with a DisplayD3D. Now that there is a DisplayGL, the DisplayImpl must be updated while maintaining the same EGLDisplay value. Allow the value of Display::mImplementation to be updated when the display is not already initialized. BUG=angle:890 Change-Id: Ic18a8a120218cd130a71b9aa044b6ec00006d6a0 Reviewed-on: https://chromium-review.googlesource.com/252250 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Daniel Bratell 73941deb 2015-02-25T14:34:49 Disable the HLSL code in Angle if it is not being used. We're only using the HLSL code in Windows so it's not necessary to compile and distribute it on other platforms. This adds a defined ANGLE_ENABLE_HLSL that can be checked in files that are used by non-HLSL code as well. Mostly the HLSL code is just not include by the build system. Details of the space savings (heavily truncated) Total change: -165717 bytes =========================== -606 - Source: angle/src/common/utilities.cpp -627 - Source: angle/src/compiler/translator/FlagStd140Structs.cpp -695 - Source: /usr/include/c++/4.8/bits/stl_algo.h -710 - Source: angle/src/compiler/translator/TranslatorHLSL.cpp -713 - Source: angle/src/compiler/translator/IntermNode.h -863 - Source: /usr/include/c++/4.8/bits/stl_map.h -935 - Source: angle/src/compiler/translator/blocklayout.cpp -1515 - Source: angle/src/compiler/translator/BuiltInFunctionEmulator.cpp -1655 - Source: angle/src/compiler/translator/UnfoldShortCircuit.cpp -2375 - Source: /usr/include/c++/4.8/bits/vector.tcc -3135 - Source: angle/src/compiler/translator/RewriteElseBlocks.cpp -4656 - Source: angle/src/compiler/translator/UtilsHLSL.cpp -5265 - Source: angle/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp -6505 - Source: /usr/include/c++/4.8/bits/stl_tree.h -11480 - Source: angle/src/compiler/translator/UniformHLSL.cpp -13580 - Source: angle/src/compiler/translator/StructureHLSL.cpp -18964 - Source: ?? (constant strings and a few vtbls) -89332 - Source: angle/src/compiler/translator/OutputHLSL.cpp Change-Id: I23ccc98abd0a21f847dd34f9482800b3ba679d56 Reviewed-on: https://chromium-review.googlesource.com/251528 Tested-by: bratell at Opera <bratell@opera.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 53f076fa 2015-02-20T10:55:14 Add basic error checks for switch and case Check that the case labels have constant scalar integers, and that switch statements are initialized with scalar integers. Also check that case and default labels do not exist outside switch statements. Allow break statements inside switch statements. Tested by manually disabling shading language version checks for switch in a Chromium build and checking that the expected errors are generated. BUG=angle:921 Change-Id: Ibe83d0db52958c493ded5640d4babf670dc02d55 Reviewed-on: https://chromium-review.googlesource.com/251523 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho a3a36664 2015-02-17T13:46:51 Implement parsing switch statements Put in some groundwork for parsing switch statements and case labels in the parser, including definitions for IntermNode classes. Intermediate functions for adding the statements are stubbed to only generate errors for now. Tested by manually disabling shading language version checks for switch in a Chromium build and checking that the expected errors are generated. BUG=angle:921 Change-Id: I064b3e0c4c1b724a083cf5bc78eebfdd3794eb1b Reviewed-on: https://chromium-review.googlesource.com/250380 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang a6d110e2 2015-02-24T16:15:03 Attempt shader compilation without unroll and flatten with error X4014. BUG=angle:917 Change-Id: Ie5b9a673f4af7241576cbe73ac96a7fb518af798 Reviewed-on: https://chromium-review.googlesource.com/252986 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Olli Etuaho 49300865 2015-02-20T14:54:49 Refactor validating jump statements out of glslang.y Move the logic to ParseContext. This will simplify changing the logic for the break statement that is needed to implement switch. BUG=angle:921, angle:911 TEST=WebGL conformance tests Change-Id: Ib8bbc7075c05d345e90377202b5446fb3307f94c Reviewed-on: https://chromium-review.googlesource.com/251522 Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Nicolas Capens f3cc4aef 2015-02-23T13:51:25 Use generic types to compact the symbol table initialization. Just like in the spec text, use symbolic types that represent multiple concrete types. The few signatures that get generated more than once are only added to the symbol table once because it ignores duplicates. BUG=angle:926 Change-Id: I216f03d22502b724dbefc87c5a021d6021c3a434 Reviewed-on: https://chromium-review.googlesource.com/251620 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Nicolas Capens <capn@chromium.org>
Cooper Partin e6d14cc3 2015-02-20T12:32:58 Updated instanced pointsprite emulation to be more resilient to driver differences. Change-Id: I89e5b5a2d2c0363ae07d5ba918187cb0d7056ac5 Reviewed-on: https://chromium-review.googlesource.com/251680 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 94463d58 2015-02-18T13:09:37 Add a state manager for the currently applied GL state. BUG=angle:883 Change-Id: Ie69c883c5ee539f911480fdcd9e73c46a3001b33 Reviewed-on: https://chromium-review.googlesource.com/250930 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 295ed4c4 2015-02-20T09:58:25 Implement ShaderGL. BUG=angle:882 Change-Id: I1a8c7b551b308c9362e56ce564ebde7d579c05a3 Reviewed-on: https://chromium-review.googlesource.com/251541 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7825f619 2014-11-26T16:19:41 Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool. BUG=angle:490 Change-Id: I1555e7f09b23138753e52ddf720d088587f7cadb Reviewed-on: https://chromium-review.googlesource.com/232104 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2fa660ba 2015-02-20T13:01:34 Add missing Display::getImplementation. Change-Id: I220ffefcbf9bc988d986e729961c9a893d6b5159 Reviewed-on: https://chromium-review.googlesource.com/251580 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Arun Patole 6b19d765 2015-02-19T09:40:39 Implement missing variants of abs/sign This change adds ANGLE support for abs/sign variants introduced in ESSL3. BUG=angle:923 TEST=Unit tests, dEQP tests Unit Tests: TypeTrackingTest.BuiltInAbsSignFunctionFloatResultTypeAndPrecision TypeTrackingTest.BuiltInAbsSignFunctionIntResultTypeAndPrecision dEQP tests passing 100% because of this change: dEQP-GLES3.functional.shaders.builtin_functions.common.abs dEQP-GLES3.functional.shaders.builtin_functions.common.sign Change-Id: I2a3b028611f0eaaac3c031f8926d34a0e146663d Reviewed-on: https://chromium-review.googlesource.com/251491 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Geoff Lang c415283b 2015-02-20T09:57:29 Implement CompilerGL. BUG=angle:882 Change-Id: I6fd426b19677b51f4df74d495acc9a6fde9822e8 Reviewed-on: https://chromium-review.googlesource.com/251540 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Daniel Bratell 29190088 2015-02-20T16:42:54 Make Angle code 40 KB smaller by using string literals directly. The implicit conversion of hundreds of string literals to TString generated a lot of machine code. By keeping them as string literals all the way the code will be smaller and faster. This is the change with clang for x64 (note VisitUnary in particular): Total change: -41392 bytes ========================== 2 added, totalling +469 bytes across 1 sources 2 removed, totalling -472 bytes across 1 sources 5 shrunk, for a net change of -41389 bytes (54126 bytes before, 12737 bytes after) across 1 sources 279692 unchanged, totalling 51433327 bytes ------------------------------------------------------------------------------------------------------------------------------------ -41392 - Source: /home/bratell/src/chromium/src/third_party/angle/src/compiler/translator/OutputHLSL.cpp - (gained 469, lost 41861) ------------------------------------------------------------------------------------------------------------------------------------ New symbols: +328: sh::OutputHLSL::outputConstructor(Visit, TType const&, char const*, TVector<TIntermNode*> const*) type=t, size=328 bytes +141: sh::OutputHLSL::outputTriplet(Visit, char const*, char const*, char const*) type=t, size=141 bytes Removed symbols: -133: sh::OutputHLSL::outputTriplet(Visit, std::basic_string<char, std::char_traits<char>, pool_allocator<char> > const&, std::basic_string<char, std::char_traits<char>, pool_allocator<char> > const&, std::basic_string<char, std::char_traits<char>, pool_allocator<char> > const&) type=t, size=133 bytes -339: sh::OutputHLSL::outputConstructor(Visit, TType const&, std::basic_string<char, std::char_traits<char>, pool_allocator<char> > const&, TVector<TIntermNode*> const*) type=t, size=339 bytes Shrunk symbols: -388: sh::OutputHLSL::writeEmulatedFunctionTriplet(Visit, char const*) type=t, (was 628 bytes, now 240 bytes) -714: sh::OutputHLSL::visitBranch(Visit, TIntermBranch*) type=t, (was 1017 bytes, now 303 bytes) -9738: sh::OutputHLSL::visitAggregate(Visit, TIntermAggregate*) type=t, (was 17609 bytes, now 7871 bytes) -14132: sh::OutputHLSL::visitBinary(Visit, TIntermBinary*) type=t, (was 17627 bytes, now 3495 bytes) -16417: sh::OutputHLSL::visitUnary(Visit, TIntermUnary*) type=t, (was 17245 bytes, now 828 bytes) Change-Id: Id0f87d72f6d7f1ab7b543f0d28d5a8b7c7db9ec7 Reviewed-on: https://chromium-review.googlesource.com/251090 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: bratell at Opera <bratell@opera.com>
Geoff Lang aff43af9 2015-02-19T16:23:19 Load all core WGL functions. BUG=angle:879 Change-Id: If204156e69480cd7e1e7c43db8496dd150ac9e15 Reviewed-on: https://chromium-review.googlesource.com/251241 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ea8ae897 2015-02-19T15:09:30 Expose FunctionsWGL::getProcAddress. Change-Id: I263f00e67eb3243c661de8f949933ea56e34d4b5 Reviewed-on: https://chromium-review.googlesource.com/251220 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 80d934bb 2015-02-19T10:16:12 Enable MSVS warning 4512. Fix up the missing DISALLOW_COPY_AND_ASSIGN macros and various small problems preventing us from turning on this warning. This should ensure we more often use the DISALLOW macro going forward. Change-Id: I2e1a9d23a31a51279a577fad8dffb8c1530e2ee8 Reviewed-on: https://chromium-review.googlesource.com/251100 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cooper Partin <coopp@microsoft.com> Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7c1f6f19 2015-02-19T18:56:09 Revert "Implement missing variants of abs/sign" This for some reason is failing angle_unittests: http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/13296 Happens across platforms. This reverts commit 3e142e47cc5b40564bcdba4252fd326bc28ca343. Change-Id: Ideb20457546c0dec10c9584182cc8d5ead42309d Reviewed-on: https://chromium-review.googlesource.com/251160 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>