|
046fa0ef
|
2018-02-02T14:51:36
|
|
Vulkan: Prepend layer path to VK_LAYER_PATH
Directly setting this variable overwrites old value, as might be
unexpected. Instead the path can be prepended to it, so that old
value can still work.
This is needed in order to use additional debugging layers, like
the "api_dump" layer. See https://github.com/LunarG/VulkanTools
for more.
BUG=angleproject:2333
Change-Id: I5338a5b928ffa792cc9b6db5b69713320b5b0842
Reviewed-on: https://chromium-review.googlesource.com/898591
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2f23f35a
|
2018-02-11T22:11:37
|
|
Clean up end2end tests for Intel OSX.
BUG=angleproject:2205
BUG=angleproject:2041
BUG=angleproject:2155
Change-Id: I26bcbb63e147787cd342ec80a86d60cf230be4c9
Reviewed-on: https://chromium-review.googlesource.com/913108
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5fe7aad
|
2018-01-29T12:06:11
|
|
Store builtin symbols as const pointers
To do this we need two types of symbol table levels: A level for
built-ins and a level for user-defined symbols. User-defined symbols
are non-const because function symbols created based on function
prototypes are changed when the function definition is parsed. On the
other hand, we want to make built-in symbols constexpr, so we should
only handle them through const pointers.
This also gets rid of extra empty precision stack levels. Only one
level is needed to store predefined precisions.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9f14b24c2cfce272f22c16e7a8dfb653b849cbeb
Reviewed-on: https://chromium-review.googlesource.com/892879
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f27b050
|
2018-02-08T16:18:37
|
|
Update Android build instructions
Build flags to enable Vulkan backend and some small updates.
BUG=angleproject:2314
Change-Id: Ia99cc5a4b326a4cab115652cb12b3fb61033eeee
Reviewed-on: https://chromium-review.googlesource.com/909723
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6108b766
|
2018-02-08T18:17:43
|
|
Remove angle::Library and its usages
No longer needed after https://chromium-review.googlesource.com/513519
Loading libGLESv2 interferes with API tracing tools
BUG=angleproject:1892,angleproject:2343
Change-Id: I2ccbc99377d75d107fd644301402c52466dded21
Reviewed-on: https://chromium-review.googlesource.com/910094
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
41b072b6
|
2018-02-09T10:01:32
|
|
Prepare for -Wimplicit-fallthrough in ANGLE.
Disable the warning for flex-generated output, which contains
lots of intentional fallthrough.
Fixes a bug where GL_SAMPLE_ALPHA_TO_ONE_EXT would fall through
to GL_COVERAGE_MODULATION_CHROMIUM and hence behave like that.
Fixes a bug in the D3D9 state management where invalidating
DIRTY_BIT_POLYGON_OFFSET would also invalidate the stencil bits.
One somewhat common incorrect pattern in ANGLE is nested switch
statements that look like so:
switch (a) {
case a1:
switch (b) {
case b1:
...
break;
}
case a2:
...
}
The assumption here seems to be that the breakk exits the outer
case (here a1), while it in fact only exits the inner switch,
so that we fall through to a2. In most places, I fixed this
by adding an explicit `break` after the inner switch.
This fixes a bug wher GL_PATH_JOIN_STYLE_CHROMIUM would fall through to
GL_PATH_MITER_LIMIT_CHROMIUM in validation (but since the join style
enum is always > 0, this happened to not have an effect in practice).
This also fixes 87 bugs in GetLoadFunctionsMap() where invalid
values would previously return an unrelated function map instead
of the empty load function map.
Bug: chromium:810767
Change-Id: Ib51388c73fbfc229160e2c10f8fb9364cc7c996c
Reviewed-on: https://chromium-review.googlesource.com/911529
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
61773640
|
2018-02-09T10:12:21
|
|
Skip PostSubBuffer calls that have zero size.
BUG=810411
Change-Id: I8770b69fe4ab8a8f9bacd141c89e7f83f67f15fb
Reviewed-on: https://chromium-review.googlesource.com/911589
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f8be756e
|
2018-02-06T15:59:11
|
|
Vulkan: Implement blend states and add a simple test for it
Bug: angleproject:2346
Change-Id: I462a2cb29ceda5563f48b4a3cc1d0aa20f4a49fc
Reviewed-on: https://chromium-review.googlesource.com/907169
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e520b6f
|
2018-02-08T16:26:30
|
|
OpenGL: Disable forwarding debug groups and messages all the way to the driver.
Because of virtualized contexts, the debug groups are not always popped
in the same order that they are pushed leading to inconsistant state and
sometimes GL_STACK_OVERFLOW errors from the driver.
BUG=angleproject:2354
Change-Id: I0a001002149184dd882c3b17e8451bcd694608ba
Reviewed-on: https://chromium-review.googlesource.com/909794
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ed04619a
|
2018-02-08T14:57:14
|
|
Fix typo in bug link.
BUG=angleproject:2205
Change-Id: I7ff1c3d0bb380c73c07dad0a30a4a4a19c17e397
Reviewed-on: https://chromium-review.googlesource.com/909577
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
bb514004
|
2017-04-28T14:08:38
|
|
Request RGBA8 configs by default for gtest dEQP.
Previously, dEQP would just use the first config returned which was
RGBA4 which is not very representitive of what our users would request.
BUG=angleproject:2337
BUG=angleproject:1095
BUG=angleproject:2222
Change-Id: I5c9defc7ce1feaa49407557b88d9bb6b98571771
Reviewed-on: https://chromium-review.googlesource.com/490726
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
06b95582
|
2018-02-08T13:48:44
|
|
Re-supress VerifyMax*UniformVectors on Ozone Intel.
BUG=angleproject:2205
Change-Id: Icff414dc7a521205fd3e39af4652b0fdef1cb900
Reviewed-on: https://chromium-review.googlesource.com/909291
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
da91c9a6
|
2018-02-08T11:46:39
|
|
GLES1: Link against angle_util_static instead of angle_util.
Attempting to work around missing .so on linux bots.
BUG=angleproject:2303
Change-Id: I7fabad308afd420987369b460c13c00781113605
Reviewed-on: https://chromium-review.googlesource.com/909028
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e051ea72
|
2018-02-08T12:04:06
|
|
Vulkan: Update .gitignore with repo change.
This was missing from a prior commit which moved the Vulkan DEPS.
Bug: angleproject:2339
Change-Id: I16c2918af9396b5b935993d08d8f2ff925f3cb01
Reviewed-on: https://chromium-review.googlesource.com/909228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bac02d76
|
2018-02-07T20:36:07
|
|
Vulkan: Fix data_deps on layers
Was broken by https://chromium-review.googlesource.com/900096
BUG=angleproject:2339
Change-Id: I3c28a38619d83e7dcbb2349565517feb1758976c
Reviewed-on: https://chromium-review.googlesource.com/907959
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8e5ba8bb
|
2018-02-05T17:52:27
|
|
Clean up end2end tests for Intel Linux platform.
Removed tests can pass on Intel Linux Desktop (Intel KabyLake, Ubuntu 17.04)
with system default mesa and latest upstream mesa.
BUG=angleproject:2205
BUG=chromium:680631
Change-Id: Ie3f0f34b9708a7dab81f66d9ec83a469658deee7
Reviewed-on: https://chromium-review.googlesource.com/901382
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5420cb2a
|
2018-01-24T10:09:22
|
|
Suppress Intel specific deqp test cases
Test deqp cases on Windows D3D and Linux on Intel HD 630.
Add failed or crashed test cases to expectation files.
BUG=801323
BUG=angleproject:2349
Change-Id: I495874f5e1841f6c7ce0f59224ed0da9465546ce
Reviewed-on: https://chromium-review.googlesource.com/900708
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e65454d
|
2018-02-07T14:50:06
|
|
Vulkan: Fix circular dependency with resource updates.
The old implementation would try to keep recording draw commands to
the same framebuffer write operation even if the vertex array buffer
data changed. This would lead to a broken dependency graph. Fix this
by forcing any current render operations to create a new node in this
case, giving a correct command graph.
Old design:
- render (creates a CommandBufferNode A)
- update buffer (creates a CommandBufferNode B which happens after A)
- render (to CommandBuffer A, and gives a circular dependency with B)
New design
- render (CommandBufferNode A)
- update buffer (CommandBufferNode B, happens after A)
- render (CommandBufferNode C, happens after B)
This also renames some methods to try to clarify them.
Bug: angleproject:2350
Change-Id: I6559bed4ed3f58f68771662422c5bef6a505282b
Reviewed-on: https://chromium-review.googlesource.com/907416
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
469708e7
|
2018-02-07T16:54:15
|
|
Add expectations for gles1 conformance tests.
Mark all tests as failing until they are running on the bots.
BUG=angleproject:2303
Change-Id: If9dfccd4a433ab039a1993c8e5a351b55532a0c8
Reviewed-on: https://chromium-review.googlesource.com/907630
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a1134ba8
|
2018-02-07T15:24:47
|
|
Vulkan: Relocate third-party libraries. (2/2)
This makes the BUILD.gn source lists a lot simpler, since they no
longer need to use a special path variable, but instead can use the
correct relative paths.
This will lead to further simplifications so we can hopefully upstream
the Vulkan tools BUILD.gn files.
Second part updates the build files and removes the old repositories.
Bug: angleproject:2339
Change-Id: I37f5b42a0854ca49448ecbbb32c19c24df57f452
Reviewed-on: https://chromium-review.googlesource.com/905894
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
00155d58
|
2018-02-06T10:48:47
|
|
Vulkan: Implement scissor test and add a simple test for it
Bug: angleproject:2338
Change-Id: I699189fcd41feca1656c8553fdf4c1078421524d
Reviewed-on: https://chromium-review.googlesource.com/904861
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b9d1daa0
|
2018-01-04T08:30:26
|
|
Add Vulkan mock_icd to the build
Bug: angleproject:2159
Add Vulkan mock_icd from validation layer source to the standard Vulkan
build. This can act as a NULL driver for Vulkan. Once the mock is built
set VK_ICD_FILENAMES env variable to
"<build_out_dir>/angledata/VkICD_mock_icd.json" to point loader to the
mock driver and make sure the built mock icd library resides in the
system's shared object search path.
Change-Id: Iea86325cf076df75fa82a4974c8a3a6249cdf8e0
Reviewed-on: https://chromium-review.googlesource.com/850892
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fd66b81e
|
2018-02-06T16:08:14
|
|
Vulkan: Relocate third-party libraries. (1/2)
This makes the BUILD.gn source lists a lot simpler, since they no
longer need to use a special path variable, but instead can use the
correct relative paths.
This will lead to further simplifications so we can hopefully upstream
the Vulkan tools BUILD.gn files.
First part duplicates the repositories in the new locations.
Bug: angleproject:2339
Change-Id: I98d4711b6f0451372476c8089af2d044bf1f65d6
Reviewed-on: https://chromium-review.googlesource.com/902422
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b4cc49fb
|
2018-01-25T14:37:06
|
|
Use only ImmutableString in TextureFunctionHLSL
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: I344ca0098762fcf665365c79d1f8fb04cb1b03f6
Reviewed-on: https://chromium-review.googlesource.com/887067
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
29bda815
|
2018-01-26T17:37:36
|
|
Move symbol table initialization to SymbolTable.cpp
This is needed in order to make symbol table symbols statically
allocated.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ia2d44fb30d49dc5d5c67643fe01280c89127a3c3
Reviewed-on: https://chromium-review.googlesource.com/889299
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
57dd97aa
|
2018-02-06T17:10:49
|
|
Vulkan: Add helper for allocating image memory.
Also refactors some memory index searching code that was duplicated.
This will lead the way to having more code reuse for our Renderbuffers
implementation in Vulkan, and for other types of Texture.
Bug: angleproject:2347
Change-Id: I49cbd77328c01f945d66f92e6ec4ba7c552abeff
Reviewed-on: https://chromium-review.googlesource.com/904684
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fbb1c792
|
2018-01-19T16:26:59
|
|
Store symbol names as a ImmutableString
This will enable compile-time initialization of built-in symbols as
well as reducing copying strings.
Most of the code that deals with names is changed to use
ImmutableString where it makes sense to avoid conversions.
The lexer/parser now allocate const char pointers into pool memory
instead of allocating TStrings. These are then converted to
ImmutableString upon entering TParseContext.
BUG=angleproject:2267
TEST=angle_unittests, angle_end2end_tests
Change-Id: I244d6271ea1ecf7150d4f89dfa388a7745a1150c
Reviewed-on: https://chromium-review.googlesource.com/881561
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d775684a
|
2017-12-22T16:06:09
|
|
Added Documentation for running dEQP tests
Old targets do not accept --deqp-case=<test>
As they are written using google test
To run individual dEQP test we need to use *_no_gtest targets
angle_deqp_egl_no_gtest
angle_deqp_gles2_no_gtest
angle_deqp_gles31_no_gtest
angle_deqp_gles3_no_gtest
above targets accept -deqp-case=<test> wildcard
Bug: angleproject:1944
Change-Id: I307a60c0cc41c446013bda42ccf0f909000f1ec8
Reviewed-on: https://chromium-review.googlesource.com/842284
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b62a1c2a
|
2018-02-06T09:54:02
|
|
Vulkan: Reorganize BUILD.gn files.
This moves the SPIRV-Tools and glslang and Validation layers build
files into the root of the dep folder.
Requires an upstream Chrome change to allow for a different path
to execute scrips in GN.
Also removes the vulkan_support subdirectory.
Bug: angleproject:2339
Change-Id: I457b5b05547c092a1e7fef6dd0aaadd8068e2143
Reviewed-on: https://chromium-review.googlesource.com/900096
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ceb7190b
|
2018-02-05T15:18:47
|
|
Vulkan: Fix bug in reuse of vertex input bindings
Fix bug that used previously used vertex bindings. Now we
use the current program mask to only initialize the vulkan
pipeline with the active vertex input bindings.
+ adjust dEQP expectations
Bug: angleproject:2334
Change-Id: Ie6176eee99f87dc7a95f664d28e8312b9cb274bc
Reviewed-on: https://chromium-review.googlesource.com/902434
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
ca5c1059
|
2018-02-05T19:21:11
|
|
Replace a POSIX API call not supported by Fuchsia.
Bug: chromium:809201
Change-Id: Iafc2e7efe92bcb977e5185901c073e499114a9f4
Reviewed-on: https://chromium-review.googlesource.com/903261
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bfeed4dd
|
2018-02-06T16:39:29
|
|
Add a compiler perf test shader to stress traversers
Add a compiler perf test that's targeted at AST traversers. It
triggers many traversers that mutate the AST and run multiple
iterations particularly on the HLSL backend.
BUG=angleproject:827
TEST=angle_perftests
Change-Id: I75d89e8ae0fd7959f2c7fbb133c13ccde22abc37
Reviewed-on: https://chromium-review.googlesource.com/904622
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2d1c0a2b
|
2018-02-02T09:50:57
|
|
Vulkan: Fix gcc compile error
Add 'no-unused-function' to compile glslang
BUG=angleproject:2301
Change-Id: Iac741e007873fb718527514210649e6b658a63b8
Reviewed-on: https://chromium-review.googlesource.com/898394
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44dcb911
|
2018-02-02T12:51:41
|
|
Decode R11 and RG11 EAC formats into 16-bit textures.
8-bit textures are not precise enough but no tests were failing because
dEQP was using 4-bit backbuffers.
Preserve the old decode-to-8-bits paths because they are still used by
Chrome.
BUG=angleproject:2336
Change-Id: Ieb651325e2a05c85bcc97f8e6d868afaf37aff0d
Reviewed-on: https://chromium-review.googlesource.com/899701
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bcb4c68d
|
2018-02-05T14:56:54
|
|
StateManagerGL: Rework query tracking (again)
* Put the temporarily paused queries into a separate map, this should
be separate functionality from the regular query tracking.
* Pair down the number of functions that modify the current begin/end
state.
* Always pause all old queries and resume all new queries on context
switch.
BUG=805233
Change-Id: If37a9947b50feaa4e627070ce2a7895aa5034c0e
Reviewed-on: https://chromium-review.googlesource.com/902426
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a8fe18fc
|
2018-02-05T13:46:05
|
|
GL: Fix usage of glGetInternalFormativ.
The Target was being passed cube map faces for cube map textures.
The return value is an enum, not a bool.
BUG=angleproject:1932
Change-Id: I975f510fc0f6bc4d29adcbb152b0329ecbcdfa92
Reviewed-on: https://chromium-review.googlesource.com/902192
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b5420664
|
2018-02-02T10:03:22
|
|
Add end2end test for GL_TRIANGLE_FAN in SimpleOperationTest
Bug: angleproject:2334
Change-Id: Idb4d651ade139372f40d690e523c43b20e859a5e
Reviewed-on: https://chromium-review.googlesource.com/899024
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7b7ada6a
|
2018-02-05T14:49:15
|
|
Add a dotfile_settings GN config file.
This file will be imported into both ANGLE's and Chrome's .gn files so
we can share some of the same settings. This will mean we no longer
have to patch Chromium to make changes to the exec script whitelist.
Bug: angleproject:2339
Change-Id: I2d7dd4237488ffecf5376643447ad95a0c1dbf98
Reviewed-on: https://chromium-review.googlesource.com/902324
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
22294b04
|
2018-02-02T10:03:22
|
|
Add end2end tests for GL_LINES and GL_LINE_STRIP
+ Small refactoring in SimpleOperationTest.cpp to share
the vertex/fragment shaders for all the tests.
+ Adjust deqp gles2 expectations to include
dEQP-GLES2.functional.draw.draw_arrays.lines.single_attribute
Bug: angleproject:2328
Change-Id: I7cab84b7914f503537eb5bfabb7ed58002e19846
Reviewed-on: https://chromium-review.googlesource.com/899046
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
338abb46
|
2018-01-30T18:16:30
|
|
Fix invalid heap exception in angle
Running angle deqp test case, an invalid heap exception is thrown in
angle on both linux and windows platforms.
If build a nonsequential heap, and then erase any node of the heap,
the heap is no longer valid. If using std::push_heap or std::pop_heap
method next, this exception will be thrown out. So we should use
std::make_heap after modifying the heap.
TEST=angle_deqp_gles2_tests
TEST=angle_deqp_gles3_tests
TEST=HandleAllocatorTest.ReserveAfterReleaseBug
BUG=angleproject:2326
Change-Id: I123fc81b3365c93081d0042c69b4e5114956fe0d
Reviewed-on: https://chromium-review.googlesource.com/892961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
14cb42c0
|
2018-01-24T14:11:19
|
|
Clean up passed end2end tests on Intel Linux platforms.
Only one end2end test still fail for ANGLE issue 1346.
BUG=angleproject:1346
Change-Id: Ibeefe600b21b6ae2056e304d18a8fc4071a48cbe
Reviewed-on: https://chromium-review.googlesource.com/882294
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
64d065e2
|
2018-02-03T12:26:19
|
|
Update dEQP expectations.
BUG=angleproject:1487
BUG=angleproject:1442
Change-Id: Ib0913eb446a903199dafcd379c8dc0b9b969b8c0
Reviewed-on: https://chromium-review.googlesource.com/900555
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
edcd1134
|
2018-02-03T10:28:52
|
|
Update dEQP expectations.
BUG=angleproject:2341
BUG=angleproject:1442
BUG=angleproject:2324
BUG=angleproject:1941
BUG=angleproject:2342
BUG=angleproject:2137
Change-Id: I9e8fc45d6f3eb8cfc02513602898583af3f79eba
Reviewed-on: https://chromium-review.googlesource.com/900547
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
23c107e8
|
2018-01-30T09:54:39
|
|
Roll dEQP 455d82c60b0...5bc346ba2.
Inclues several new ES 3.1 and EGL test sets.
https://android.googlesource.com/platform/external/deqp/+log/455d82c60b0..5bc346ba2d5
Bug: angleproject:2319
Bug: angleproject:1961
Bug: angleproject:1028
Bug: angleproject:2320
Bug: angleproject:2321
Bug: angleproject:2329
Bug: angleproject:2330
Change-Id: I26bfb11a41073e94ecc75d20b07055eb4e946d43
Reviewed-on: https://chromium-review.googlesource.com/703159
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9a608c0e
|
2018-02-02T16:21:01
|
|
Vulkan: request coherent memory for StagingImage
Otherwise vkInvalidateMappedMemoryRanges is needed,
if allocated memory is not coherent,
which was happening on Nexus 5X and was caught by validation layers.
BUG=angleproject:2314
TEST=all angle_end2end_tests pass on Nexus 5X
Change-Id: I008aae45b99c6ca87029ff1614913fae32f66ec3
Reviewed-on: https://chromium-review.googlesource.com/900203
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
df9ad2be
|
2018-02-02T12:40:01
|
|
Vulkan: Minor refactor to RendererVk::initialize.
Bug: angleproject:2314
Change-Id: Ic3fa5f8ff5a0933e22b9fd5803b7ab3fbbfd449f
Reviewed-on: https://chromium-review.googlesource.com/899686
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c7295f4d
|
2018-02-01T13:05:25
|
|
Vulkan: Add dEQP ES2 expectations.
Only run the info tests for now, skip everything else.
Rename angle-vk config to angle-vulkan
BUG=angleproject:2161
Change-Id: I0a57f1f8fbfa9d27c2c376d38685184622f0779b
Reviewed-on: https://chromium-review.googlesource.com/896552
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
95ed1947
|
2018-02-01T14:01:19
|
|
Add a class for function lookups
Using a purpose-built class for function lookups instead of using
a combination of TFunction and a struct container for the this node
and arguments makes the code clearer.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I3f345d836abeaa7f84cc46b4b840fd06c7e2e1a7
Reviewed-on: https://chromium-review.googlesource.com/897363
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5c5d7dee
|
2018-02-01T14:45:54
|
|
Remove test restrictions on dEQP gles3 texture.compressedtexsubimage* tests
Bug: angleproject:2327
Change-Id: I60ab5ba9d356e2720102c2166e2446002a8b674b
Reviewed-on: https://chromium-review.googlesource.com/898066
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
9dbaeba8
|
2018-02-01T07:26:59
|
|
Validation layer fixes for compressedtexsubimage* dEQP tests
* Change order of validation in ValidateCompressedTexSubImage3D
to get the errors in the same order as the dEQP tests are
expecting them.
* ES 3.1: Section 8.7, page 169: If the internal format is ETC2/EAC,
the target must be a GL_TEXTURE_2D_ARRAY.
* ES 3.1: Section 8.7, page 171: For sub textures, ET2/EAC formats
also requires exact size to be validated.
Bug: angleproject:2327
Change-Id: Ib049c70a52ed5683885a73fb06503898a85786d1
Reviewed-on: https://chromium-review.googlesource.com/897726
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c0db9add
|
2018-01-29T13:52:42
|
|
Fix dEQP renderbuffer unspecified attachment test.
Full test name: dEQP-GLES3.functional.state_query.fbo.framebuffer_unspecified_attachment_x_size_rbo
Bug: angleproject:2321
Change-Id: I086aefe23a3141f58cc33149c9cd7bdc5eb98dba
Reviewed-on: https://chromium-review.googlesource.com/891662
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f70e0237
|
2018-01-29T10:32:47
|
|
Vulkan: Finish implementing caps limitations for ES 2.0 support
Bug: angleproject:1577
Change-Id: Id22af039109b175f60f11cea1d6b8b2308c5cfff
Reviewed-on: https://chromium-review.googlesource.com/891420
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8efd1268
|
2017-12-19T09:32:55
|
|
ES31: Add max combined interface blocks validation
BUG=angleproject:1951
Change-Id: I9223964fa84cee3888fb7f5949c3e098fe2aa2b0
Reviewed-on: https://chromium-review.googlesource.com/890818
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1776fd08
|
2018-01-31T11:46:52
|
|
Make use of CreateBoolNode in traversers
This is just refactoring to clean up some duplicate code. A new test
is added to make sure this doesn't break UnfoldShortCircuitAST.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I108e646f71ba631cbd5dad2055b64e6a30159742
Reviewed-on: https://chromium-review.googlesource.com/894207
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
15443eba
|
2018-01-31T16:41:53
|
|
Fix angle_gles1_conformance_tests compilation in Chromium.
BUG=angleproject:2303
Change-Id: If22dd174d2a7b50b1416fa760494e99bbc813985
Reviewed-on: https://chromium-review.googlesource.com/894839
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
61d5325e
|
2018-01-31T14:49:24
|
|
D3D9: Improve varying packing failure mode.
D3D9 has a special limitation on varying packing, where each
variable takes up a full register width, and cannot share space
with other packed varyings.
A bug was counting registers incorrectly on D3D9. Fix this by
introducing a new limitation exposed to the ANGLE front-end via
the gl::Limitations structure. Now varying packing will fail
correctly in the ANGLE linking front-end with a more descriptive
error message, as such:
"Could not pack varying blah"
"Note: Additional non-conformant packing restrictions are enforced on D3D9."
Also change the packing so that input built-in variables are
counted towards varying limits (e.g. gl_PointSize), except for
gl_Position. On D3D9 we don't pack gl_PointSize, since it is
used in a special extra PSIZE register.
Also update some tests to be more robust.
Bug: chromium:804799
Change-Id: I9027266a8b66a28626f038f259bff42ebf09dcd2
Reviewed-on: https://chromium-review.googlesource.com/889898
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
191a84a8
|
2018-01-31T16:09:45
|
|
Fix VK_NOT_READY for vkAcquireNextImageKHR
The error was not handled, as is the cause for the bug. So far we'd
better wait until a valid image index is ready.
BUG=angleproject:2301
Change-Id: I49a5545d0f2e0cf6cfbb3f604ab0602f8a131d12
Reviewed-on: https://chromium-review.googlesource.com/895402
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9bf55527
|
2018-01-29T13:56:23
|
|
Fix the incorrect calculation for MAX_NAME_LENGTH
The old implementation forgot to consider the instance array situation.
This change will use unified method to calculate the interface block's
MAX_NAME_LENGTH. It also removes some cases which have already passed
from expectation files.
BUG=angleproject:1920
TEST=angle_end2end_tests
*program_interface_query.uniform_block.resource_list.block_array*
*program_interface_query.shader_storage_block.resource_list.block_array*
Change-Id: I6ef53951487e6366d69ecaa43e4df6824baad042
Reviewed-on: https://chromium-review.googlesource.com/890386
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
79de62c6
|
2018-01-31T10:47:14
|
|
Explicitly suppress -Wimplicit-fallthrough for angle and its deps.
No behavior change since that warning isn't enabled anywhere yet, and
it's opt-in. This is a prerequisite for
https://chromium-review.googlesource.com/c/chromium/src/+/895726
Bug: chromium:177475
Change-Id: Ie5ffccd240a65646fe07e7d4475f63c4e8620746
Reviewed-on: https://chromium-review.googlesource.com/895728
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
e13f7ebe
|
2018-01-26T17:08:49
|
|
Make NVIDIA constant register zero skip specific to VS
It was found that the driver issue only affects vertex
shaders, so the workaround can be simplified to affect only
vertex shaders.
BUG=angleproject:2294
TEST=WebGL conformance tests on passthrough command buffer,
angle_end2end_tests
Change-Id: Ie7fb4e75a3999e1de3d5c20d3de21e7ebb08f148
Reviewed-on: https://chromium-review.googlesource.com/889099
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
199f4294
|
2018-01-19T19:04:05
|
|
Vulkan: Enable on Android
Add Android DisplayVk and WindowSurfaceVk variants.
Build Vulkan backend and validation layers on Android
if toolchain uses required NDK API level.
Fix validation layers discovery to work on Android.
BUG=angleproject:2314
TEST=angle_end2end_tests builds and runs on Nexus 5X, 12 VULKAN tests pass
Change-Id: Iac2ec4ecd6470a7552f9f60c023ba1760aa090c5
Reviewed-on: https://chromium-review.googlesource.com/887797
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
bd6ae4aa
|
2018-01-29T15:51:18
|
|
Vulkan: Don't create zero-sized textures.
Make sure the old resources are deleted but do not create new resources.
BUG=angleproject:2161
Change-Id: Ia6685e5c67b160d9bcd503983aee9607b2bd402c
Reviewed-on: https://chromium-review.googlesource.com/891644
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
513bc77d
|
2018-01-29T15:50:24
|
|
Vulkan: Allow dEQP to create Vulkan displays.
BUG=angleproject:2161
Change-Id: Ia2d4b4edcf9a40621573f124d14147224bbd8431
Reviewed-on: https://chromium-review.googlesource.com/891803
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
13fd988c
|
2018-01-29T15:47:38
|
|
Vulkan: Add the Vulkan API to gpu_test_expectations.
BUG=angleproject:2161
Change-Id: I7eda4d654cd0c0bc55ff344c5927d738ce592fe4
Reviewed-on: https://chromium-review.googlesource.com/891839
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6969132c
|
2018-01-30T10:40:08
|
|
ES31: update deqp tests for renderbuffer integer formats.
These deqp tests were fixed by this change:
https://chromium-review.googlesource.com/c/angle/angle/+/878021.
BUG=angleproject:2315
Change-Id: Ib0c73bdd3cc1dde554c8e30286c08f92d4f90fd2
Reviewed-on: https://chromium-review.googlesource.com/892402
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
efb5a5c8
|
2018-01-29T15:56:59
|
|
Vulkan: Fix swaps done right after a clear.
We were missing a dependency insertion between the Framebuffer and
its attachments, only during clear operations. Also renames a few
methods to make them more consistent.
Bug: angleproject:2264
Change-Id: Ic3af5b34b6de900ea2cc1b765f8d3d69f7f9a131
Reviewed-on: https://chromium-review.googlesource.com/891985
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5dd4ad89
|
2018-01-29T13:53:43
|
|
Vulkan: Add a perf test for the Pipeline cache.
This micro-benchmark can be used to measure the performance impact
of changing the Pipeline cache. For instance, we can check if changing
the size of the hash key affects performance significantly.
Also updates the build files so angle_perftests can see vulkan.h, and
makes the Vulkan headers an explicit source set.
This test currently shows that a lot of time is spent in PMurmurHash,
with some time also spent in memcmp.
Bug: angleproject:2163
Change-Id: Ie8bb3e31d58590f373d28cbbb59f7e372b80cc29
Reviewed-on: https://chromium-review.googlesource.com/884882
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
12c03761
|
2018-01-25T12:22:33
|
|
Resubmit: Use ImmutableString for HLSL texture references
This fixes an issue in the original revision of this patch by adding
a operator<< to TInfoSinkBase that takes ImmutableString as a
parameter.
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: I52e984657a3aba3e6fe67a82b401c6b8de557d18
Reviewed-on: https://chromium-review.googlesource.com/890522
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
e7624004
|
2018-01-27T18:27:07
|
|
Fix Android build
After https://chromium-review.googlesource.com/887944
"angle_common" depends on "log" on Android.
Failed to link angle_shader_translator during ANGLE roll.
BUG=angleproject:1660
Change-Id: I9b0730901bdcf9cab64311994d65a577a1358eeb
Reviewed-on: https://chromium-review.googlesource.com/890603
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
66f73b73
|
2018-01-22T14:39:10
|
|
Improve the dev setup instructions on Linux
Bug: angleproject:1944
Change-Id: I646d8c346f616b34eabcc10e06a59d0c97472ec1
Reviewed-on: https://chromium-review.googlesource.com/879384
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: 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>
|