- 24 Jan, 2018 9 commits
-
-
Yuly Novikov authored
Instead of hardcoded GL_BGRA8_EXT. Also change renderTargetFormat to GL_BGRA8_EXT in DisplayVk::generateConfigs() BUG=angleproject:2314 Change-Id: I47471add4e681fd0b8101d475c4a33ab59920c5c Reviewed-on: https://chromium-review.googlesource.com/881952 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Luc Ferron authored
I accidentally got the 3 files I was asked to revert part of the merge. This reverts them. Bug: angleproject:1695 Change-Id: I93a85776e890d0d35a5ff24973860006836c736f Reviewed-on: https://chromium-review.googlesource.com/884105Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@google.com>
-
Luc Ferron authored
Bug: angleproject:2072 Change-Id: I3e0b63f2a63e8769e3eab2be3aa0403317ed0707 Reviewed-on: https://chromium-review.googlesource.com/881707Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@google.com>
-
Jamie Madill authored
The VertexArrayVk is responsible for filling out the packed shader input info in ANGLE's packed PipelineDesc info structure. This packed info structure is used for Pipeline init and caching lookup. The prior design had this info depend on the active inputs in the current Program. This was undesirable because then, on a Program change, the ContextVk would have to call into the VertexArrayVk to invalidate this info. Instead, keep a working copy of the VertexArrayVk bits and only update the bits corresponding to dirty vertex attributes. This simplifies the cached state management a little bit for ContextVk. This also means we don't have to update the cached copy in the VertexArray on a change in VertexArray binding. Bug: angleproject:2163 Change-Id: I5ba74535367aed74957d17bdc61f882508562d0e Reviewed-on: https://chromium-review.googlesource.com/881703 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Luc Ferron authored
Bug: angleproject:1695 Change-Id: Ide0591ffdad5815385a4d805b320a32533bcc03a Reviewed-on: https://chromium-review.googlesource.com/883681Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@google.com>
-
Olli Etuaho authored
This makes it easier to allocate char arrays in the memory pool. TEST=angle_unittests BUG=angleproject:2267 Change-Id: I1673330f58968ea9d38c671b70a7a489276af863 Reviewed-on: https://chromium-review.googlesource.com/883805Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Yunchao He authored
BUG=angleproject:2315 Change-Id: I3ef289a6043745c822e1c9b0a1b363ac81292c4c Reviewed-on: https://chromium-review.googlesource.com/878021Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Yuly Novikov authored
Already limited by IMPLEMENTATION_MAX_ACTIVE_TEXTURES, but Nexus 5X doesn't support that many. BUG=angleproject:2314 Change-Id: I43b530ba25e9cf7055e74525f479fb10cc7394a2 Reviewed-on: https://chromium-review.googlesource.com/882443 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Yuly Novikov authored
Also TextureCOMPRESSEDSRGB8ETC2ImplicitAlpha1. Flaky on Mac Experimental Retina Release (NVIDIA) bot. BUG=angleproject:2190 Change-Id: Iad620808db3977625ccd7221f6c3eb7a453802e9 Reviewed-on: https://chromium-review.googlesource.com/882391Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 23 Jan, 2018 2 commits
-
-
Olli Etuaho authored
A new extension EGL_ANGLE_d3d_typeless_texture_client_buffer is added that allows creating EGL pbuffers from typeless D3D textures. The extension increases the flexibility of the API compared to plain EGL_ANGLE_D3D_texture_client_buffer. The colorspace for the created EGL pbuffer can be set by using the EGL_GL_COLORSPACE attribute. Internally this sets the ANGLE format of the buffer. There are new ANGLE formats that are used specifically for typeless textures, separate ones for SRGB and linear views into the D3D textures. The extension is only supported on the D3D11 backend of ANGLE. BUG=angleproject:2300 TEST=angle_white_box_tests Change-Id: I6a6cb873d2cc0dca0b7f18a0f2cd35e7bafcb7d8 Reviewed-on: https://chromium-review.googlesource.com/873917Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
All accesses to built-in symbols now happen through const-qualified pointers. This also encapsulates TSymbolTableLevel inside TSymbolTable. This prepares for statically allocating built-in symbols. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I473014d978daa765b4a733d761d6c08b28288776 Reviewed-on: https://chromium-review.googlesource.com/859959 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
- 22 Jan, 2018 2 commits
-
-
Luc Ferron authored
Bug: angleproject:1944 Change-Id: I646d8c346f616b34eabcc10e06a59d0c97472ec1 Reviewed-on: https://chromium-review.googlesource.com/879384Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
TIntermNode classes now contain all the logic for setting node types. Changing the constant values of constant union nodes from outside is also not necessary anymore. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ic10d41b1e5f93152df440a655057591dc1b783b0 Reviewed-on: https://chromium-review.googlesource.com/863626Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 20 Jan, 2018 1 commit
-
-
Jamie Madill authored
This file contains the Pipeline and RenderPass cache utils. Also renames renderervk_utils.h to vk_utils.h and the format utils file. Refactoring change only. Bug: angleproject:2163 Change-Id: I5113a9a2c6f0b0960d38e6c2d8e391fa2d9f5f6a Reviewed-on: https://chromium-review.googlesource.com/876505Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
- 19 Jan, 2018 5 commits
-
-
Yuly Novikov authored
Due to a bug in Adreno N5X Oreo driver BUG=angleproject:2304 Change-Id: I209d9b227557571f45a93aa68a003378e12402a1 Reviewed-on: https://chromium-review.googlesource.com/876995Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
Olli Etuaho authored
This optimizes memory and CPU use of symbol table initialization. This was measured to make a debug build of angle_unittests run around 10% faster on Windows. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Icd5272c6cfc0d5122550c403621bfa5944c92a83 Reviewed-on: https://chromium-review.googlesource.com/859958Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Qin Jiajia authored
The array stride is implementation-dependent if the storage layout is not standard layout. So this change will use std140 as the layout to fix the bug. BUG=767240,angleproject:2255 Change-Id: I21de52ebad6d27783eeade63d6fac81c0842085d Reviewed-on: https://chromium-review.googlesource.com/861313 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
This enables using constexpr types for built-in variables and some of the variables created in AST transformations. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ie85b3c9872a071a7c023ced013b14ad91cff7cee Reviewed-on: https://chromium-review.googlesource.com/868134 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Olli Etuaho authored
Array constructors that are used as a statement by themselves need to be pruned from the AST before writing HLSL output. This fixes an assert in OutputHLSL. BUG=angleproject:2307 TEST=angle_unittests Change-Id: Ib49461a4be173f3856f5a264ac0af8d818a61798 Reviewed-on: https://chromium-review.googlesource.com/874691 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
- 17 Jan, 2018 3 commits
-
-
Olli Etuaho authored
Function prototype nodes and symbol nodes already refer to symbols that have type information, so the type doesn't need to be copied to the TInterm* AST node classes. Now type is only stored in those AST node classes that represent other types of expressions. They use a new TIntermExpression base class for this. Since now we may use the TType from builtin symbols directly instead of copying it, building the mangled names of types in the correct memory pool is also required. The code now realizes the types of built-in variables when they get added to the symbol table. BUG=angleproject:2267 TEST=angle_unittests Change-Id: Ic8d7fc912937cb8abb1e306e58c63bb9c146aae9 Reviewed-on: https://chromium-review.googlesource.com/857005Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Olli Etuaho authored
The previous patch edited the generated file manually. Fix the script to generate the file so that angle_white_box_tests pass. BUG=angleproject:2300 TEST=angle_white_box_tests Change-Id: Ie8f182b515721a56d6a2da2dac316aa4e296f005 Reviewed-on: https://chromium-review.googlesource.com/870113Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Xinghua Cao authored
Add cases that bindImageTexture binds a single layer of a two-dimensional array, three-dimensional, or cube map texture. BUG=angleproject:1987 TEST=angle_end2end_tests.ComputeShaderTest.* Change-Id: I75883ef05c509100e5164a5add69167a41203101 Reviewed-on: https://chromium-review.googlesource.com/856320 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
- 16 Jan, 2018 4 commits
-
-
Geoff Lang authored
* Create a new libGLESv1_CM target. * Merge all autogenerated extension entry points into one file. * Allow creation of ES1 contexts. BUG=angleproject:2306 Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78 Reviewed-on: https://chromium-review.googlesource.com/865718 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org>
-
Frank Henigman authored
Gcc complains about an unused variable. Adjust a #include to work with the gyp build. BUG=none Change-Id: Ia94abf70f3a9bb7952eb53d1f0a3cfcca5df0836 Reviewed-on: https://chromium-review.googlesource.com/867655Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Jiajia Qin authored
BUG=angleproject:2188 Change-Id: I2b2aced542032c7c263f911ef1516af1d42190cc Reviewed-on: https://chromium-review.googlesource.com/846346 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
-
Olli Etuaho authored
When a EGL pbuffer is created based on a D3D SRGB texture using EGL_ANGLE_d3d_texture_client_buffer, SRGB conversions are performed as if it was an SRGB surface. The value of EGL_GL_COLORSPACE now reflects that correctly. If the pbuffer is bound to a texture and used as a framebuffer attachment, querying GL_FRAMEBUFFER_COLOR_ATTACHMENT also reflects that correctly. The behavior is the same on both the D3D backend, where there is no native interop involved, and on the GL backend using WGL_NV_DX_interop(2). There are a few limitations on the GL backend that relies on native interop: 1. SRGB conversion for textures created this way can't be disabled using the GL_FRAMEBUFFER_SRGB_EXT toggle that's exposed in ANGLE through EXT_sRGB_write_control. This is now documented in the EGL_ANGLE_d3d_texture_client_buffer spec. On the D3D backend this is not a problem since EXT_sRGB_write_control is not supported either way. 2. Creating a pbuffer out of a D3D11 texture with the format DXGI_FORMAT_B8G8R8A8_UNORM_SRGB does not work, even though it was listed as one of the supported formats in the EGL_ANGLE_d3d_texture_client_buffer spec. It's now mentioned that support for this format is optional. BUG=angleproject:2300 TEST=angle_white_box_tests Change-Id: I70ee0646680805e4469291a5b2ce59e92fda009e Reviewed-on: https://chromium-review.googlesource.com/866743Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 15 Jan, 2018 1 commit
-
-
Olli Etuaho authored
BUG=angleproject:2267 TEST=angle_unittests Change-Id: I25bd8baded9c13e75555578e4b61b99a56e0c702 Reviewed-on: https://chromium-review.googlesource.com/850974Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
- 12 Jan, 2018 2 commits
-
-
Frank Henigman authored
Add #!/usr/bin/python2 and the executable permission bit to all scripts where missing. BUG=angleproject:2209 Change-Id: Ib33017c17e579c371b89bbfbdb7136b870027dc5 Reviewed-on: https://chromium-review.googlesource.com/862987Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Dzmitry Malyshau authored
Note: by the time the old code used to call `getBaseLevelInternalFormat`, the base level image has already been updated with `redefine()` call above, thus the check `internalformat != storageFormat` wasn't correct. Change-Id: I3da6df54490d6e72e5094388ed7e39a4c7d920d2 Reviewed-on: https://chromium-review.googlesource.com/862256Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Dzmitry Malyshau <dmalyshau@mozilla.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
- 11 Jan, 2018 9 commits
-
-
Frank Henigman authored
Indicate scripts/bootstrap.py should be run by python2. TBR=jmadill@chromium.org BUG=angleproject:2209 Change-Id: I2ccfee1407cd4ce457aa28a374ac202b8281d40b Reviewed-on: https://chromium-review.googlesource.com/862618Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
-
Geoff Lang authored
This makes sure that the Device to DeviceImpl ratio is always 1:1 and avoids any potential double-deletion or unexpected deletion of DeviceImpl objects. BUG=742034 Change-Id: I778068ccd09b7478d3683123456062b94be242a1 Reviewed-on: https://chromium-review.googlesource.com/854627 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org>
-
Olli Etuaho authored
A virtual function to get the constant value of an AST node is added to TIntermTyped. This way a constant value can be retrieved conveniently from multiple different types of nodes. TIntermSymbol nodes pointing to a const variable can return the value associated with the variable, constructor nodes can build a constant value from their arguments, and indexing nodes can index into a constant array. This enables constant folding operations on constant arrays, while making sure that large amounts of data are not duplicated in the output shader. When folding an operation makes sense, the values of the arguments can be retrieved by using the new TIntermTyped::getConstantValue(). When folding an operation would result in duplicating data, the AST can just be left to be written out as is. For example, if the code contains a constant array of arrays, indexing into individual elements of the inner arrays can be folded, but indexing the top level array is left in place and not replaced with duplicated array literals. Constant folding is supported for indexing and comparisons of arrays. In case constant arrays are only referenced through foldable operations, the variable declarations will be pruned from the AST by the RemoveUnreferencedVariables step. BUG=angleproject:2298 TEST=angle_unittests Change-Id: I5b3be237b7e9fdba56aa9bf0a41b691f4d8f01eb Reviewed-on: https://chromium-review.googlesource.com/850973Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
-
Frank Henigman authored
Only exact version of Windows SDK works. Clarify how to do a release build. BUG=angleproject:2297 Change-Id: I2566b7e807a84c4edc3b457299036e67a64b5a36 Reviewed-on: https://chromium-review.googlesource.com/852553 Commit-Queue: Frank Henigman <fjhenigman@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-
Geoff Lang authored
Add an initialize function to match other impl objects and simplify the creation of DeviceImpls. BUG=742034 Change-Id: I569c8252d5d23c8af98835f6c08e7a3b640fc3f3 Reviewed-on: https://chromium-review.googlesource.com/854626Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Geoff Lang authored
It can be inferred from the presence of an owning display. BUG=742034 Change-Id: I6a33378f4256733da6d9658d47763153e431ad70 Reviewed-on: https://chromium-review.googlesource.com/854625Reviewed-by:
Yuly Novikov <ynovikov@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
-
Qin Jiajia authored
BUG=angleproject:1920 TEST=angle_end2end_tests Change-Id: I90bcd3bf5a078623b3a739615fbc7b157b6fb94c Reviewed-on: https://chromium-review.googlesource.com/808144Reviewed-by:
Jamie Madill <jmadill@chromium.org> Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
-
Jamie Madill authored
The PipelineDesc class is a 512-byte packed description of the entire Vulkan pipeline state. It uses the alignas keyword and some static asserts to verify that the structures are packed. This ensures that when ANGLE uses MurmurHash to hash the entire struct, and memcmp to check for identity, that there are no garbage padding bits. This CL does not implement the Pipeline cache, but it will help, since now we have a packed type that can be used as the key to a hash map. Bug: angleproject:2163 Change-Id: I16efa927f08d30d89a9c4c8943edd211c6878ac8 Reviewed-on: https://chromium-review.googlesource.com/829893 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org>
-
Yuly Novikov authored
Adreno's driver in Android Oreo follows the spec to the letter, and applies "#pragma STDGL invariant(all)" only to the outputs of a fragment shader, causing InvariantAllBoth test to fail. Since the wording of the spec doesn't match the intended usage of this pragma, ANGLE should flatten it to workaround spec conformant drivers. BUG=angleproject:1293 Change-Id: I9f8ad44adc3b958204b88805dba8c5b7964b3d9f Reviewed-on: https://chromium-review.googlesource.com/860920Reviewed-by:
Kenneth Russell <kbr@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
-
- 10 Jan, 2018 2 commits
-
-
Jamie Madill authored
This will be useful for the Vulkan pipeline state cache. This cache wants to pack the pipeline description very carefully into a specific number of bits, using the "alignas" keyword. Using this keyword requires an aligned allocator, which we can lift from Chromium's base/memory submodule. Also includes a unittest copied from Chrome. Bug: angleproject:2163 Change-Id: I25976be4610636db3f43552bba23d823f5a49a24 Reviewed-on: https://chromium-review.googlesource.com/837944Reviewed-by:
Corentin Wallez <cwallez@chromium.org> Reviewed-by:
Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
-
Jiajia Qin authored
Bug: angleproject:1595 Change-Id: I031beab818daca8a20726d7bff564649feefc1f3 Reviewed-on: https://chromium-review.googlesource.com/844214 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:
Geoff Lang <geofflang@chromium.org> Reviewed-by:
Jamie Madill <jmadill@chromium.org>
-