|
1ea85a13
|
2018-01-11T17:18:52
|
|
Add #! line to scripts/bootstrap.py.
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/862618
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
e1aa9219
|
2018-01-08T17:53:05
|
|
Create a new DeviceImpl each time one is requested from a DisplayImpl.
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>
|
|
ea22b7a5
|
2018-01-04T17:09:11
|
|
Constant fold array indexing and comparison
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/850973
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ed1390f8
|
2018-01-05T15:20:57
|
|
Doc fix and improvement.
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>
|
|
540a1dfe
|
2018-01-08T17:22:55
|
|
Refactor DeviceImpl creation.
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/854626
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
28334a41
|
2018-01-08T17:05:11
|
|
Remove the externallyForced method of DeviceImpl.
It can be inferred from the presence of an owning display.
BUG=742034
Change-Id: I6a33378f4256733da6d9658d47763153e431ad70
Reviewed-on: https://chromium-review.googlesource.com/854625
Reviewed-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>
|
|
cd3acf67
|
2017-12-05T16:27:25
|
|
ES31: Update block members static use
BUG=angleproject:1920
TEST=angle_end2end_tests
Change-Id: I90bcd3bf5a078623b3a739615fbc7b157b6fb94c
Reviewed-on: https://chromium-review.googlesource.com/808144
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f2f6d379
|
2018-01-10T21:37:23
|
|
Vulkan: Add PipelineDesc.
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>
|
|
b0accd45
|
2018-01-10T16:31:23
|
|
Flatten "#pragma STDGL invariant(all)" also for ESSL to ESSL translation
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/860920
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2cc2a727
|
2018-01-09T17:21:54
|
|
common: Add aligned memory allocator.
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/837944
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b6b9c63
|
2017-12-25T16:10:51
|
|
Use dirty bit for draw indirect buffer
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>
|
|
ea78d2bb
|
2018-01-09T12:55:27
|
|
Prune unreferenced variables with a constructor initializer
Treat aggregate constructors as having no side effects, which enables
pruning declarators that have a constructor initializer.
Some logic in RemoveUnreferencedVariables is fixed to make this work
correctly for structs. The bugs were previously not exposed since
constructors were treated as having side effects, but now that those
can be pruned the logic needs to be correct.
BUG=angleproject:2298
TEST=angle_unittests
Change-Id: I6fbe61a9e82065196baa29c200bf556fc21d8962
Reviewed-on: https://chromium-review.googlesource.com/856499
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0e1224c8
|
2017-12-26T14:11:15
|
|
fix bug for querying sample positions on D3D
BUG=angleproject:2290
TEST=dEQP-GLES31.functional.texture.multisample.samples_*.sample_position
TEST=TextureMultisampleTestES31.CheckSamplePositions*
Change-Id: If8b74c16d5c104215456e35b8922279be972cee3
Reviewed-on: https://chromium-review.googlesource.com/844062
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c74ec1a5
|
2018-01-09T15:23:28
|
|
Record gl_in array size in a symbol in ParseContext
Instead of referring to the gl_in symbol in the symbol table, create
a gl_in symbol with the right array size once the array size is known.
This makes the type of TIntermSymbol nodes pointing to gl_in
consistent with the variable type.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I31673d33526a91f8d069ee8d7d2f181a49665fd0
Reviewed-on: https://chromium-review.googlesource.com/857004
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0690e1aa
|
2017-12-21T20:51:38
|
|
Add a workaround to clamp gl_FragDepth
NVIDIA OpenGL drivers at least up to version 388.59 don't clamp
gl_FragDepth when it is written to a floating point depth buffer.
This bug is now worked around by clamping gl_FragDepth in the shader
if it is statically used.
BUG=angleproject:2299
TEST=angle_end2end_tests on NVIDIA
Change-Id: I61589b2b0dd2813c4901a157c8d37e470063773c
Reviewed-on: https://chromium-review.googlesource.com/840842
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b38dfde0
|
2018-01-04T15:49:03
|
|
Keep TIntermSymbol nodes consistent in PruneNoOps
Create new TVariables to change struct declaration qualifiers in
PruneNoOps so that the node doesn't end up with an inconsistent
qualifier from the variable.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I7f6cd557eb3e46f4ead4ffbe37d8960ff7776d10
Reviewed-on: https://chromium-review.googlesource.com/850673
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
47c9888c
|
2018-01-08T15:01:11
|
|
Skip SimpleOperationTest.DrawQuadAndSwap on Linux Intel Vulkan
Was flaky.
BUG=angleproject:2301
Change-Id: Id71cf6c43e133810c64535bbde494d12546b0adc
Reviewed-on: https://chromium-review.googlesource.com/854978
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
949b4f07
|
2018-01-08T11:15:38
|
|
Vulkan: Allow for no .git directory in build.
The SPIRV-Tools 'external revision generate' script is coded such that
it assumes a .git folder is present. This causes a problem for the
tarball build. We can fix this by using the same tooling we use for
ANGLE's commit id script to check if the .git directory is present
before running the generator. If it is missing, we insert a hard-coded
dummy header. Also use the 'DEPS' file as a placeholder for .git/HEAD
to check if the current revision needs updating.
Bug: chromium:799620
Bug: angleproject:2237
Change-Id: Icea8e9c66f1600df7dca2aaa45fe449f687f5b55
Reviewed-on: https://chromium-review.googlesource.com/854255
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eeda03b6
|
2018-01-05T17:26:29
|
|
EGL: Remove internal enum for NULL driver.
This is now updated in Chrome, so we can remove the last uses.
Bug: angleproject:2159
Change-Id: Ia31e42b8a685756ee70450be19a52248e3efa92f
Reviewed-on: https://chromium-review.googlesource.com/853119
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
66e2f8f2
|
2018-01-05T14:53:16
|
|
Fix doc typo.
Added missing quotes.
BUG=angleproject:2297
Change-Id: Ieb6ca4ae37786f48ad3c6f5dccefef25afce23a2
Reviewed-on: https://chromium-review.googlesource.com/852636
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
97f39b3c
|
2018-01-05T13:14:29
|
|
Vulkan: Add missing command queue reset to flush.
This was causing a heavy performance regression in the Vulkan perf
test. Local testing shows it recovers most of the performance gap
with this fix.
Bug: angleproject:2264
Bug: chromium:799372
Change-Id: Ia2bbf526b305e1b2e901d904574dbe5618e6e5ef
Reviewed-on: https://chromium-review.googlesource.com/852365
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4a66ef3d
|
2018-01-05T05:01:27
|
|
Add a test for gl_FragDepth clamping with float depth
The clamping doesn't happen on NVIDIA so this is a test that will
confirm a follow-up compiler workaround patch works properly.
BUG=angleproject:2299
Change-Id: I006b522d014e29d2a5e634dfb9cf827ee3bc0536
Reviewed-on: https://chromium-review.googlesource.com/852252
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
08a8ec88
|
2017-12-27T13:31:11
|
|
ES31: Support bindImageTexture on Texture3D/Texture2DArray/TextureCube
for compute shaders on D3D
BUG=angleproject:1987
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I075296ac3b6796a334929699c16f2399d7915e51
Reviewed-on: https://chromium-review.googlesource.com/844063
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
765924f0
|
2018-01-04T12:48:36
|
|
Fold ternary and comma ops only after parsing is done
In case folding a ternary op or a comma op would change the qualifier
of the expression, the folding is deferred to a separate traversal
step.
After this there are no more cases where the type of a TIntermSymbol
node needs to differ from the type of the variable it is referring to.
There are still some cases where some parts of TIntermSymbol type are
changed while keeping the TVariable type the same though, like when
assigning array size to gl_PerVertex nodes or sanitizing qualifiers of
struct declarations.
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: I1501c8d361f5f765f43ca810d1b7248d9e2c5986
Reviewed-on: https://chromium-review.googlesource.com/850672
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e9d7f2d1
|
2017-12-26T15:35:30
|
|
ES31: Skip dEQP tests geometry_shading.vertex_transform_feedback.*
This patch labels geometry_shading.vertex_transform_feedback.* as
"SKIP" instead of "FAIL" to fix some failures in dEQP tests.
OpenGL ES 3.1 extension GL_EXT_geometry_shader requires additional
validations on transform feedback, which hasn't been implemented
in ANGLE, so geometry_shading.vertex_transform_feedback.* fail just
after beginTransformfeedback(). As endTransformfeedback() isn't
called in dEQP function resetStateES():
1. An error occurs in this function when trying to clear transform
feedback.
2. Some of the tests afterwards also fail because it isn't allowed
to change active program by useProgram() when transform feedback
is on.
So it is better to skip these tests before ANGLE supports these new
features.
BUG=angleproject:1941
Change-Id: I8834f71e6a655f18118ee4ecf26f4118da6de2f1
Reviewed-on: https://chromium-review.googlesource.com/843955
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f3e23295
|
2018-01-04T18:19:21
|
|
EGL: Expose NULL driver device selection.
This makes the device type selection part of the ANGLE platform
extension. We currently support NULL driver selection on all
available back-ends (although on the NULL back-end, it already
has no device type). Optionally we could expose certain features
of this as separate extensions.
This currently also supports the old hidden enum, until we can
update Chrome and consolidate to the new exposed official enum.
Bug: angleproject:2159
Change-Id: I85d0811098e644e8192c207673af9e18ed7c1da2
Reviewed-on: https://chromium-review.googlesource.com/846021
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d22cc5cb
|
2018-01-04T17:15:57
|
|
Vulkan: Use correct Linux link flags for layers.
From third_party/vulkan-validation-layers/src/layers/CMakeLists.txt
Otherwise, there is a conflict between global functions with same name
from different layers and the loader.
Conflict is resolved by -Bsymbolic.
BUG=angleproject:2296
Change-Id: I40859326626c3865ba346c6e817b7c512735054e
Reviewed-on: https://chromium-review.googlesource.com/850727
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c405ae71
|
2017-12-06T14:15:03
|
|
Optimize Vertex Shader Attribute Type Validition
Improves ValidateVertexShaderAttributeTypeMatch by storing vertex
attributes types into masks for quick comparisons when needed. This shows
2% improvement to glDrawElements for the aquarium workload.
BUG=angleproject:2202
Change-Id: I87fa3d30c3d8cdba6dfd936cd1a41fd27b1c6b77
Reviewed-on: https://chromium-review.googlesource.com/814795
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
91586494
|
2017-12-20T14:18:13
|
|
Allow MapResource to return context loss GL error
Returns an OOM error to avoid
query the context for status should Map fail.
BUG=angleproject:2284
Change-Id: I4d35ef05c76fcc69bdab19f88c39a415d13ee116
Reviewed-on: https://chromium-review.googlesource.com/837519
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fa920ebb
|
2018-01-04T11:45:50
|
|
Entry Points: Auto-generate extensions EPs.
This is partially complete - it is missing the auto-gen for custom
ANGLE and Chromium extensions that aren't present in gl.xml. We
can upstream some of these extensions, but will also need to make
custom handling for some extensions that are too volatile or under-
specced to upstream to Khronos.
This also tweaks some of the Context method names to match what the
auto-generator expects. It also updates some TexStorage entry points.
Also includes a specialized error return value for glTestFenceNV.
Also removes the TexImage3DOES entry point which was neither used
nor accessible to the application.
Bug: angleproject:2263
Change-Id: I3667c22b1b15f84ab4c7dfecb5745aaf73d11e76
Reviewed-on: https://chromium-review.googlesource.com/846420
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c71862aa
|
2017-12-21T12:58:29
|
|
Store referenced interface blocks in a cleaner data structure
The previous code was hard to read since the referenced interface
blocks stored a different type of node depending on if the interface
block was instanced or not.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ie8fdb61a17280ca0875159702f819b884d08706b
Reviewed-on: https://chromium-review.googlesource.com/839443
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
02f15239
|
2017-12-27T10:10:28
|
|
Clear error logs when starting a new link process
This patch intends to fix a bug in logging link errors.
OpenGL ES requires glGetProgramInfoLog return a string
that contains information about last link or validation
attempt on a program object (GLES 2.0 Chapter 6.1.8,
GLES 3.0 Chapter 6.1.12). So all the link error logs
should be cleared when a new link process is begun.
This patch also removes several redundant allocations
of mLazyStream in ProgramD3D::compileProgramExecutables.
Calling "<<" on InfoLog objects will initialize its
member mLazyStream from heap, so we will skip using "<<"
if there is actually nothing to output.
BUG=angleproject:2295
TEST=angle_end2end_tests
Change-Id: Ib81fffd3d05919a8ebccd9145ff780548ca86a70
Reviewed-on: https://chromium-review.googlesource.com/848324
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bbd9d4c6
|
2017-12-21T12:02:00
|
|
Use TVariable instead of TIntermSymbol for variables
This removes unnecessary indirection. It's easier to just create
TVariables in createSamplerSymbols, and to track referenced variables
using TVariable pointers instead of TIntermSymbol pointers.
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: Id1e75e04da084eb9026f581f22070b27a45615ba
Reviewed-on: https://chromium-review.googlesource.com/839442
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
47c8ea3f
|
2018-01-03T18:27:59
|
|
Vulkan: Fix looped clears.
These were broken by command re-ordering. The first problem was that
the Framebuffer RenderNode was not correctly being flagged as dirty.
This is fixed by keeping a serial instead of a bool to track the
RenderNode's cleanliness. The second issue was that an image layout
transition was being set with incorrect bits. Fix this by using the
correct access mask.
This fixes angle_perftests's Vulkan render test.
Bug: angleproject:2264
Bug: chromium:798866
Change-Id: I268b0f7aeb2c5e22892f6ef59dec62391b30bfb4
Reviewed-on: https://chromium-review.googlesource.com/848539
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6df487ef
|
2017-12-20T19:12:57
|
|
Move angle_enable_* inside declare_args().
This allows enabling and disabling parts of the build via gn args,
similar to what gyp allowed.
BUG=angleproject:1569
Change-Id: Ia95c134f98f8941408df96b1d4e2563e713a9ef2
Reviewed-on: https://chromium-review.googlesource.com/838260
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fc3463da
|
2018-01-03T13:46:21
|
|
HandleAllocator: Fix heap ordering using std::greater.
The default heap ordering is to return the greatest element in the
heap. Since the handle allocator expects a minimal return value on
a new allocation, this caused a bug. The bug is triggered by reserving
handles, allocating new handles, then freeing the handles and
allocating again with the same allocator. Fix the bug by using
std::greater instead of std::less, which will make the heap
return the smallest value instead of largest.
Also adds some logging debugging code for the handle allocators.
Bug: angleproject:1458
Change-Id: Ibef5dcbed0a664ccad0e0335f081e2355162584b
Reviewed-on: https://chromium-review.googlesource.com/848644
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
36937a64
|
2018-01-03T14:03:44
|
|
Revert "Enable depth buffer to workaround driver bug on Intel windows"
This reverts commit 63ba357c093954d2bc475867e1296fbf5afc1d37.
Reason for revert: May be causing Windows GPU.FYI bot failures.
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20Release%20%28Intel%20HD%20630%29/1443
maps_pixel_test on Intel GPU:
Unexpected Failures:
* gpu_tests.maps_integration_test.MapsIntegrationTest.Maps_maps
webgl2_conformance_tests on Intel GPU:
Unexpected Failures:
* gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_fboinvalidate_default
* gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_fboinvalidate_sub
Bug: chromium:798757
Original change's description:
> Enable depth buffer to workaround driver bug on Intel windows
>
> Rendering with depth buffer disabled and stencil buffer enabled
> leads to memory leak if we set viewport a large size on Intel
> windows platforms. So we enable depth buffer if stencil buffer
> is enabled to workaround this issue.
>
> TEST=gl_test.exe --gtest_filter=GLClearFramebufferTestWithParam/GLClearFramebufferTest.ClearDepthStencil/0
> TEST=conformance/rendering/rendering-stencil-large-viewport.html
> TEST=RenderStencilBufferTest.DrawWithLargeViewport/ES3_D3D11
>
> BUG=782317
>
> Change-Id: Idb185db296f13e3fa897534514e198651a56439f
> Reviewed-on: https://chromium-review.googlesource.com/809574
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=zmo@chromium.org,geofflang@chromium.org,jmadill@chromium.org,kbr@chromium.org,cwallez@chromium.org,yunchao.he@intel.com,jiajia.qin@intel.com,xinghua.cao@intel.com,bryan.bernhart@intel.com,yizhou.jiang@intel.com,yang.gu@intel.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: 782317
Change-Id: I7e29da683b22fd4640c230598c7b220cfae6a177
Reviewed-on: https://chromium-review.googlesource.com/848133
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8b5e8fdb
|
2017-12-15T14:59:15
|
|
Replace remaining usage of TName with TSymbol
TName used to contain just a subset of the information stored in
TSymbol. It makes more sense to use TSymbol directly instead of
converting it to TName.
This also improves type safety a bit by making some functions only
take in TVariable or TFunction instead of the more generic TName.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Icb46923c25d33ebbbbc06ddc487da25957dda771
Reviewed-on: https://chromium-review.googlesource.com/829143
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
93b059db
|
2017-12-20T12:46:58
|
|
Index symbols by id in OutputHLSL
This is cleaner than indexing them by their name string.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I0d0ef5e3f6a3f26c94f096b086cdf3da40d495e4
Reviewed-on: https://chromium-review.googlesource.com/845559
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d8724a94
|
2017-12-29T18:40:36
|
|
Start D3D constant register allocations from 1 on NVIDIA
Recent NVIDIA drivers have a bug where a specific optimized path
inside the driver doesn't handle constant register 0 correctly. Work
around this by starting constant register allocations from 1. This
should make sure that the bug doesn't trigger if the ordering of
uniforms is changed on the D3D backend.
The repro case seems to require some specific driver state to be set
that's used inside Chromium. Because of this we have not been able to
develop a standalone test case so far.
The maximum number of available uniform slots is reduced accordingly.
This should not take them below required minimums in the spec.
BUG=angleproject:2294
TEST=WebGL tests on passthrough command buffer,
angle_end2end_tests --gtest_filter=*GLSLTest*Uniform*
Change-Id: I92fff71efe5432ea7f15a7e90d497492514c65dc
Reviewed-on: https://chromium-review.googlesource.com/847481
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
910a3daf
|
2017-11-15T09:40:11
|
|
ES31 program query: support TRANSFORM_FEEDBACK_VARYING
TRANSFORM_FEEDBACK_VARYING corresponds to the set of output variables
in the last non-fragment stage of program that would be captured when
transform feedback is active. The resources enumerated by this query
are listed as specified by the most recent call to
TransformFeedbackVaryings before the last call to LinkProgram.
This mainly collects these resources for query.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTest*
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*
Change-Id: I0655b12c6d82cef1b44d4ca57ea55bb60d1f78fb
Reviewed-on: https://chromium-review.googlesource.com/770450
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c8c9a24a
|
2018-01-02T13:39:00
|
|
Entry Points: Refactor generator script.
This cleans up some of the organization of the python generator. It
will make the extension entry point generation simpler.
It also changes the header guards to use more underscores, which
produces a small diff. Also updates the copyright year in a few
generated files.
Bug: angleproject:2263
Change-Id: I42f061c24a6cfcd8328c56c57eaed9ca6c7bb293
Reviewed-on: https://chromium-review.googlesource.com/846306
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c33f1e8c
|
2017-12-29T16:55:29
|
|
Simplify creating the call DAG
Don't copy function name strings unnecessarily and traverse function
body nodes manually to avoid some extra traversal steps.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ie010aabcb8bc78fa6abce397ea2bdd9092e74187
Reviewed-on: https://chromium-review.googlesource.com/847552
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d078c681
|
2018-01-02T11:50:24
|
|
VertexArray: Add enabled attribs bitmask.
This replaces the "max enabled attrib" integer with a bitmask of
enabled attribs. Should have better worst-case performance (only
attribute 15 is enabled) and similar best-case performance (when
only attribute 0 is enabled).
This might also help implementing validation optimizations.
Bug: angleproject:2202
Change-Id: I5cbb533c3af23851a42c80a6dc409a0da84e87c3
Reviewed-on: https://chromium-review.googlesource.com/847284
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ffa2cd04
|
2017-12-28T14:57:53
|
|
Entry Points: Speed up auto-gen.
This refactors the auto-generation script to use a simpler XML
iteration. It will only query the Xpath once per script, instead
of once per entry point. This speeds up execution significantly.
Also this change sorts the entry points alphabetically instead
of having them appear in the order they appear in the XML. This
gives a more consistent ordering.
Bug: angleproject:1309
Change-Id: Ifa1110af786b91ad0e6ff1cd3707e17666d398a5
Reviewed-on: https://chromium-review.googlesource.com/846419
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
73618601
|
2017-12-20T15:47:15
|
|
ES31: Clean up Program::link
This patch intends to solve some structure and coding style issues
in Program::link to make it easier to support linking program with
geometry shader.
1. Move all the shader specific validations to linkValidateShaders.
Geometry shader related link validations can also be added here.
2. Rename functions with "VertexAndFragment" to "Graphics" because
these functions will also be responsible for the validations on
geometry shader.
3. Refer uniforms by pointer when validating uniforms.
4. Re-declare functions to 'static' if we can and capitialize the
first letter of all static functions in Program.h.
BUG=angleproject:1941
Change-Id: I46608e86bddc12d95cbbbf9a85803d07ccf843d8
Reviewed-on: https://chromium-review.googlesource.com/836149
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
63ba357c
|
2017-12-06T10:25:40
|
|
Enable depth buffer to workaround driver bug on Intel windows
Rendering with depth buffer disabled and stencil buffer enabled
leads to memory leak if we set viewport a large size on Intel
windows platforms. So we enable depth buffer if stencil buffer
is enabled to workaround this issue.
TEST=gl_test.exe --gtest_filter=GLClearFramebufferTestWithParam/GLClearFramebufferTest.ClearDepthStencil/0
TEST=conformance/rendering/rendering-stencil-large-viewport.html
TEST=RenderStencilBufferTest.DrawWithLargeViewport/ES3_D3D11
BUG=782317
Change-Id: Idb185db296f13e3fa897534514e198651a56439f
Reviewed-on: https://chromium-review.googlesource.com/809574
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2768bc8a
|
2017-12-12T11:51:48
|
|
Clean up creating constant folded nodes
It's not necessary to set the qualifier on folded nodes separately,
they always use the qualifier of the node being folded.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Id2581ef4cae42d7137fbe0caf18c3fcacbf954c6
Reviewed-on: https://chromium-review.googlesource.com/847553
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
4728bdc8
|
2017-12-20T17:51:08
|
|
Unify looking for symbols with a specific name in the AST
Keep only one traverser for looking up symbol nodes by name instead
of having two largely identical ones.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I36e906258180e22b7b1353cab79d90266d99fa0e
Reviewed-on: https://chromium-review.googlesource.com/836895
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
492b5f51
|
2017-12-13T09:39:27
|
|
ES31: Support struct arrays as Geometry Shader inputs
This patch adds the support of struct arrays as valid
geometry shader user-defined inputs.
Struct arrays are accepted as geometry shader inputs to
match the vertex shader outputs that are also declared
as structs.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: I0b5d545b10e9dda576a1c96d7c93ec2450611e9e
Reviewed-on: https://chromium-review.googlesource.com/823622
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
8c3988c5
|
2017-12-21T14:44:56
|
|
Vulkan: Use one pipeline layout for all Programs.
This simplifies the pipeline state object caching. We will not need
to use any extra bits to cache based on program properties - instead
all programs will be compatible. The pipeline layout strucutre is
described in the design docs. It currently only has two bind groups:
the first for default uniforms, and the second for Textures. In the
future we might re-organize this to handle driver uniforms, dynamic
push constants, and/or program uniform buffers with ES 3.0.
Instead of storing only the Textures that are required by a Program,
we reserve space for the maximum possible Texture units. We might have
to revisit this very simple design in the future to support texture
arrays, which are handled specially in Vulkan.
Bug: angleproject:2163
Change-Id: I3e1656c2c73045aed56838a5f1267b246a623362
Reviewed-on: https://chromium-review.googlesource.com/837943
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bed35d76
|
2017-12-20T16:36:26
|
|
Don't query names of empty symbols
This makes it possible to return a reference from TSymbol::name()
instead of a pointer. This is safer since it completely avoids the
possibility of a nullptr dereference. An assert is making sure that
the function is not being called for empty symbols.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I44279f65989dbb828322843fc0216ba84d91dedf
Reviewed-on: https://chromium-review.googlesource.com/836894
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
49ac74bd
|
2017-12-21T14:42:33
|
|
Vulkan: Implement command re-ordering.
This introduces a new CommandBufferNode class. Nodes are linked
together to form a graph based on their dependencies. When the app
triggers a readback or swap, the graph is flushed entirely. This
sends the queued ANGLE Vulkan work to the Vulkan queue which is
then processed on the GPU with the right dependencies.
This design allows us to save on some unnecessary RenderPass creation
and also allows us to know what load/store ops to use. It also allows
us to take advantage of the Vulkan automatic RenderPass transitions
for performance. Load/Store ops and automatic transitions will be
implemented in later patches.
Bug: angleproject:2264
Change-Id: I0e729c719e38254202c6fedcede4e63125eb4810
Reviewed-on: https://chromium-review.googlesource.com/780849
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b8cb939f
|
2017-12-20T14:23:19
|
|
Fix tracking variables in folded ternary operators
The result of folding a ternary operator may be a TIntermSymbol node
where the qualifier doesn't match the qualifier of the variable that
the node is referring to.
Get the qualifier from the variable instead of directly from
TIntermSymbol when collecting variables in CollectVariables or when
tracking referenced variables in OutputHLSL.
BUG=angleproject:2288
TEST=angle_unittests, angle_end2end_tests
Change-Id: If294a7fe9dca50f2ebcea3feff887e72a521d395
Reviewed-on: https://chromium-review.googlesource.com/836893
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
8a57b468
|
2017-12-28T12:25:03
|
|
Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
Second re-land fixes git.bat access on developer machines.
Re-landing with upstream fixes to the layers so they no longer
need to copy the parameter validation errors to the current
working directory of the layer generation. Also includes fixes
for the GCC build.
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
This second step re-enables Vulkan and includes the updated build.
Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.
Also includes a fix for an incorrect memory barrier.
Bug: angleproject:2237
Change-Id: Ic1a3ad7458bb743d7279a1af9334693ab6cb59d6
Reviewed-on: https://chromium-review.googlesource.com/845859
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
007530ea
|
2017-12-28T14:27:04
|
|
Entry Points: Refactor Extensions Part 2.
This moves the validation and entry point files to use a
consistent syntax. This will facilitate auto-generation.
Bug: angleproject:2263
Change-Id: If5d06e97db66783d7b3d7fb1d6365f8218d956ae
Reviewed-on: https://chromium-review.googlesource.com/846022
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f095799b
|
2017-12-22T11:10:04
|
|
Fix accessing the name of a nested struct definition
When generating an error message about the struct nesting limit, the
code should make sure that the struct definitions are not nested.
While nested struct definitions by themselves are also an error,
they're not a syntax error so parsing will continue after encountering
them.
This fixes a regression from commit: Don't allocate name strings for
empty symbols.
BUG=chromium:797156
TEST=angle_unittests
Change-Id: I4149fbe874c0e7ec90e690aec078ccaf7313eab0
Reviewed-on: https://chromium-review.googlesource.com/842643
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
aaa55bfa
|
2017-12-28T11:20:30
|
|
Index symbols by id in ValidateOutputs
This is cleaner than indexing them by their name string.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I6cdc4125fadb6c7049ad8664e8a66da2a9a5bb8d
Reviewed-on: https://chromium-review.googlesource.com/836892
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
06f86377
|
2017-12-22T19:28:35
|
|
Revert "Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)""
This reverts commit 755a9317ff1ec983f2704fc9f4619cac49992960.
Reason for revert: Broke local win build. crbug.com/797253
Original change's description:
> Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
>
> Re-landing with upstream fixes to the layers so they no longer
> need to copy the parameter validation errors to the current
> working directory of the layer generation. Also includes fixes
> for the GCC build.
>
> This hasn't been updated in a while, so there are many changes.
> It should also include better validation for memory barriers.
>
> Also includes updated builds for SPIRV Tools and glslang.
> A few pull requests need to land before landing this in ANGLE.
>
> This second step re-enables Vulkan and includes the updated build.
>
> Includes a workaround for parameter_validation.h no longer being
> auto-generated, and the stale file clobbering the build.
>
> Also includes a fix for an incorrect memory barrier.
>
> Bug: angleproject:2237
> Change-Id: I1ed87ecfa84f51ee1edf6a8581d9b3c8f9a6f26e
> Reviewed-on: https://chromium-review.googlesource.com/834429
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=fjhenigman@chromium.org,jmadill@chromium.org
Change-Id: I605d72207d64c7d0853678595e255b74ad69d887
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2237
Reviewed-on: https://chromium-review.googlesource.com/842918
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
2b7bbc28
|
2017-12-21T17:30:38
|
|
Entry Points: Refactor Extensions Part 1.
This moves the validation and entry point files to use a
consistent syntax. This will facilitate auto-generation.
Bug: angleproject:2263
Change-Id: Ica2dbffff3898103c6827ae7f6b1154a45d14a85
Reviewed-on: https://chromium-review.googlesource.com/841345
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b6af22b5
|
2017-12-15T14:05:44
|
|
Store TVariable* in TIntermSymbol instead of storing id
This is an intermediate step to only storing a TVariable * in
TIntermSymbol instead of copying the name.
This makes it possible to get a constant value out of a TIntermSymbol
without doing a symbol table lookup.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ibff588241a4ad4ac330063296273288b20a072c9
Reviewed-on: https://chromium-review.googlesource.com/829142
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
755a9317
|
2017-12-21T14:34:05
|
|
Re-land "Vulkan: Roll loader/validation layers SDK. (2/2)"
Re-landing with upstream fixes to the layers so they no longer
need to copy the parameter validation errors to the current
working directory of the layer generation. Also includes fixes
for the GCC build.
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
This second step re-enables Vulkan and includes the updated build.
Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.
Also includes a fix for an incorrect memory barrier.
Bug: angleproject:2237
Change-Id: I1ed87ecfa84f51ee1edf6a8581d9b3c8f9a6f26e
Reviewed-on: https://chromium-review.googlesource.com/834429
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
beb6dc74
|
2017-12-14T16:03:03
|
|
Always use TFunction instead of TFunctionSymbolInfo
This reduces unnecessary memory allocations and conversions between
different objects containing the same data.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I87316509ab1cd6d36756ff6af7fa2b5c5a76a8ea
Reviewed-on: https://chromium-review.googlesource.com/827134
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
1bb8528c
|
2017-12-14T13:39:53
|
|
Remove TFunctionSymbolInfo from TIntermAggregate
All the information stored in TFunctionSymbolInfo was duplicated from
the TFunction that the aggregate node pointed to.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I1f5574ab0416e5cae00c3dae6fc11d2fe1fa128c
Reviewed-on: https://chromium-review.googlesource.com/827065
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
340b5771
|
2017-12-21T11:42:07
|
|
Vulkan: Roll loader/validation layers SDK (1.75/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
This intermediate step rolls Vulkan again to include upstream
fixes to the layers so they no longer need to copy the parameter
validation headers to the current working directory. The prior
changed missed a second generator script.
Bug: angleproject:2237
Change-Id: Ia6767af538c50e340ea5a68c69a2863c9fd9061d
Reviewed-on: https://chromium-review.googlesource.com/840080
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
62fcf62a
|
2017-11-30T16:16:12
|
|
ES31: Add DispatchComputeIndirect suport for OpenGL backend
BUG=angleproject:2270
TEST=dEQP-GLES31.functional.compute.indirect_dispatch.*
Change-Id: Id062a80188b2a37f28833aaae8e6d31bac382276
Reviewed-on: https://chromium-review.googlesource.com/802763
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c6faa974
|
2017-12-20T19:50:10
|
|
Skip UniformBufferTest.SimpleBindingChange on Mac NVIDIA GL
Unskip UniformBufferTest.SimpleBufferChange,
which was skipped by mistake instead of this test in
https://chromium-review.googlesource.com/833287
BUG=angleproject:2287
Change-Id: Id79821b26ad38ed07d1193b717ad222df3bb58fe
Reviewed-on: https://chromium-review.googlesource.com/838262
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0c37100d
|
2017-12-13T17:00:25
|
|
Always create TFunctions for function call nodes
This simplifies code and ensures that nodes get consistent data.
In the future function call nodes could have a pointer to the
TFunction instead of converting the same information into a different
data structure.
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ic0c24bb86b44b9bcc4a5da7f6b03701081a3af5c
Reviewed-on: https://chromium-review.googlesource.com/824606
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
26143fdd
|
2017-11-01T18:19:05
|
|
ES31: Support bindImageTexture on Texture2D for compute shaders on D3D
BUG=angleproject:1987
TEST=angle_end2end_tests
Change-Id: I3b0afb441a41dbd7f204b1d1bba7884c8d203ce1
Reviewed-on: https://chromium-review.googlesource.com/749004
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
10d41397
|
2017-12-18T18:13:36
|
|
Fix addDummyTextureNoRenderTarget workaround memory leak
Add dummy attachment in FramebufferD3D as a private member and release
the dummy attchment in destory of FramebufferD3D.
BUG=angleproject:2282
TEST=FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttachments/ES3_1_D3D11
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
Change-Id: I3a17282ef132185fbc25f4076f624e53661d4b20
Reviewed-on: https://chromium-review.googlesource.com/831847
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
89c422ad
|
2017-11-29T18:24:20
|
|
ES31: Support memoryBarrier and memoryBarrierRegion APIs
BUG=angleproject:2280
TEST=dEQP-GLES31.functional.compute.basic.image_barrier_single
dEQP-GLES31.functional.compute.basic.image_barrier_multiple
dEQP-GLES31.functional.compute.basic.ssbo_cmd_barrier_single
dEQP-GLES31.functional.compute.basic.ssbo_cmd_barrier_multiple
dEQP-GLES31.functional.synchronization.*
Change-Id: If14debab21247dc4b446e86d1642fbc9376b6dd7
Reviewed-on: https://chromium-review.googlesource.com/798803
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
37385e11
|
2017-12-19T11:50:30
|
|
Emulate tanh on HLSL
This ensures mathematically correct results on large inputs.
BUG=chromium:795269
BUG=angleproject:1093
TEST=dEQP-GLES3.functional.shaders.builtin_functions.precision.tanh*
Change-Id: Id5ba05a3284e51a34f196b419abef0f4a41551e0
Reviewed-on: https://chromium-review.googlesource.com/832463
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d4529f30
|
2017-12-12T13:06:40
|
|
Define symbol classes in a separate file
The plan is to use symbols more also outside the symbol table, so it
makes sense to define the symbol classes in a separate header file.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I94167415ef43ba9bd9126ca32d9c498e1437f3f8
Reviewed-on: https://chromium-review.googlesource.com/822414
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ffd27d85
|
2017-12-19T15:40:14
|
|
Vulkan: Roll loader and validation layers SDK (1.5/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
This intermediate step rolls Vulkan again to include upstream
fixes to the layers so they no longer need to copy the parameter
validation headers to the current working directory also includes
fixes for the GCC build.
Bug: angleproject:2237
Change-Id: I50deb70e43be36f7470c9fc2262b6da5bab39c3a
Reviewed-on: https://chromium-review.googlesource.com/834230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ca71c75d
|
2017-12-15T13:39:57
|
|
Fix error handling of ID3D11DeviceContext::Map
Refactors error handling should map() fail to avoid crashing
during a device error event.
BUG=angleproject:2284
Change-Id: Ib1eb676860fa5c3a81e523f49aab82b7e6700f73
Reviewed-on: https://chromium-review.googlesource.com/826485
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ae4dbf32
|
2017-12-08T20:49:00
|
|
Don't allocate name strings for empty symbols
This removes unnecessary memory allocations.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ide575ea19ab2f8e9fc93092490f1352efa6024a3
Reviewed-on: https://chromium-review.googlesource.com/817415
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f2afccca
|
2017-12-18T20:13:15
|
|
Skip UniformBufferTest.SimpleBufferChange on Mac NVIDIA GL
BUG=angleproject:2287
Change-Id: I1a5895a9b5c173b221da6ac511c05d8b7d646a5d
Reviewed-on: https://chromium-review.googlesource.com/833287
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5b1180df
|
2017-10-10T20:26:52
|
|
Add gyp deprecation warning.
gyp_angle now prints a warning every time it is run.
All targets print the same warning as one of their build steps.
The DEPS change updates gypi_to_gn so it doesn't choke on
files with 'target_defaults' sections.
BUG=angleproject:1569
Change-Id: Ibdf277fcc14cf4ebc7b7db78270210752cd8ef9d
Reviewed-on: https://chromium-review.googlesource.com/711155
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0e74e059
|
2017-12-17T22:17:17
|
|
Fix gcc builds.
Remove unused function and fix dangling else's that gcc complains about.
In the gyp build specify -std=c++14.
BUG=none
Change-Id: I552942ccc574104a5424a9add00e6e72d6efa28a
Reviewed-on: https://chromium-review.googlesource.com/830750
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2d98141
|
2017-12-15T14:18:55
|
|
Fix allowing non-constant ternary global initializer
Check the qualifier of a node resulting from the folding of a ternary
node correctly. The folded node might even be a TIntermConstantUnion
with a non-constant qualifier.
BUG=angleproject:2285
TEST=angle_unittests
Change-Id: I74516e44ce9d78bc54093a5b58d14cf33a57e6e5
Reviewed-on: https://chromium-review.googlesource.com/829138
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
647dca76
|
2017-12-15T21:31:00
|
|
Revert "Vulkan: Roll loader/validation layers SDK. (2/2)"
This reverts commit f15f9cec318b5b0042cca7f819b1df9dbd1872ee.
Reason for revert:
Causing a compile failure on the Fuchsia config, due to a path
difference. Will fix upstream and re-land, since it's breaking the
auto-roller.
https://chromium-review.googlesource.com/c/chromium/src/+/829878
FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/parameter_validation.cpp
python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml parameter_validation.cpp -quiet
Error: Could not find vk_validation_error_messages.h
[906/1359] ACTION //third_party/angle/src/vulkan_support:vulkan_gen_object_tracker_cpp(//build/toolchain/linux:clang_x64)
FAILED: clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan/object_tracker.cpp
python ../../third_party/vulkan-validation-layers/src/scripts/lvl_genvk.py -o clang_x64/gen/third_party/angle/src/vulkan_support/angle/vulkan -registry ../../third_party/vulkan-validation-layers/src/scripts/vk.xml object_tracker.cpp -quiet
Error: Could not find vk_validation_error_messages.h
Original change's description:
> Vulkan: Roll loader/validation layers SDK. (2/2)
>
> This hasn't been updated in a while, so there are many changes.
> It should also include better validation for memory barriers.
>
> Also includes updated builds for SPIRV Tools and glslang.
> A few pull requests need to land before landing this in ANGLE.
>
> This second step re-enables Vulkan and includes the updated build.
>
> Includes a workaround for parameter_validation.h no longer being
> auto-generated, and the stale file clobbering the build.
>
> Also includes a fix for an incorrect memory barrier.
>
> Bug: angleproject:2237
> Change-Id: Iae611764870281ed6aa7b187ec0c4e44226c722a
> Reviewed-on: https://chromium-review.googlesource.com/759197
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
TBR=fjhenigman@chromium.org,jmadill@chromium.org,cwallez@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2237
Change-Id: I9bc60860668c1da773b6e2fdb83ecc20215e9125
Reviewed-on: https://chromium-review.googlesource.com/830926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1955640a
|
2017-11-01T17:36:11
|
|
Support ozone/gbm back end in standalone gn build.
This makes it possible to do a standalone gn build of the ozone/gbm back
end by using the following gn args.
use_ozone = true
ozone_platform_gbm = true
BUG=angleproject:1569
Change-Id: I70716b83943dae95df48b847ff8cca5e2c555c4a
Reviewed-on: https://chromium-review.googlesource.com/749867
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e42ec189
|
2017-12-11T23:58:53
|
|
Add angle_link_glx arg to standalone gn build.
Port the angle_link_glx setting of the gyp build to the standalone gn build.
When set to true, libGL will be linked into libANGLE, instead of dlopen-ed.
This is useful when using apitrace.
BUG=angleproject:1569
Change-Id: I16a91504960169efdcde3b2c50b944de148d9ba6
Reviewed-on: https://chromium-review.googlesource.com/821691
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
9fc87331
|
2017-12-13T15:46:52
|
|
Fix Bug in Intel Workaround
Fixes an incorrect assert that is hit when trying to find a program
output when none are present. It is valid to not have an output, so we
should not check for an output when there are none.
Bug:angleproject:2283
Change-Id: Ia640482870c6ee589a933b989272177760237e3b
Reviewed-on: https://chromium-review.googlesource.com/825957
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9c8e1a36
|
2017-12-06T17:59:58
|
|
ES31: Implement image state query
BUG=angleproject:2278
TEST=dEQP-GLES31.functional.state_query.indexed.image_binding*
Change-Id: Ia624d55ccf1fdf92188d9e710265bdffe96a23c6
Reviewed-on: https://chromium-review.googlesource.com/810465
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
195be942
|
2017-12-04T23:40:14
|
|
Always create TVariables for TIntermSymbol nodes
TIntermSymbol nodes are now constructed based on a specific TVariable.
This makes sure that all TIntermSymbol nodes that are created to refer
to a specific temporary in an AST transform will have consistent data.
The TVariable objects are not necessarily added to the symbol table
levels - just those variables that can be referred to by their name
during parsing need to be reachable through there.
In the future this can be taken a step further so that TIntermSymbol
nodes just to point to a TVariable instead of duplicating the
information.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I4e7bcdb0637cd3b588d3c202ef02f4b7bd7954a1
Reviewed-on: https://chromium-review.googlesource.com/811925
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f414121d
|
2017-12-12T15:08:07
|
|
D3D11: Fix program uniform buffer dity bits.
There were actually three missing state synchronization points:
1. When re-binding a uniform buffer, we had no dirty bits.
2. When modifying the Program bindings, we also had no update.
3. When triggering a dependent state update via BufferData.
This fixes all the missing syncs and adds tests for the cases.
Bug: angleproject:1390
Change-Id: I2f05766545784248bcca8308ae34ac5720237ab1
Reviewed-on: https://chromium-review.googlesource.com/823150
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bd924af1
|
2017-11-16T15:28:04
|
|
ES31: Remove support of GL_OES_geometry_shader in compiler
This patch intends to remove the support of GL_OES_geometry_shader
in ANGLE compiler.
To make the implementation simpler, currently we decide to only
support "GL_EXT_geometry_shader" as the extension string of geometry
shader in ANGLE.
This patch also updates all the related shaders in angle_unittests
into R"()" format.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Ife9858abeedfb46b02c5c2fb1cda16fa27198511
Reviewed-on: https://chromium-review.googlesource.com/773451
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f15f9cec
|
2017-12-13T15:02:24
|
|
Vulkan: Roll loader/validation layers SDK. (2/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
This second step re-enables Vulkan and includes the updated build.
Includes a workaround for parameter_validation.h no longer being
auto-generated, and the stale file clobbering the build.
Also includes a fix for an incorrect memory barrier.
Bug: angleproject:2237
Change-Id: Iae611764870281ed6aa7b187ec0c4e44226c722a
Reviewed-on: https://chromium-review.googlesource.com/759197
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
9d4d7f06
|
2017-12-07T17:11:41
|
|
Classify TSymbols using an enum
Symbols can be either built-ins, user-defined, nameless, or for
ANGLE's internal use. In addition we currently use TFunction symbols
that are not yet resolved - they might later resolve to either a
built-in or a user-defined function. Record this information in each
TSymbol so that TSymbol contains sufficient information for deciding
how to format symbol names in output.
The goal is to eventually replace current uses of TName with pointers
to different TSymbol objects. So far only built-ins and user-defined
symbols have associated TSymbol objects, but that will be expanded to
cover ANGLE's internal symbols as well.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I927ce023fe257cc236da82c127700f3bd72bfe96
Reviewed-on: https://chromium-review.googlesource.com/816952
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9af765dd
|
2017-12-13T15:02:23
|
|
Vulkan: Roll loader/validation layers SDK. (1/2)
This hasn't been updated in a while, so there are many changes.
It should also include better validation for memory barriers.
Also includes updated builds for SPIRV Tools and glslang.
A few pull requests need to land before landing this in ANGLE.
First part disables Vulkan and rolls the layers. The second part will
re-enable Vulkan with the updated loader/layers build.
Bug: angleproject:2237
Change-Id: I112521541ea66b26eadeb959852418dc91be2e18
Reviewed-on: https://chromium-review.googlesource.com/805417
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
21f67ae0
|
2017-12-07T18:30:42
|
|
Vulkan: Remove loader/layers from GYP build.
This simplifies the rolling process since the build configuration was
fairly complex. It allows us to save on maintaining the two sets of
build files. The back-end is also disabled in GYP.
The back-end sources are kept in libGLES.gypi for now to keep all
libANGLE sources in the same place.
Bug: angleproject:2237, angleproject:1569
Change-Id: Ie73b40ef125cfc20da6f4ed3b33339256f1c5172
Reviewed-on: https://chromium-review.googlesource.com/805416
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
bef918cb
|
2017-12-13T13:11:30
|
|
Vulkan: Add packed RenderPass descriptions.
This change is two-fold: it splits the compatible parts from the
RenderPass description, which allows for correct caching. It also
will allow the pipeline state cache to cache the compatible RenderPass
bits.
In order to do this we introduce a packed version of the RenderPass
description, which uses carefully aligned bit representations so we
can hash the descriptions easily using MurmurHash, and compare them
with memcmp.
Bug: angleproject:2163
Change-Id: I4179c0ff8762df81f29082168bd6e3056ceb1318
Reviewed-on: https://chromium-review.googlesource.com/815816
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
ece12535
|
2017-11-21T15:50:21
|
|
ES31: Fix the issue for relink rendering/compute program.
When link or relink fails, if we try to install the unsuccessfully linked
program (via UseProgram) and start rendering or dispatch compute, We can
not always report INVALID_OPERATION for rendering/compute pipeline.
The result depends on the previous state: Whether a valid program has been
installed in pipeline before. If a valid program has been installed, it
should be OK to use the old executable residing in the GL state to start
rendering or dispatch compute. No error should be reported.
This change also add unit tests for unsuccessfully linked/relinked program
for rendering pipeline to avoid potential error.
If a program successfully relinks when it is in use, the program might
change from a rendering program to a compute program in theory,
or vice versa.
BUG=angleproject:2266
Change-Id: I4726112af2bc74f5beef25e35d2fcaa9f31e0768
Reviewed-on: https://chromium-review.googlesource.com/784273
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
5f19810d
|
2017-12-12T14:21:39
|
|
WebGLCompat: Fix depth & stencil query results.
getFramebufferAttachmentParameter returns incorrect
result for framebuffers in an inconsistent state.
BUG=angleproject:2281
Change-Id: Ifb83ecaf16c95bf1237b2c4f2684de6aa2d55c46
Reviewed-on: https://chromium-review.googlesource.com/823224
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8225e73b
|
2017-11-14T16:29:03
|
|
Support struct varying for transform feedback
Capturing struct members is vague In ES 3.00. But the ES 3.10
explicitly says that base-level members of struct are feasible for
transform feedback capture. This implementation fills the gap.
TEST=angle_end2end_tests:TrasnformFeedbackTest*
BUG=angleproject:2241
Change-Id: Ibdf3ae6c2b8b28952e2f7fef1363545cbccad389
Reviewed-on: https://chromium-review.googlesource.com/768613
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebe13bb1
|
2017-12-11T13:32:44
|
|
Remove SH_TRANSLATE_VIEWID_OVR_TO_UNIFORM
Instanced multiview is fully implemented and performs much better than
broadcasting draw calls on the CPU. There's no need to maintain
translating ViewID_OVR to a uniform.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: If3a8fa573f37b7926c052aecfcd4271f266751dc
Reviewed-on: https://chromium-review.googlesource.com/819417
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e30edd6f
|
2017-12-13T13:12:33
|
|
Update deqp31 test expectations
dEQP-GLES31.functional.shaders.builtin_functions.precision*compute* cases were
fixed by https://chromium-review.googlesource.com/c/angle/angle/+/792951
BUG=angleproject:1951,angleproject:1663
TEST=dEQP-GLES31.functional.shaders.builtin_functions.precision*compute*
dEQP-GLES31.functional.draw_indirect.compute_interop.*
dEQP-GLES31.functional.layout_binding.image*
Change-Id: I25a9272df8c66e1e5279de54a091b3077cd59b22
Reviewed-on: https://chromium-review.googlesource.com/822606
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
87cc90df
|
2017-12-12T15:28:06
|
|
Set proper precision on loop index for variable init
Previously the index variable was missing a precision. This may have
been behind loop-based init failing on some Android platforms.
BUG=chromium:735497
TEST=angle_unittests
Change-Id: I0307891dfb2edf6c52efd5b495f602b380263d65
Reviewed-on: https://chromium-review.googlesource.com/822413
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
495162b9
|
2017-12-08T10:19:01
|
|
Don't create temporary ids ahead of time
Now temporary ids are always only created for a specific temporary
variable.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Icbd369695abc166ef399bed9ae11a3669f1e7228
Reviewed-on: https://chromium-review.googlesource.com/816951
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|