- 28 Sep, 2015 6 commits
-
-
Corentin Wallez authored
BUG= Change-Id: I58a19de9d5978aa4d65ac2ab1acd2fbd233ec6a2 Reviewed-on: https://chromium-review.googlesource.com/302463Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
Compilation failure on mac and linux. This reverts commit e19d7f90. Change-Id: I638c3ffebb8c7ad0e3fe2e1e65d6212487bfc6ae Reviewed-on: https://chromium-review.googlesource.com/302790Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
In DesktopGL, SRGB blending must be enabled or linear blending will be used. reland: Work around issues on AMD drivers where SRGB blending would be used on clears of linear attachments. Passes all dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.* tests (1106 new passing tests). BUG=angleproject:883 BUG=angleproject:885 Change-Id: I03fbb0910ce414552ba841099a177446d0ace7b6 Reviewed-on: https://chromium-review.googlesource.com/301702Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
These sample utils can also be useful for writing perf tests. BUG=angleproject:1164 Change-Id: I44b5d63b57bfce7a541442fd02cd729a1bab17f0 Reviewed-on: https://chromium-review.googlesource.com/301468Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Dian Xiang authored
BUG=angleproject:1160 This is the first step to BUG=angleproject:1160, optimizing GetTextureFormatInfo to use static switching rather than building maps and using the find function. Also reordered the includes in alphabetical, src files first format The next step is to modify the GetTextureFormatInfo not to build a map but to use static switching. The step after that is to use a JSON generator to generate the switching, hence refactoring TextureFormat to be in its own class so we only need to generate what's necesary. The helper functions such as swizzle texture format can also be done using the same approach. Hence, they're also refactored into their own files. Change-Id: I753f437ca0df69ee5584d254fe0d2ea8b09a857e Reviewed-on: https://chromium-review.googlesource.com/300288Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by:
Dian Xiang <dianx@google.com>
-
Geoff Lang authored
Passes all tests in dEQP-GLES3.functional.samplers BUG=angleproject:1162 Change-Id: I7713031a677aac2b41889a6b4297ab512e184863 Reviewed-on: https://chromium-review.googlesource.com/301582Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
- 25 Sep, 2015 3 commits
-
-
Corentin Wallez authored
BUG=angleproject:891 Change-Id: I4bc2817106c8170684a76972badd38c02c0abf0e Reviewed-on: https://chromium-review.googlesource.com/299852Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Reuse ExpressionParser that's also used for parsing preprocessor conditionals to parse line and file numbers in #line directives. According to recent Khronos discussions, the intent of the spec is that expressions in #line directives should be interpreted similarly to expressions in conditional directives, so reusing ExpressionParser is a natural way to implement this. This enables simple math operators operating on integers. There are a few unclear corner cases, but this approach is enough to support practical use cases and pass the dEQP tests. Valid line directives have one of the following forms: #line line-expression #line line-expression file-expression ExpressionParser is first run to parse the line-expression. In ambiguous cases the ExpressionParser consumes as much of the line as possible to form line-expression. Then, if end-of-line hasn't been reached, file-expression is parsed by running ExpressionParser again. As an example of an ambiguous case: #line 1 + 2 This could alternatively be interpreted to mean line-expression "1" and file-expression "+ 2" where + is the unary + operator, but ANGLE now interprets it to mean line-expression "1 + 2". Because of these ambiguous cases, a bison grammar that would parse multiple expressions on the same line couldn't be easily constructed, so this solution where ExpressionParser is run twice was chosen instead. The problematic corner cases are: - ExpressionParser uses 64-bit integers internally for evaluating the expression's value. It's possible to interpret the ESSL3 spec so that 32-bit integer wraparound behavior would be required also for #line directive expressions. - It's unclear whether the defined operator can be used in #line expressions. In this patch it is disabled. Hoping for further clarification from Khronos. - It's unclear how short-circuiting should affect the parsing of undefined identifiers in #line expressions. Now it's consistent with #if expressions (undefined identifiers are OK if they're short-circuited). dEQP expectations are updated for preprocessor tests, including ones not affected specifically by this change. BUG=angleproject:989 TEST=angle_unittests, dEQP-GLES3.functional.shaders.preprocessor.* (4 start passing), dEQP-GLES2.functional.shaders.preprocessor.* (4 start passing) Change-Id: I55c5bf75857da5de855cc600d3603ee19399f328 Reviewed-on: https://chromium-review.googlesource.com/300964Reviewed-by:Jamie Madill <jmadill@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com> Tested-by:
Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
This test probably triggers a driver bug. BUG=angleproject:1123 Change-Id: I81921e7faf51ac60f1175a04ee17e920a346059d Reviewed-on: https://chromium-review.googlesource.com/302461Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
- 24 Sep, 2015 5 commits
-
-
Geoff Lang authored
SamplerState is now only the members that are overridden by a sampler object, this makes it easy to update those specific members. Opted for getters and setters for each member in Texture and Sampler because it will be required to enable dirty bits for these states. Added maxAnisotropy to the SamplerState instead of texture state. The sampler objects extension mentions it should be there. BUG=angleproject:1162 Change-Id: I5aa6d702bd5915ee9df1976afef3c8c1f69d27c8 Reviewed-on: https://chromium-review.googlesource.com/300490 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
The GL layer can interact with the translator directly, to query all the active shader variables and call ShCompile. BUG=angleproject:1159 Change-Id: I334a9bef28f93cf85dd8cac0fb8542ac567cc3ec Reviewed-on: https://chromium-review.googlesource.com/299877Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This design follows the similar designs for Program, Framebuffer, etc. Because of the current design, share a mutable pointer with the Impl so the patch becomes a bit smaller and easier to review. In a follow- up patch we can move the shared code into the GL layer. BUG=angleproject:1159 Change-Id: Ib243e74779f23be51cdca80f1b5c6e5f3e36059d Reviewed-on: https://chromium-review.googlesource.com/299876Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This class logic will eventually move to the GL layer. Keep it in the Renderer layer for now for refactoring purposes. BUG=angleproject:1159 Change-Id: I91843099367f9a0293cc43ab98626bf79eb75ebf Reviewed-on: https://chromium-review.googlesource.com/299875Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This previously was D3D-only, but is required for every draw call. This completes the work of removing the D3D-specific Impl methods from ProgramImpl. Also add several regression tests to cover texture and sampler validation. Re-land with a fix for duplicate sampler active uniforms. Re-re-land with a fix for a test comparison warning on Linux. BUG=angleproject:1123 Change-Id: Iaf7b33861c07b9ceed4bd53ac2f010d35f05df45 Reviewed-on: https://chromium-review.googlesource.com/301712 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
- 23 Sep, 2015 8 commits
-
-
Geoff Lang authored
Causing failures on AMD OpenGL drivers for sRGB clears. This reverts commit 04b89c97. Change-Id: I51ee856d1c4d37882e5b1d1926415c398fa7ff5c Reviewed-on: https://chromium-review.googlesource.com/301721Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Build failure on Linux: In file included from ../../third_party/angle/src/tests/gl_tests/UniformTest.cpp:7: In file included from ../../third_party/angle/src/tests/test_utils/ANGLETest.h:10: ../../testing/gtest/include/gtest/gtest.h:1392:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare] if (expected == actual) { ~~~~~~~~ ^ ~~~~~~ ../../testing/gtest/include/gtest/gtest.h:1422:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here return CmpHelperEQ(expected_expression, actual_expression, expected, ^ ../../third_party/angle/src/tests/gl_tests/UniformTest.cpp:487:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here EXPECT_EQ(GL_SAMPLER_2D, type); ^ BUG=angleproject:1123 This reverts commit 6cbf4385. Change-Id: I95279b37d253e3ea78faa53f3773f2dc3d17df95 Reviewed-on: https://chromium-review.googlesource.com/302030Reviewed-by:Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Minmin Gong authored
Pack/unpack subimages is core features of GLES3. Those 2 extensions expose them to GLES2. BUG=angleproject:512 Change-Id: I6834cf5d4a91bc3430c60dcec29c449826fd6d93 Reviewed-on: https://chromium-review.googlesource.com/299790Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Minmin Gong <mgong@microsoft.com>
-
Cooper Partin authored
This change fixes rendering on FL9_3 with shaders that reference glPointSize and are not used with GL_POINTS rendering mode. A TDR occurs on some hardware because of missing vertex buffers specified by the vertex layout. Change-Id: Ie49b75f7177c32c7f021a0409d15c27b18140c4b Reviewed-on: https://chromium-review.googlesource.com/299719Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Cooper Partin <coopp@microsoft.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
In DesktopGL, SRGB blending must be enabled or linear blending will be used. Passes all dEQP-GLES3.functional.fragment_ops.blend.fbo_srgb.* tests (1106 new passing tests). BUG=angleproject:883 BUG=angleproject:885 Change-Id: I0dfb744faa811f10be47c5bd8295b368baf3b04b Reviewed-on: https://chromium-review.googlesource.com/298620Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This class uses no Impl-specific code. We can also do a similar code relocation for the gl::Shader class, but in several steps because it is a bit more complex. BUG=angleproject:1159 Change-Id: I4d3ce3253df0a2bdee1d98e46cfd4b999d86be6e Reviewed-on: https://chromium-review.googlesource.com/299874Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This previously was D3D-only, but is required for every draw call. This completes the work of removing the D3D-specific Impl methods from ProgramImpl. Also add several regression tests to cover texture and sampler validation. Re-land with a fix for duplicate sampler active uniforms. BUG=angleproject:1123 Change-Id: Iefef06e7901873c98bf2ba7864efd16a4c6435d3 Reviewed-on: https://chromium-review.googlesource.com/301581 Tryjob-Request: Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
This cleans up ExpressionParser so that the lexer only consumes one extra token in case the parser finishes. The parser will also finish with YYACCEPT once it has parsed a complete expression. This will make the preprocessor to generate a more informative unexpected token error instead of a syntax error if there are extra tokens after #if. This will also enable reusing ExpressionParser for parsing expressions in line directives. The format for a line directive that specifies both line and file numbers is as follows: #if line-expression file_expression ExpressionParser will need to be run twice for each line: first to parse line-expression and then to parse file-expression. For that reason, it is essential that ExpressionParser for line-expression stops before consuming more than one token of file-expression. BUG=angleproject:989 TEST=angle_unittests, dEQP-GLES3.functional.shaders.preprocessor.* Change-Id: I0bb92f733c18891eeddbc61e7c5bebdf1003559a Reviewed-on: https://chromium-review.googlesource.com/300962Tested-by:
Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Zhenyao Mo <zmo@chromium.org> Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
-
- 22 Sep, 2015 7 commits
-
-
Geoff Lang authored
Store index ranges in a new struct that tracks how many real indices were seen. Update index caching to key on primitive restart being enabled and update index counting functions to skip primitive restart indicies when needed. Passes dEQP-GLES3.functional.primitive_restart.* Change-Id: Id1e25a5adcdcd4e998836e8ff6679c64be4c3066 Reviewed-on: https://chromium-review.googlesource.com/297770 Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Austin Kinross authored
Before this change, eglCreateWindowSurface had to be called from one specific XAML thread, which may have been a different thread to the one where rendering was performed. This change fixes this, so eglCreateWindowSurface can be called from any thread. Change-Id: Ic383a508c223d1b0463e8a8f1d8e8d6880c26844 Reviewed-on: https://chromium-review.googlesource.com/300131Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Austin Kinross <aukinros@microsoft.com> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Andrew Bonventre authored
Change-Id: I729d3208b206e83f99e73002b45402c4f6f9f443 Reviewed-on: https://chromium-review.googlesource.com/301560Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Probably causing failures in the dEQP-GLES2 GL back-end tests: dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_both BUG=angleproject:1123 This reverts commit 6fa156b6. Change-Id: I3cc993c34aae4a108037ce81709b71d16ece814e Reviewed-on: https://chromium-review.googlesource.com/301580Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
This previously was D3D-only, but is required for every draw call. This completes the work of removing the D3D-specific Impl methods from ProgramImpl. Also add several regression tests to cover texture and sampler validation. BUG=angleproject:1123 Change-Id: I167cbc8f47b4a397d2ae6cc507bdac35168bcacd Reviewed-on: https://chromium-review.googlesource.com/299400Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
Some users get 404s when running 'git cl upload' because gclient attempts to upload as a reitveld patch. Change-Id: I8fb5a46480f91489a05fbff918a106312cf0118c Reviewed-on: https://chromium-review.googlesource.com/301474Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
dEQP tests enforce that the defined operator should be parsed even when it is generated as a result of macro expansion, even though this is undefined according to the C++ preprocessor spec. Implement support for this by putting the parsing for the defined operator inside MacroExpander. The operator gets processed right after it is generated by macro expansion. Parsing the defined operator is toggled with a boolean according to the context where MacroExpander is used. BUG=angleproject:989 TEST=angle_unittests, dEQP-GLES3.functional.shaders.preprocessor.* - 2 tests start passing: dEQP-GLES3.functional.shaders.preprocessor.conditional_inclusion.basic_2* Change-Id: I780e63bd4558253657d898685d62339017564a06 Reviewed-on: https://chromium-review.googlesource.com/300970Reviewed-by:Jamie Madill <jmadill@chromium.org> Tested-by:
Olli Etuaho <oetuaho@nvidia.com>
-
- 21 Sep, 2015 1 commit
-
-
Austin Kinross authored
Change-Id: If4ff4b966f5bd388d32c72a2d1bcf9cf29e6032d Reviewed-on: https://chromium-review.googlesource.com/297308Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Austin Kinross <aukinros@microsoft.com>
-
- 17 Sep, 2015 2 commits
-
-
Geoff Lang authored
Speculative fix for performance regression. BUG=532647 This reverts commit 9cf9bcbe. Change-Id: I53e41f6c17f89c400e38bfcdf3147946c27906c0 Reviewed-on: https://chromium-review.googlesource.com/300540Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
Caused significant slowdown in some chrome use cases that used glFinish or synchronous fences. BUG=532571 This reverts commit a53000b0. Change-Id: Id260e9ced472c409b2fa0b28b2b3dea99d412fdf Reviewed-on: https://chromium-review.googlesource.com/300491Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Geoff Lang <geofflang@chromium.org>
-
- 16 Sep, 2015 8 commits
-
-
Corentin Wallez authored
SetLowPriorityProcess's implementation can be shared between Mac and Linux so even though it isn't using a Posix API, it lives in the posix file. CreateOSPixmap needed to be implemented but will never be used by dEQP as our Mac EGL backend doesn't expose configs supporting pixmaps. Reland with a Linux compilation fix (forgot to delete SetLowPriorityProcess). BUG=angleproject:891 Change-Id: If8145501e1787d08d82402a6baa60a5404cac6b1 Reviewed-on: https://chromium-review.googlesource.com/299773Tested-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Corentin Wallez authored
This reverts commit 959e197c. BUG= Change-Id: I71ea2894c74be8fda80a59c99bc53f4fcb7e9115 Reviewed-on: https://chromium-review.googlesource.com/299873Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Tested-by:
Corentin Wallez <cwallez@chromium.org>
-
Dian Xiang authored
When a enum is given that is not a BACK, NONE, or COLOR_ATTACHMENTi where i ranges from 0 to MAX_COLOR_ATTACHMENT, an INVALID_ENUM should be returned rather than an INVALID_OPERATION. BUG=angleproject:1148 Change-Id: I3663f897face14f6ba46a15fb982efda6f4f4b05 Reviewed-on: https://chromium-review.googlesource.com/299312 Tryjob-Request: Dian Xiang <dianx@google.com> Tested-by:
Dian Xiang <dianx@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Zhenyao Mo <zmo@chromium.org>
-
Jamie Madill authored
This fixes a crash after calling eglTerminate, then using a previously initialized Display. BUG=None Change-Id: Ica974033d9da2ac15c07d6a39801781c2d776427 Reviewed-on: https://chromium-review.googlesource.com/299691Tested-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Dian Xiang authored
BUG=angleproject:1158 part a We only need to iterate and update the active attributes in a program. This can further be optimized by updating the cache more intelligently, possibly by marking attributes as "need update" when necessary Change-Id: I41e9c033116582c82a56b8d20ea245f06e8fa3d1 Reviewed-on: https://chromium-review.googlesource.com/299758Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tryjob-Request: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Zhenyao Mo <zmo@chromium.org> Tested-by:
Jamie Madill <jmadill@chromium.org>
-
Corentin Wallez authored
SetLowPriorityProcess's implementation can be shared between Mac and Linux so even though it isn't using a Posix API, it lives in the posix file. CreateOSPixmap needed to be implemented but will never be used by dEQP as our Mac EGL backend doesn't expose configs supporting pixmaps. BUG=angleproject:891 Change-Id: I7b53b44b3465045954ec8e5997f703525ece92d0 Reviewed-on: https://chromium-review.googlesource.com/299851Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tryjob-Request: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Corentin Wallez <cwallez@chromium.org>
-
Corentin Wallez authored
BUG=angleproject:891 Change-Id: I06ad3b25914bc9ec4541b38a9b160983b7dcb720 Reviewed-on: https://chromium-review.googlesource.com/299850Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Tested-by:
Corentin Wallez <cwallez@chromium.org>
-
hendrikw authored
The assert was checking the value (which is unitialized), rather than the pointer. Change-Id: Id8d57953b32b62739e64d88dedd26f0b15a2385f Reviewed-on: https://chromium-review.googlesource.com/299819Reviewed-by:
Jamie Madill <jmadill@chromium.org> Tested-by:
Hendrik Wagenaar <hendrikw@chromium.org>
-