|
37b697ed
|
2018-01-29T12:19:27
|
|
Only return symbol from TSymbolTable::find
Whether the symbol is built-in can be easily determined from the
SymbolType stored in the symbol, it doesn't need to be returned
separately. The sameScope value that could be returned from
TSymbolTable::find was never used, so that can be removed as well.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I06958741ebec67d496f830a83b4f6f1359632f45
Reviewed-on: https://chromium-review.googlesource.com/891021
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e4741fd0
|
2018-01-25T13:25:27
|
|
Vulkan: Begin implementing caps mappings
Bug: angleproject:1577
Change-Id: Ibed36dee9120e9182362bc9858cf513f798079cf
Reviewed-on: https://chromium-review.googlesource.com/887225
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d1434c04
|
2018-01-29T02:29:53
|
|
Revert "Use ImmutableString for HLSL texture references"
This reverts commit c13bda8678e86ff75a4acfc94f7a45e58224926d.
Reason for revert: May have broken LibFuzzer and AFL builds:
https://ci.chromium.org/buildbot/chromium.fyi/Afl%20Upload%20Linux%20ASan/7718
https://build.chromium.org/deprecated/chromium.fyi/builders/Libfuzzer%20Upload%20Linux%20ASan/builds/8691
In file included from ../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp:12:
In file included from ../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.h:19:
../../third_party/angle/src/compiler/translator/InfoSink.h:40:16: error: call to function 'operator<<' that is neither visible in the template definition nor found by argument-dependent lookup
stream << t;
^
../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp:111:9: note: in instantiation of function template specialization 'sh::TInfoSinkBase::operator<<<sh::ImmutableString>' requested here
out << textureReference;
^
../../third_party/angle/src/compiler/translator/ImmutableString.h:76:15: note: 'operator<<' should be declared prior to the call site or in namespace 'sh'
std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str);
^
1 error generated.
Bug: chromium:806619
Original change's description:
> Use ImmutableString for HLSL texture references
>
> This also adds ImmutableStringBuilder class, which can be used to
> build ImmutableStrings in place without extra allocations if the
> maximum length is known in advance.
>
> BUG=angleproject:2267
> TEST=angle_unittests
>
> Change-Id: I4dfb78adeb0cffcfad0d25753fb8063466012c92
> Reviewed-on: https://chromium-review.googlesource.com/886362
> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=jmadill@chromium.org,cwallez@chromium.org,oetuaho@nvidia.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2267
Change-Id: I445f5a786f8b16c3f40f28df09d45fcb215a9c88
Reviewed-on: https://chromium-review.googlesource.com/890542
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fad40f09
|
2018-01-26T16:52:31
|
|
Entry Points: Expose glTexStorage3DEXT.
The new dEQP takes advantage of the EXT entry point. If it is
missing, dEQP will trigger an unexpected crash.
Bug: angleproject:2319
Change-Id: Ib9a32931cd50bc96d9918662f16262772afbe36a
Reviewed-on: https://chromium-review.googlesource.com/889695
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6807f826
|
2018-01-25T20:19:27
|
|
Print more logs when using default Platform
Some logs prior to Test Platform initialization were getting lost.
1. Also print WARN() to stdout
2. Use Android specific logging facilities
BUG=angleproject:1660
Change-Id: I8424958426809567396ef24cedc2d427a3a21959
Reviewed-on: https://chromium-review.googlesource.com/887944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
881b7bfa
|
2017-12-25T11:18:37
|
|
ES31: Refactor link mismatch error log
This patch intends to refactor the structure of logging link mismatch
errors to meet the new GLES 3.1 program link requirements and support
linking program with geometry shader.
This patch is mainly focusing on the following 4 issues:
1. There are totally 14 places that log the link mismatch errors
in almost same format.
2. A temporary string is created (STRUCT_NAME.FIELD_NAME) before
checking a field of a block, which is of no use if link succeeds.
3. LinkValidateVariablesBase needs to know "shaderTypes" if we support
geometry shader based on current structure. Since uniforms are
checked in the range of the whole program, it is unnecessary to
know in which shader a uniform is defined if link succeeds.
4. GLES 3.1 regards varyings with same location but different names
as matched, so it isn't enough to log errors only by one name.
This patch can solve all these issues by the following 3 changes:
1. Replace "infoLog" and "variableNames" by "mismatchedFieldName" (the
complete field name if the mismatch occurs on a field of a struct
or block).
2. Use enum LinkMismatchError as the return value of all linkValidate*
functions to reflect the detail of the link mismatch error.
3. Log all the link mismatch errors by InfoLog::logLinkMismatch where
we can get shader types instead of passing them into linkValidate*
functions.
BUG=angleproject:1941, angleproject:2144
TEST=angle_end2end_tests
Change-Id: I3ed876d61f812cc7a45a6a3c5fec0b4a88b9cc2c
Reviewed-on: https://chromium-review.googlesource.com/844215
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c13bda86
|
2018-01-25T12:22:33
|
|
Use ImmutableString for HLSL texture references
This also adds ImmutableStringBuilder class, which can be used to
build ImmutableStrings in place without extra allocations if the
maximum length is known in advance.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I4dfb78adeb0cffcfad0d25753fb8063466012c92
Reviewed-on: https://chromium-review.googlesource.com/886362
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ffa4cbb6
|
2018-01-23T13:04:07
|
|
Vulkan: Implement the Pipeline cache.
This currently keeps a cache of every PSO compiled and does not trim
the cache or evict old members on memory pressure. This will be done
as a follow-up.
Improves the speed of the Draw Call microbenchmark 50x when using a
single state change.
Bug: angleproject:2163
Change-Id: I2cceb38ca57ae639f36a944f4571b627481b92da
Reviewed-on: https://chromium-review.googlesource.com/876954
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1436d434
|
2018-01-24T14:38:22
|
|
Add a simple compiler perf test
The perf test initializes the compiler once and then translates the
same shader to HLSL, GLSL or ESSL repeatedly.
There are three variations of the test compiling different shaders.
One is a real-world shader.
BUG=angleproject:2267
TEST=angle_perftests
Change-Id: Ie07b67d7548d105c4c93dff3b6196233d83b5b8c
Reviewed-on: https://chromium-review.googlesource.com/883784
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
17e3d2d5
|
2018-01-24T16:07:48
|
|
Vulkan: Add draw call perf test with a state change.
Bug: angleproject:2163
Change-Id: I3976af162ee669d0c98625fc69efb7fbd02c7e45
Reviewed-on: https://chromium-review.googlesource.com/883611
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aba14ff5
|
2018-01-15T14:55:03
|
|
Add GLES1 conformance tests.
BUG=angleproject:2303
Change-Id: I5955485e2392c573125bd8785ece103a9607f7d1
Reviewed-on: https://chromium-review.googlesource.com/867311
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
2d8e432a
|
2018-01-22T14:12:46
|
|
Add ImmutableString to encapsulate some compiler strings
The new ImmutableString class is intended to be used instead of plain
const char pointers to pool-allocated or static memory.
It has the following advantages over using plain const char pointers:
1. It makes it clear when a string is guaranteed to be safe to pass
around inside the compiler.
2. It can be compared with a comparison operator rather than using
strcmp, which is easier to read.
3. It records the length of the stored string, which enables faster
copies and comparisons in some cases.
4. ImmutableStrings could be implicitly converted from std::strings
when a pool-allocated string is required. This is robust and
convenient.
C++17 has a similar class std::string_view, but our code style doesn't
allow it yet. We also couldn't use it as is if we require properties
1 and 4 from above, but would rather need to inherit or wrap it in a
custom class.
Eventually all current usage of TString could be replaced with
ImmutableString. For now, use it for unmangled built-in names.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: Id60c7b544032e06460e1b99837e429bc84dc4367
Reviewed-on: https://chromium-review.googlesource.com/881020
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2e551f6b
|
2018-01-24T21:45:34
|
|
Vulkan: Fix DebugReportCallback definition
Fixes 32bit Android build
BUG=angleproject:2314
Change-Id: I55e8fc8ee3ffa6397e6612ccf43c67e4a7a9dc75
Reviewed-on: https://chromium-review.googlesource.com/885504
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
68981eb5
|
2018-01-23T17:46:12
|
|
Track parameter qualifiers of functions in call nodes
We now add a reference to TFunction to all TIntermAggregate nodes
where it is possible, including built-in ops. We also make sure
that internal TFunctions added in traversers have correct parameter
qualifiers.
This makes TLValueTrackingTraverser much simpler. Instead of storing
traversed functions or looking up builtin functions from the symbol
table, determining which function parameters are out parameters can
now be done simply by looking it up from the function symbol
associated with the aggregate node.
Symbol instances are no longer deleted when a symbol table level goes
out of scope, and TFunction destructor no longer clears the
parameters. They're all either statically allocated or pool allocated,
so this does not result in leaks.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: I57e5570da5b5a69a98a8778da3c2dc82b6284738
Reviewed-on: https://chromium-review.googlesource.com/881324
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
12da5e75
|
2018-01-23T18:34:53
|
|
Vulkan: use supported composite alpha
Try VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR first,
if not supported, try VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR.
Fail if it is not supported either.
BUG=angleproject:2314
Change-Id: I875a60f7b51b9880da2d2916d602a6e7e8ca479f
Reviewed-on: https://chromium-review.googlesource.com/882320
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
01b21b19
|
2018-01-23T15:46:28
|
|
Vulkan: get render target format from config
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>
|
|
e49f1e95
|
2018-01-24T14:47:55
|
|
Revert 3 files from previous merge
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/884105
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@google.com>
|
|
1b1a8640
|
2018-01-23T15:12:01
|
|
Support correct validation for samplerParameterf with GL_TEXTURE_MAX_ANISOTROPY_EXT
Bug: angleproject:2072
Change-Id: I3e0b63f2a63e8769e3eab2be3aa0403317ed0707
Reviewed-on: https://chromium-review.googlesource.com/881707
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@google.com>
|
|
112a3a8e
|
2018-01-23T13:04:06
|
|
Vulkan: De-couple Program from VertexArrayVk dirtyiness.
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>
|
|
adcf0ae6
|
2018-01-24T08:27:37
|
|
Replace all NULL with nullptr
Bug: angleproject:1695
Change-Id: Ide0591ffdad5815385a4d805b320a32533bcc03a
Reviewed-on: https://chromium-review.googlesource.com/883681
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@google.com>
|
|
7e9b13b5
|
2018-01-24T14:17:13
|
|
Add helper function to pool allocate a char array
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/883805
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c081020c
|
2018-01-22T09:48:48
|
|
ES3.1: multisample renderbuffer can support interger format.
BUG=angleproject:2315
Change-Id: I3ef289a6043745c822e1c9b0a1b363ac81292c4c
Reviewed-on: https://chromium-review.googlesource.com/878021
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
37968133
|
2018-01-23T18:19:29
|
|
Vulkan: limit max texture bindings by physical device limits
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>
|
|
49886899
|
2018-01-23T21:18:27
|
|
Skip TextureCOMPRESSEDRGB8ETC2ImplicitAlpha1 on Mac NVIDIA GL
Also TextureCOMPRESSEDSRGB8ETC2ImplicitAlpha1.
Flaky on Mac Experimental Retina Release (NVIDIA) bot.
BUG=angleproject:2190
Change-Id: Iad620808db3977625ccd7221f6c3eb7a453802e9
Reviewed-on: https://chromium-review.googlesource.com/882391
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d66e1939
|
2018-01-17T11:36:24
|
|
Allow creating EGL pbuffers from typeless D3D textures
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/873917
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dd21ecf8
|
2018-01-10T12:42:09
|
|
Add const qualification to symbol accesses
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>
|
|
0e99b7a3
|
2018-01-12T12:05:48
|
|
Prevent changing AST expression type from outside
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/863626
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3c424b48
|
2018-01-19T12:35:09
|
|
Vulkan: Add vk_cache_utils.h.
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/876505
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4e36db8c
|
2018-01-19T17:35:33
|
|
Skip FindMSBAndFindLSBCornerCases on Android OpenGLES
Due to a bug in Adreno N5X Oreo driver
BUG=angleproject:2304
Change-Id: I209d9b227557571f45a93aa68a003378e12402a1
Reviewed-on: https://chromium-review.googlesource.com/876995
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
342b83d4
|
2018-01-10T13:24:01
|
|
Don't copy unmangled built-in names
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/859958
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a08d410d
|
2018-01-11T13:37:14
|
|
Fixed ssbo end2end tests failure
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>
|
|
b60d30f7
|
2018-01-16T12:31:06
|
|
Make TVariable type immutable
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>
|
|
fa886975
|
2018-01-18T19:24:54
|
|
Fix handling array constructor statements in HLSL output
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>
|
|
2c9cc8b6
|
2018-01-09T16:13:02
|
|
Don't duplicate symbol type information in AST nodes
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/857005
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
28efd82c
|
2018-01-17T12:13:15
|
|
Fix dxgi support table generation script
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/870113
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b745f172
|
2018-01-09T16:10:02
|
|
Add more test cases for bindImageTexture
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>
|
|
2aaa7b4e
|
2018-01-12T17:17:27
|
|
Add GLES1 targets and stub entry points.
* 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>
|
|
f661686c
|
2018-01-15T23:49:14
|
|
Fix gyp/gcc build.
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/867655
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
4747414e
|
2017-12-29T13:41:00
|
|
Use dirty bit for element array buffer
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>
|
|
ceffd20c
|
2018-01-08T16:39:45
|
|
Set colorspace of D3D pbuffers according to DXGI format
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/866743
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
cf180fcc
|
2018-01-04T16:25:40
|
|
Keep TIntermSymbol data consistent in DeferGlobalInitializers
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I25bd8baded9c13e75555578e4b61b99a56e0c702
Reviewed-on: https://chromium-review.googlesource.com/850974
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
57f4b73e
|
2018-01-11T15:24:43
|
|
Fix the format check in TextureD3D_2DArray::redefineImage
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/862256
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
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>
|
|
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>
|
|
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>
|