- 23 Mar, 2018 7 commits
-
-
Yuly Novikov authored
In order to work with tools which intercept EGL and GLES calls. BUG=angleproject:2343 Change-Id: I63aec7a56648dc4b3e7f4aff7f7d1608709ba118 Reviewed-on: https://chromium-review.googlesource.com/920652 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Luc Ferron authored
I found a couple of bugs trying to enable polygon offset render states. This is just pre-work to get to a better state. Bug:angleproject:2353 Change-Id: If6af949a09af1340e870afb627ae427d01c6e77c Reviewed-on: https://chromium-review.googlesource.com/975631 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
This was missing from change: "ShaderVariable: separate fields for staticUse and active" BUG=angleproject:2262 Change-Id: I521e9f9a536756d7d8163220c1d56885308272a1 Reviewed-on: https://chromium-review.googlesource.com/978203Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Luc Ferron authored
Bug:angleproject:2358 Change-Id: I56a86de7cc21dee00a95f1d054d2940262797ca7 Reviewed-on: https://chromium-review.googlesource.com/974305Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Jamie Madill authored
This allow for better code reuse for the Indirect draw calls. It also cleans up the InputLayoutCache to be only responsible for caching input layouts, and moves the logic for maintaining state into StateManager11. Bug: angleproject:2389 Change-Id: I84aae164bf1b94a394743cf58650adfdcfc2c17a Reviewed-on: https://chromium-review.googlesource.com/948796 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
Move AST transformations to compiler/translator/tree_ops. BUG=angleproject:2409 TEST=angle_unittests Change-Id: I9c620e98707d22d005da6192fe7d1b4e8030aadd Reviewed-on: https://chromium-review.googlesource.com/975550Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
TFunction entries for built-ins don't need to store mangled names. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ia88e8bfa5357719c98d725dc3d00885dd59c9f59 Reviewed-on: https://chromium-review.googlesource.com/973241Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 22 Mar, 2018 4 commits
-
-
Yuly Novikov authored
BUG=chromium:759301 BUG=chromium:731958 Change-Id: I1b714f0bc1b92bbcbe202cae56fa6999054cc878 Reviewed-on: https://chromium-review.googlesource.com/976552Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Olli Etuaho authored
Thus far the compiler has used the "staticUse" flag to mark variables that should have rather been marked "active", meaning that the code may actually execute in a way that accesses the variable. There's a clear definition for this use of the term "active" in the GLES 3.0.5 spec, section 2.12.6, and in GLES 3.1 section 7.3.1. Having separate fields for recording static use and "activeness" of a variable is the first step to fixing this. According to the spec, usually only active resources should be considered when checking use against max limits. Also, only active uniforms get assigned a location. libANGLE code now correctly checks the active flag rather than the static use flag in these cases. The static use field still mirrors the active field for now, since some code in Chromium also needs to be fixed to use the active field correctly before the two can diverge. After Chromium is fixed, we can fix ANGLE so that static use information is recorded earlier during compilation and will accurately reflect whether variables are statically used. Currently the compiler only records variables once some static use may already have been pruned from the AST. BUG=angleproject:2262 TEST=angle_unittests, angle_end2end_tests Change-Id: I025bb71361246ae00c911a1f8b66ec045f665f29 Reviewed-on: https://chromium-review.googlesource.com/970962Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Move AST related utilities to compiler/translator/tree_util. BUG=angleproject:2409 TEST=angle_unittests Change-Id: I7567c2f6f2710292029263257c7ac26e2a144ac8 Reviewed-on: https://chromium-review.googlesource.com/966032Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jamie Madill authored
This test seems to be causing device lost. Bug: angleproject:2423 Change-Id: If759aa6478df89d1cf5a5fd199a6065300c4c8ec Reviewed-on: https://chromium-review.googlesource.com/974888Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 21 Mar, 2018 8 commits
-
-
Corentin Wallez authored
Change-Id: Id29e58d45665feffda2b1f5da6631ae22bdce744 BUG-chromium:815092 Reviewed-on: https://chromium-review.googlesource.com/974061Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Yuly Novikov authored
This reverts commit 3a465745. Reason for revert: Win10 driver version was fixed Original change's description: > Skip TransformFeedbackLifetimeTest.DeletedBuffer on Win Intel GL > > Due to wrong driver version on the bots. > > BUG=angleproject:2398 > > Change-Id: Ia6b69a24bfb0ded8848a791db6b540576ef2f57c > Reviewed-on: https://chromium-review.googlesource.com/957207 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:2398 Change-Id: I5c147a46ad04570d25d04ff6218fde6a72a21ea6 Reviewed-on: https://chromium-review.googlesource.com/973642Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Luc Ferron authored
The bug was with the readPixels not using the rowPitch, and not really with the support of npot. Bug:angleproject:2413 Change-Id: I09c0d87768bc29d3beb452ae83996cd4d2b4a600 Reviewed-on: https://chromium-review.googlesource.com/971830Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
-
Olli Etuaho authored
We rely on TSymbol::name() to generate names also for nameless parameters. Fix asserts to reflect this. BUG=chromium:823041 TEST=angle_unittests Change-Id: Ie9b8253a150e79965bf85d8a7f36643ada6c54cc Reviewed-on: https://chromium-review.googlesource.com/968242Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Jiawei Shao authored
This patch implements a new query target GL_PRIMITIVES_GENERATED_EXT for querying the number of primitives generated by geometry shader. BUG=angleproject:1941 TEST=dEQP-GLES31.functional.geometry_shading.query.primitives_generated* Change-Id: Icdc0d2d8be4ff4d589972eada2fa1f917d7bae4c Reviewed-on: https://chromium-review.googlesource.com/963793Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
The parameters of some built-ins are a subarray of the parameters of another built-in. In this kind of case they can point to the same parameters array, and just use a different parameter count. This shaves a few kilobytes from the binary size. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Id166340b4bf5be966bf8c62ce6cd88e5409f647a Reviewed-on: https://chromium-review.googlesource.com/968601Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
Desktop GLSL builtins can be accessed through functions in BuiltIn_autogen.h. They don't need to be included in symbol table lookups. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I8ba188a0d2584353e34159c2732c9e2bd420c168 Reviewed-on: https://chromium-review.googlesource.com/964447Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Yuly Novikov authored
This is moving all ANGLE Android tryservers to run on LUCI only. BUG=chromium:731958 BUG=chromium:759301 Change-Id: I302338b462f51c260afafc69aefff7bfdd89e87a Reviewed-on: https://chromium-review.googlesource.com/972610Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 20 Mar, 2018 5 commits
-
-
Yuly Novikov authored
Also add a build argument to build it as a shared library. BUG=angleproject:2343 Change-Id: Ia590632b94d71b10d3ee64974fa4f5b4f00c3a70 Reviewed-on: https://chromium-review.googlesource.com/954403Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Jiawei Shao authored
This patch adds link validation on the maximum number of active uniform blocks and shader storage blocks defined in the geometry shader. BUG=angleproject:1941 TEST=angle_end2end_tests Change-Id: Ieffc234981a3f32a569392786e8fa1c6623a7a23 Reviewed-on: https://chromium-review.googlesource.com/966491 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Lingfeng Yang authored
- Move the entry points common to GLES1/2 to GLES2 since GLES2 is the primary use case and we want to isolate the GLES1-only bits. - Update entry points with all the wanted extensions for Android. - Auto-generate GLES1-specific entry points and use them as a macro in Context.h. - Move all GLES1-specific renderer implementations to ContextGLES1.cpp + Fix getting pointer params in generate_entry_points.py BUG=angleproject:2306 Change-Id: If32bfd2b63657acecaec6adb10cabf39f06c4832 Reviewed-on: https://chromium-review.googlesource.com/959630Reviewed-by:
Lingfeng Yang <lfy@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
-
Corentin Wallez authored
This is moving all ANGLE Mac tryservers to run on LUCI only. BUG=chromium:815092 Change-Id: I6d06fd881db9eb139dfc16c058d67396b321c183 Reviewed-on: https://chromium-review.googlesource.com/971342Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
Instead of storing built-ins in a std::unordered_map, we now generate a series of switch statements using the hash value of the look-up string. This works similarly to earlier implementation of looking up unmangled built-ins. Those built-ins that need to be initialized at run-time are stored as member variables of TSymbolTable. This increases compiler init performance significantly, as well as increasing compiler perf test scores around 1-2%. Binary size is larger than before though. BUG=angleproject:2267 TEST=angle_unittests Change-Id: If1dcd36f0d2b30c2ed315cdcf6e831ae9fe70c94 Reviewed-on: https://chromium-review.googlesource.com/960031Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 19 Mar, 2018 5 commits
-
-
Courtney Goeltzenleuchter authored
Build was dying due to undefined symbol NDK_FPABI that was coming from include/KHR/khrplatform.h. Updating to latest eliminates the issue. Bug: angleproject:2411 Change-Id: I1896755e65b9a3afad6332caf0dd5d9b52cf2b28 Reviewed-on: https://chromium-review.googlesource.com/967235 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
In order to manage the life of descriptor sets better and allow allocating descriptor sets infinitely. Bug:angleproject:2392 Change-Id: Ia3c7145d85d697c04e8008e8d8839c428dd2e864 Reviewed-on: https://chromium-review.googlesource.com/966786 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
There was some duplicate switch/case pruning in the code in PruneEmptyCases and RemoveNoOpStatementsFromTheEndOfSwitchStatements. Combine the functionality of both AST transformations into PruneEmptyCases and remove the other transformation. The tests are improved to better cover the full functionality. BUG=angleproject:2402 TEST=angle_unittests, angle_end2end_tests --gtest_filter=*Switch* Change-Id: Ib74b6b9b455769ea15650e9653a9c53635342c49 Reviewed-on: https://chromium-review.googlesource.com/964081Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Luc Ferron authored
This is prerequisite work to dynamic uniform buffer updates. 1- Alignment parameter to be able to allocate by chunks of this alignment. 2- Out boolean to indicate if a new VkBuffer has been assigned on the allocate operation. Bug:angleproject:2392 Change-Id: If346e13200455febbe78045e908ae89c9dc93cdb Reviewed-on: https://chromium-review.googlesource.com/965612 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
Now that the migration has happened for these builders, switch to the new new configs. Bug: angleproject:2414 Change-Id: Ied26f54f8a679b613f354d6510abf1f79adc6e9e Reviewed-on: https://chromium-review.googlesource.com/968542Reviewed-by:
Andrii Shyshkalov <tandrii@chromium.org>
-
- 16 Mar, 2018 6 commits
-
-
Jamie Madill authored
After testing, it seems practially impossible to trigger a dependent state change in a Buffer that would affect XFB. Any buffer change would have to happen between a pause or begin/end of XFB, which would trigger a state update. Bug: angleproject:1155 Bug: angleproject:2389 Change-Id: Ic3c1dc7cec661a826909bb5647ddabda1d6fb7fc Reviewed-on: https://chromium-review.googlesource.com/948795Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jamie Madill authored
Required correct depth range implementation, matrix uniforms, etc. Bug: angleproject:2403 Change-Id: I84d12aae0c9eb760645d6b953461122bce7d31d1 Reviewed-on: https://chromium-review.googlesource.com/967265Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This is done via inserting a statement at the end of the "main" of the vertex shader which scales and offsets gl_Position.z. Relevant sections of the Vulkan spec are 23.4. Coordinate Transformations and OpenGL spec "2.12.1 Controlling the Viewport". Bug: angleproject:2406 Change-Id: Ibf5403b3ad06a5114a7de3be0a406d696cbb7dea Reviewed-on: https://chromium-review.googlesource.com/964733Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Jamie Madill authored
This is superseded by the DrawCallParams class. Instead of storing the context, we also return an error from the index range resolution. Bug: angleproject:2389 Change-Id: I9e7d58f006f51872eb3b52cbb9efbee16fff7ef6 Reviewed-on: https://chromium-review.googlesource.com/960570 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Jiawei Shao authored
This patch intends to clean up the link validations on interface blocks for better implementing program linking with geoemtry shader. 1. Move three interface block validation functions to the anonymous namespace of Program.cpp instead of the member function of class Program. 2. Use IsActiveInterfaceBlock everywhere we need to know if an interface block is active or not. BUG=angleproject:1941 Change-Id: Ic868d015e45f04d57ba382a2b447be00952fa4fc Reviewed-on: https://chromium-review.googlesource.com/965395 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jiajia Qin <jiajia.qin@intel.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Jiajia Qin authored
BUG=angleproject:2395 TEST=angle_end2end_tests Change-Id: Ife833a6573c49fc453c120ebc66765064d807b16 Reviewed-on: https://chromium-review.googlesource.com/954991Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 15 Mar, 2018 4 commits
-
-
Olli Etuaho authored
Parameter nodes are not needed - it's simpler to just create a TVariable object for each parameter when the TFunction is initialized. With this change we also store only one object per each parameter type used in built-in functions, instead of one array of TConstParameter entries for each unique parameter sequence. This simplifies code and reduces binary size and compiler memory use. Compiler perf does not seem to be significantly affected. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I2b82400dd594731074309f92a705e75135a4c82c Reviewed-on: https://chromium-review.googlesource.com/955589 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Brandon Jones authored
Fixes bug where mVertexAttribsNeedsTranslation was not being set when vertex attribute changes internally from DIRECT to DYNAMIC. This changes mVertexAttribsNeedTranslation to be set during any change in vertex attribute type. BUG=angleproject:2381 Change-Id: I91ae86624f0cb68bd8c41c3bcbdeb31fa1ccd9ed Reviewed-on: https://chromium-review.googlesource.com/951894 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
Bug:angleproject:2358 Change-Id: I4dc19f9e4cc7b51f215b57d440a108cdf17aec24 Reviewed-on: https://chromium-review.googlesource.com/960573Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Olli Etuaho authored
The translator already prunes no-ops and unreferenced variables, and this may result in case statements that are followed by nothing. Since the last case statement in as switch statement must always contain a statement to be valid GLSL, the translator must not leave empty case statements in place. They're now being pruned by the PruneEmptyCases AST transformation. This improves on the earlier RemoveEmptySwitchStatements AST transformation that did address empty switch statements but could not remove them if they had a case statement inside. BUG=angleproject:2402 TEST=angle_unittests Change-Id: Ieb9598a744078e45226d8fb7266d877f7835cf0c Reviewed-on: https://chromium-review.googlesource.com/962181 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 14 Mar, 2018 1 commit
-
-
Jamie Madill authored
Currently changing uniform values will not always be seen. Bug: angleproject:2392 Bug: angleproject:2403 Change-Id: Ie315a64ad6094f2c23e48e901de2e03e4d98516a Reviewed-on: https://chromium-review.googlesource.com/963296 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Luc Ferron <lucferron@chromium.org>
-