|
29843628
|
2018-11-01T17:26:51
|
|
Fix failing dEQP EGL tests.
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb888_depth_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb888_depth_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb888_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb888_no_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb565_depth_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb565_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgb565_no_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgba8888_no_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgba8888_depth_no_stencil
dEQP-EGL.functional.query_surface.simple.pbuffer#rgba8888_depth_stencil
dEQP-EGL.functional.negative_api#choose_config
dEQP-EGL.functional.negative_api#swap_interval
Bug: angleproject:2546
Change-Id: Ie80e3ee3c65f330d2030b4d7da59cb964e4ea0a5
Reviewed-on: https://chromium-review.googlesource.com/c/1313233
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a31b747c
|
2018-11-12T17:48:03
|
|
Whitespace change to cq.cfg.
Pick up the correct config after refs.cfg was added.
Bug: 833848
Change-Id: I472f2ca56598ef2ddf030b28ef87f3f52829b610
Reviewed-on: https://chromium-review.googlesource.com/c/1332530
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5da0d5c4
|
2018-11-12T17:46:25
|
|
Add missing refs.cfg.
This is necessary for CQ/Luci operation.
Bug: 833848
Change-Id: Ib42216d3a2ee58e819f42fc9535fa91797f55200
Reviewed-on: https://chromium-review.googlesource.com/c/1332529
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
|
|
0ec2ba21
|
2018-11-12T17:42:41
|
|
Whitespace change to cq.cfg.
This should trigger luci-config. Also updates OWNERS which were missed
from the last commit.
Tbr: tandrii@chromium.org
Bug: chromium:833848
Change-Id: I23e1583d760acd4addd10f8b224518c702d8745f
Reviewed-on: https://chromium-review.googlesource.com/c/1332528
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0b185832
|
2018-11-12T11:52:16
|
|
Copy configs from infra/config branch.
Also adds some documentation and updates OWNERS.
Bug: 833848
Change-Id: I1e9adf9b84a776efceb5a529a73310f515e50c70
Reviewed-on: https://chromium-review.googlesource.com/c/1330681
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
|
|
03d1a5ed
|
2018-11-12T11:34:24
|
|
Vulkan: Use global buffer barriers.
This switches from using resource barriers for buffers to using global
barriers. This matches the general advised best practice. It also
allows us to combine multiple barriers into one. On a draw we might
combine all the vertex and index barriers into a single barrier call.
We implement this using a bit of extra state tracking in BufferHelper.
Bug: angleproject:2828
Change-Id: I196b368804ff50e60d085687a643e5566ba1c5b6
Reviewed-on: https://chromium-review.googlesource.com/c/1309977
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
48f63f90
|
2018-10-26T17:20:50
|
|
ES31: add row major matrix support (part 2)
This patch implements read/write vector data in matrix or matrix data directly
in a shader storage block with row_major qualifier.
Bug: angleproject:1951
Change-Id: Id7847e2245b09414709361412a95c4dd84b9ee97
Reviewed-on: https://chromium-review.googlesource.com/c/1304019
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
50bf0429
|
2018-11-01T23:43:52
|
|
Vulkan: add depth-only or stencil-only tests
These tests make sure that a depth- or stencil-only format that is
emulated with a depth/stencil one does not affect clear/draw in such a
way that it would expose the hidden aspect.
By nature of the emulation, it's not trivial to read back the hidden
aspect. This test simply makes sure the hidden aspect doesn't affect
rendering, but is not a definitive test of correctness.
Bug: angleproject:2815
Change-Id: I158937faa019487f6fa08154406c152753a1934b
Reviewed-on: https://chromium-review.googlesource.com/c/1314188
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5d2dfa46
|
2018-11-03T09:28:17
|
|
ES31: Add array of arrays support in SSBO
Bug: angleproject:1951
Change-Id: I5e92b75a59a3ab24a34b827ae6f968961b8bea49
Reviewed-on: https://chromium-review.googlesource.com/c/1317376
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
2fa2147f
|
2018-11-06T15:52:33
|
|
Enable texture multisample extension on ES3 D3D
Update maxIntegerSamples, maxDepthTextureSamples and maxColorTextureSamples
if the extension is enabled on ES 3.0.
TEST=TextureMultisampleTest.*
TEST=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: I8c215f990ff5d93611b1bc89de9a43f3d392e8d4
Reviewed-on: https://chromium-review.googlesource.com/c/1319251
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
|
|
d856ca48
|
2018-10-31T16:55:12
|
|
Vulkan: add clear test for emulated stencil or depth formats
S8_UINT and D24_UNORM_X8_UINT are the only formats currently that are
single-aspect and are possibly emulated with a packed depth-stencil
format if it's not supported. A flag to FeaturesVk has been added as a
way to force this behavior for the sake of testing.
This test is added to ensure the correct clear algorithm is used for
this case. Additionally, this case is detected and the other aspect is
forcefully cleared to 0 whenever the original aspect is cleared.
Bug: angleproject:2815
Change-Id: Ief3039d66bbf46468213b9e3224f7cc7541c3a2e
Reviewed-on: https://chromium-review.googlesource.com/c/1312453
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
743899de
|
2018-10-19T13:53:28
|
|
ES31: Implement MAX_SHADER_STORAGE_BLOCK_SIZE
Bug: angleproject:1951
Change-Id: I6353e6ed10a8b441bfbebc10fa6a07cde1cae7d8
Reviewed-on: https://chromium-review.googlesource.com/c/1317377
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
905ee082
|
2018-10-26T16:16:34
|
|
Vulkan: Fix cleanup race condition on Context destroy
In Context::onDestroy(), e7b3fe21866454bd3ea983acede162d34ae03dd8 had
moved surface deletion first which down the line caused
RendererVk::finish() to be called.
bf7b95db6b6f039f6c8797f1f4b930d46a761828 however made surface deletion
unnecessary, which means finish was never called.
This commit adds an explicit finish in Context::onDestroy(). In truth,
the wait is only necessary until all command buffers submitted for this
particular context have finished. This optimization is deferred to a
possible future work.
Bug: angleproject:2811
Change-Id: I56e6c88d3b4a6ec73f70d80d7775a0c85be651ea
Reviewed-on: https://chromium-review.googlesource.com/c/1302838
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
448b99f1
|
2018-11-07T15:16:00
|
|
Add WebKit bounds checking to Chrome credits.
We were not respecting the terms of the license that this piece
of code requests for redistribution.
I noticed this when investigating adding a new third_party library
and wanted to display its license in about:credits. This change
adds a special file that the licnese check in Chrome uses and
fixes the naming of the README for this script.
Bug: None
Change-Id: Ib33e9fe4a4e5b2968780bb6d8d6b39119b0361a7
Reviewed-on: https://chromium-review.googlesource.com/c/1323855
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1bf18ce9
|
2018-10-19T15:34:02
|
|
Implement GL_ANGLE_multi_draw
This patch adds entrypoints glMultiDrawArraysANGLE,
glMultiDrawElementsANGLE, glMultiDrawArraysInstancedANGLE,
annd glMultiDrawElementsInstancedANGLE
Bug: chromium:890539
Change-Id: Ic9c374c53892460f44ca6e73a253b78473ac2dff
Reviewed-on: https://chromium-review.googlesource.com/c/1282268
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
bc5834cd
|
2018-11-06T11:13:50
|
|
Vulkan: Use dynamic state for Viewport and Scissor.
This reduces the size of the pipeline cache descriptor under 256 bytes.
Further improves the speed of cache query. Has the minor cost of
needing more state application during a new command buffer or render
pass.
Bug: angleproject:2522
Change-Id: I3d71e457a36084ac4748d04fe3c9bab4caad503c
Reviewed-on: https://chromium-review.googlesource.com/c/1316888
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
77b2436e
|
2018-11-05T22:39:29
|
|
Vulkan: Reduce PipelineDesc size.
This packs the desc into 288 bytes. Down from over 400. The hashing and
memcmp functions are sped up considerably.
Improves performance in the VulkanPipelineCachePerf test by 50% and
also improves performance in the state changing draw call test by 20%.
Bug: angleproject:2522
Change-Id: I72ed191a93721b875684f647f806c09be4e66821
Reviewed-on: https://chromium-review.googlesource.com/c/1308460
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3d86e89b
|
2018-11-02T16:29:44
|
|
Vulkan: properly handle 0-width or 0-height framebuffers
The test for whether 0-width or 0-height is not given was doing
width != 0 || height != 0
which mistakenly used || instead of &&.
Bug: angleproject:2910
Change-Id: Iaa41edffcfe1f8553e8fbefb9bc3b12a7f33a5a6
Reviewed-on: https://chromium-review.googlesource.com/c/1316028
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
37297a4f
|
2018-11-02T17:04:26
|
|
Don't build VulkanCommandBufferPerfTest on Linux
Since it's flaky
Bug: angleproject:2945
Change-Id: Iac7b465ae1ebefbde3b23267c6974209de664362
Reviewed-on: https://chromium-review.googlesource.com/c/1315836
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1590fcc4
|
2018-11-01T12:44:39
|
|
Add a spec and tests for GL_ANGLE_memory_size.
Change the data type of buffer memory sizes to 64 bit integers.
BUG=892288
Change-Id: I10e07b86f2ccc0cb61c8d7ee0d439e00d5eb8d3a
Reviewed-on: https://chromium-review.googlesource.com/c/1312244
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1c0f151e
|
2018-10-29T15:57:25
|
|
Implement missing posix utils
Bug: angleproject:2923
Change-Id: I35fee6303f07c7b3a931f876a8d9d4ba54c91630
Reviewed-on: https://chromium-review.googlesource.com/c/1315607
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6ba22ee1
|
2018-10-26T16:15:40
|
|
GL: Implement EGL_ANDROID_get_frame_timestamps.
BUG=angleproject:2936
Change-Id: I758d797d185b2de330cce3401bfeef76c7df590e
Reviewed-on: https://chromium-review.googlesource.com/c/1302836
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
99d0463c
|
2018-09-20T12:12:43
|
|
Windows: add support for SpriteVisuals as a native window type.
Enable SpriteVisuals to work along side HWNDs so that Angle rendered content can be
hosted with Windows::UI::Composition APIs or XamlIslands in desktop Win32 applications.
Includes a whitebox test, verified Win7 compatibility
For more info see:
https://docs.google.com/document/d/1ggv6H-aK1a3pXNMTtMF6h0Bv0rulIeBpBxBBCJYR6Zs/edit?usp=sharing
Bug: angleproject:2947
Change-Id: Id005739553be2a6268cd4543f1b07aaf89760422
Reviewed-on: https://chromium-review.googlesource.com/c/1236844
Commit-Queue: James Clarke <james.clarke@microsoft.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a6e8a0c5
|
2018-11-02T15:11:50
|
|
ES31: Simplify IsInShaderStorageBlock function
Bug: angleproject:1951
Change-Id: I0501502fa2201953a3dad4b18103ff5ae20db1bf
Reviewed-on: https://chromium-review.googlesource.com/c/1314298
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
caeb1e89
|
2018-11-01T18:13:22
|
|
Vulkan: Allow unlimited simultaneous descriptor sets.
This changes the fixed array into a STL vector. Instead of storing
Descriptor Pools by value we now store them by pointer. This allows the
vector to resize without changing the address of the Descriptor Pool.
Also enables some more Vulkan perf tests that were crashing before.
Bug: angleproject:2938
Change-Id: I8a88d5315b941c4f54205a9957e2834fe02ada84
Reviewed-on: https://chromium-review.googlesource.com/c/1311395
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c0b6c639
|
2018-09-06T15:02:04
|
|
Implement GetTexLevelParameter api of texture multisample extension
This patch adds GetTexLevelParameterivANGLE and GetTexLevelParameterfvANGLE.
TEST=TextureMultisampleTest.GetTexLevelParameter*
TEST=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: Id702ba31df36ab65f46b697d480b5bf01b87e360
Reviewed-on: https://chromium-review.googlesource.com/c/1295830
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
|
|
502d2e21
|
2018-11-01T11:06:23
|
|
Vulkan: Crunch RenderPassDesc.
This reduces the size of the RenderPass desc from 64 to 12 bytes.
Bug: angleproject:2522
Change-Id: Iff2df87ba65be0bd976bba81c76c285cb0fa1ceb
Reviewed-on: https://chromium-review.googlesource.com/c/1308459
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2197dc52
|
2018-10-30T11:29:58
|
|
Vulkan: Implement masked depth & stencil clear
This commit also adds tests for clearing depth and stencil with
mask/scissor.
Bug: angleproject:2540
Change-Id: I30dd840afd6cdd4e3a38c50fcba4c8623513ceb0
Reviewed-on: https://chromium-review.googlesource.com/c/1307585
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
580baf37
|
2018-10-24T10:15:18
|
|
Recompile D3D11 Blit Shaders
Recompile Blit11 shaders with Microsoft HLSL Shader Compiler
9.29.952.3111.
Bug: angleproject:2870
Change-Id: I688e5b2ce23ef157c1bb879d5adc49fbecb4dd21
Reviewed-on: https://chromium-review.googlesource.com/c/1298003
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6bf09284
|
2018-10-31T13:45:32
|
|
Scale down a slow index buffer perf test.
This test was slow enough that running 20k iterations might have been
causing a timeout on the Nexus 5.
Bug: angleproject:2923
Change-Id: I03f6e95135d8c521e6ef3e81bc9a4b0dfd7f19df
Reviewed-on: https://chromium-review.googlesource.com/c/1310693
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5ca3e5a0
|
2018-10-31T11:13:29
|
|
Fix ShaderStorageBlockOutputHLSL::writeEOpIndexDirectOrIndirectOutput
https://chromium-review.googlesource.com/c/1304017 removed str()
wrapping values passed to TInfoSinkBase::operator<<().
This broke ANGLE roll
https://chromium-review.googlesource.com/c/chromium/src/+/1309331
failing compile on linux-libfuzzer-asan-rel bot.
Looks like libfuzzer compiler has a bug, not being able to find
sh::BlockLayoutEncoder::BytesPerComponent.
Wrapping it in str() works around this.
Bug: angleproject:1951
Change-Id: I2deb573667dc1e88d352bad1933c269ec36cf398
Reviewed-on: https://chromium-review.googlesource.com/c/1309975
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d60e42f8
|
2018-10-25T16:33:16
|
|
ES31: add row major matrix support (part 1)
This is the first patch to enable row major matrix suppot in series. This patch
ensures that we can get correct location when we load/store data from matrix.
Currently, only scalar data load/store works well.
mat2x3 data
The location of data[x][y] will be:
data.offset + x * scalarStride + y * matrixStride //row_major
data.offset + x * matrixStride + y * scalarStride //column_major
Bug: angleproject:1951
Change-Id: I5bd7bad7d293219ba610f18eeafc56e70e36de43
Reviewed-on: https://chromium-review.googlesource.com/c/1304017
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
193a284d
|
2018-10-30T17:28:41
|
|
Vulkan: Split vk::CommandGraphResource.
This adds two subclasses: RecordableGraphResource and
QueryGraphResource. Each specializes for Buffer/Image/Frambuffer use
cases and Query use cases respectively. No virtual functions are added
to keep best performance.
We also change the CommandGraph API slightly to optimize away the check
for a barrier resource. This requires exposing the set current barrier
API on the CommandGraph.
Bug: angleproject:2828
Change-Id: I1c23f52bfe04cc682a00b245d63c3ac9a651615d
Reviewed-on: https://chromium-review.googlesource.com/c/1305994
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
557a1ee4
|
2018-10-30T17:26:24
|
|
Make perf tests faster in correctness-only mode.
When running with "--one-frame-only" we can also skip the test warmup.
Also we can reduce the internal iteration count to 1 to make the tests
as fast as possible.
Bug: angleproject:2923
Change-Id: I2f82ae0dd237767ea7b15074e459ed1094ba9943
Reviewed-on: https://chromium-review.googlesource.com/c/1308737
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9a79c889
|
2018-10-29T17:08:42
|
|
Run DifferentStencilMasks tests
This test was added and referenced, but was actually never added to the
list of files to be compiled. The most recent validation work has been
regarding WebGL.
This test verifies the behavior when different stencil masks are set for
front and back faces, which is unsupported in D3D and disallowed in
WebGL. In the interest of running the test on all back ends, and that
the validation was modified last to improve WebGL support, the test runs
in WebGL compatibility mode.
Bug: chromium:806557
Change-Id: I7615b9fc18d4203ed342e23881bea6bdd9b3864c
Reviewed-on: https://chromium-review.googlesource.com/c/1306256
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3402d523
|
2018-10-30T15:14:52
|
|
Try to reduce variance in angle_perftests.
This change does a few things:
- make perf test runner script print % variation instead of stddev
This makes it a bit more clear how much variance there is.
- stabilize CPU in the render perf tests
Setting a thread affinity and priority should stop from switching cores
during the run. Hopefully can prevent background noise from changing
the test results.
- warm up the benchmark with a few iterations
This should hopefully make the test results a bit more stable.
- output a new normalized perf result value
The new result is normalized against the number of iterations. So it
should hopefully be stable even if the number of iterations is changed.
- increases the iteration count in the draw call perf tests.
These tests were completely dominated by SwapBuffers time. Increasing
the iterations per step means we actually are bottlenecked on CPU time
instead.
Bug: angleproject:2923
Change-Id: I5ee347cf93df239ac33b83dc5effe4c21e066736
Reviewed-on: https://chromium-review.googlesource.com/c/1303679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
0ea96210
|
2018-10-30T15:14:51
|
|
Vulkan: Enable more perf tests.
Also fixes the check for the correct UINT index extension that wasn't
available on Vulkan. Also includes a workaround for the mock ICD not
implementing buffer state for index ranges.
Bug: angleproject:2923
Change-Id: Iab35809d15f890525a9e658d4148272c46cf1320
Reviewed-on: https://chromium-review.googlesource.com/c/1308733
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
763cec07
|
2018-10-26T14:19:54
|
|
Vulkan: Add warnings for cache struct packing.
This adds diagnostic warnings for packed cache structures. It ensures
the packed versions of the structures don't have any unexpected
misalignments or inserted members. This gives us consistent
behaviour and ensures all memory is initialized.
Implemented for Clang/GCC/MSVC.
Bug: angleproject:2522
Change-Id: I6ec453a40d292e4a498319ffa767988a502d225e
Reviewed-on: https://chromium-review.googlesource.com/c/1302533
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
af9dd608
|
2018-10-29T22:58:56
|
|
Fix UpdateAttribBindingByVertexAttribDivisor test.
Test should clear before drawing. With the clears added it became
apparent the second draw wasn't working because an attrib was left in
instanced mode after the first draw.
BUG=angleproject:2672
Change-Id: I6c3ee7302d24babb80a9b9affcf357145bb03dcb
Reviewed-on: https://chromium-review.googlesource.com/c/1306822
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
7cba6be8
|
2018-10-30T15:37:52
|
|
Revert "Vulkan: Roll VK deps forward"
This reverts commit d00a9a1447d48299800ac62b8955c861cd362d10.
Reason for revert: Suspect for breaking Debug bots.
Original change's description:
> Vulkan: Roll VK deps forward
>
> Roll VK Headers/Tools/Loader/ValidationLayers forward.
> There's a build improvement as well as many new checks.
>
> Added new source file dep, convert_to_renderpass2.cpp, used by core_
> validation for added RenderPass2 checks.
>
> Bug: angleproject:2937
> Bug: chromium:845519
> Change-Id: Id5c30c5bfc684c365a8ad97c3289bccc02afb3b3
> Reviewed-on: https://chromium-review.googlesource.com/c/1305673
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@chromium.org,cnorthrop@google.com,tobine@google.com,syoussefi@chromium.org
Change-Id: I5c48315dd8c80510e7dea54cb384c08dce5b6bcb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2937, chromium:845519
Reviewed-on: https://chromium-review.googlesource.com/c/1307695
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
3420dcb0
|
2018-10-29T20:49:38
|
|
Revert "Roll DEQP version forward"
This reverts commit 1f056becd76b7733b78d65f5ca12b8c84f2e749d.
Reason for revert: The roll didn't run any tests, so they started failing on the bots.
Original change's description:
> Roll DEQP version forward
>
> Bug: angleproject:2937
> Change-Id: I1157b0f3fcdf19ea0b381d9ae4327929a2459267
> Reviewed-on: https://chromium-review.googlesource.com/c/1304993
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@chromium.org,tobine@google.com,timvp@google.com
Change-Id: I4864153685c5dfe339bb704013d9379844a8692d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2937
Reviewed-on: https://chromium-review.googlesource.com/c/1306254
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
749589f8
|
2018-10-25T12:48:49
|
|
Vulkan: Remaining disjoint timer query functions
The following features where missing in c2b576d9e:
- glGetIntegerv with GL_GPU_DISJOINT_EXT: this is currently impossible
to query in Vulkan, so 0 is always returned.
- glGetIntegerv with GL_TIMESTAMP_EXT: this is a way to query GPU
timestamp without performing flushes or waiting for the GPU to finish.
There is no direct correspondance in Vulkan; it's implemented by
making a small submission, with no dependency to other submissions, in
which there is only a timestamp query.
Bug: angleproject:2885
Change-Id: I2341bd610db9084c26b6421c6f8949950ffa4de8
Reviewed-on: https://chromium-review.googlesource.com/c/1299873
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
77abad8d
|
2018-10-25T17:03:48
|
|
Remove Context::gatherParams.
This won't be used in the future. It saves a few instructions on each
entry point.
Also refactors a bit of touched code. Also adds in a missed entry
point: "glTexStorage2DMultisampleANGLE".
Removes related code and moves remaining helper code in params.h into a
new file entry_point_utils.h.
In total this patch series reduces overhead by up to 5%.
Bug: angleproject:2933
Change-Id: Ifb49564597cde6ba82dfc3e185227619fdc62612
Reviewed-on: https://chromium-review.googlesource.com/c/1299478
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1f056bec
|
2018-10-29T09:48:05
|
|
Roll DEQP version forward
Bug: angleproject:2937
Change-Id: I1157b0f3fcdf19ea0b381d9ae4327929a2459267
Reviewed-on: https://chromium-review.googlesource.com/c/1304993
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
d00a9a14
|
2018-10-29T10:23:30
|
|
Vulkan: Roll VK deps forward
Roll VK Headers/Tools/Loader/ValidationLayers forward.
There's a build improvement as well as many new checks.
Added new source file dep, convert_to_renderpass2.cpp, used by core_
validation for added RenderPass2 checks.
Bug: angleproject:2937
Bug: chromium:845519
Change-Id: Id5c30c5bfc684c365a8ad97c3289bccc02afb3b3
Reviewed-on: https://chromium-review.googlesource.com/c/1305673
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
0da64b5e
|
2018-10-29T08:54:59
|
|
Add build-id to tests for Android
This allows Android Studio to correctly match debug symbols.
Change-Id: I2bd15e11162d57a3c2cee4434afe6d4831581c25
Reviewed-on: https://chromium-review.googlesource.com/c/1304135
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
25224e78
|
2018-10-22T11:56:02
|
|
Vulkan: add GPU trace events
RendererVk now tries, as best as it can, to match the CPU and GPU timers
on init as well as every finish(). A clock-sync event is generated for
each such synchronization point.
RendererVk::traceGpuEvent() is a new function that, given a command
buffer, performs timestamp queries corresponding to GPU events. These
queries are read back when done, without incurring GPU bubbles, at which
point an event is generated with that timestamp.
Bug: angleproject:2908
Change-Id: I08d7d11ff9f8ad6c9f9a9899767c9cd746d0623e
Reviewed-on: https://chromium-review.googlesource.com/c/1296954
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
4a22f4b0
|
2018-10-23T14:36:47
|
|
ES31: Add atomic_uint support to HLSL translator
This is the first commit in a series to enable atomic counter buffers.
Adds support for atomic counters to the GLSL->HLSL translator using
RWByteAddressBuffer.
Bug: angleproject:1729
Test: angle_end2end_tests
Change-Id: I3b7e08f9256dc9bdbcc02ad8910040f2bc14aeac
Reviewed-on: https://chromium-review.googlesource.com/c/1291329
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
df73a8e5
|
2018-10-25T16:11:20
|
|
ES31: Use std::map<const TField *, BlockMemberInfo> to save ssbo info
Bug: angleproject:1951
Change-Id: I9d6a19c0d63065db69985845a1cd68cfd4b99d1f
Reviewed-on: https://chromium-review.googlesource.com/c/1298913
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bfe31c42
|
2018-10-25T17:03:47
|
|
Remove uses of DrawCallParams.
Packing and referencing this structure was causing unnecessary draw
call overhead. This improves performance on all the back-ends. Impacts
the GL back-end the most.
In total this patch series reduces overhead by up to 5%.
Bug: angleproject:2933
Change-Id: Ief416ab874e481baf960d02965978a311214a146
Reviewed-on: https://chromium-review.googlesource.com/c/1299477
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8edb7188
|
2018-10-10T15:54:23
|
|
ES31: Add structure field member support in SSBO
This patch adds the structure field member support in SSBO. To support it,
below things are done:
1. Calculate the offset and arrayStride in SSBO structure.
2. Support array of arrays translation.
Bug: angleproject:1951
Change-Id: If8f233e6388d5bb905e78c39a85112d394298138
Reviewed-on: https://chromium-review.googlesource.com/c/1278097
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c1fd7376
|
2018-10-26T22:48:39
|
|
Move index range calculations into VertexArray.
This is in preparation for removing the entire DrawCallParams struct.
This struct was big enough to cause a performance hit on draw call perf
tests just by virtue of initializing the fields. Also dereferencing the
struct members is slower than reading function parameters since it adds
an indirection.
Also includes some error refactoring to enable moving code to a shared
location.
In total this patch series reduces overhead by up to 5%.
Bug: angleproject:2933
Change-Id: Ib663f2538c14ac30d4c31fd10d6350be469626e2
Reviewed-on: https://chromium-review.googlesource.com/c/1298380
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fefaba5b
|
2018-10-26T16:16:53
|
|
Regenerate hashes for the builtin symbol table.
BUG=chromium:890539
Change-Id: Ia5bdf652dc37a466560071b4fe2cdc7d89ff941f
Reviewed-on: https://chromium-review.googlesource.com/c/1302837
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7cf9cd24
|
2018-10-09T15:27:32
|
|
Add flags to shader translator to emulate gl_DrawID
Adds support for translating gl_DrawID for implementation of
GL_ANGLE_multi_draw.
Currently the change only supports and allows emulation of the
draw id using a uniform variable named `gl_DrawID`. This uniform is
mapped in the translated shader to a hashed name that does not
use the gl_ namespace
Bug: chromium:890539
Change-Id: I08a246ca911e88e733ccdf22f1ed69dcae948e05
Reviewed-on: https://chromium-review.googlesource.com/c/1271957
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
|
|
e357535f
|
2018-10-26T15:08:56
|
|
Fix entry points.
A race broke the ANGLE tree due to an entry point formatting change.
Bug: angleproject:2890
Bug: angleproject:2928
Change-Id: I08cc4e13c9d5bd1888c0d891113d3042759d43dc
Reviewed-on: https://chromium-review.googlesource.com/c/1302534
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b8543630
|
2018-10-02T19:46:14
|
|
Support GL_OES_texture_border_clamp
Added support for GL_TEXTURE_BORDER_COLOR and GL_CLAMP_TO_BORDER in
OpenGL/OpenGLES, Direct3D9 and Direct3D11 backends.
For integer textures in OpenGLES3 contexts these additional entry points
are available now:
void glTexParameterIivOES(enum target, enum pname, const int *params);
void glTexParameterIuivOES(enum target, enum pname, const uint *params);
void glGetTexParameterIivOES(enum target, enum pname, int *params);
void glGetTexParameterIuivOES(enum target, enum pname, uint *params);
void glSamplerParameterIivOES(uint sampler, enum pname, const int *params);
void glSamplerParameterIuivOES(uint sampler, enum pname, const uint *params);
void glGetSamplerParameterIivOES(uint sampler, enum pname, int *params);
void glGetSamplerParameterIuivOES(uint sampler, enum pname, uint *params);
BUG=angleproject:2890
TEST=angle_end2end_tests.TextureBorderClamp*
Change-Id: Iee3eeb399d8d7851b3b30694ad8f21a2111f5828
Reviewed-on: https://chromium-review.googlesource.com/c/1257824
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
20dc1c9b
|
2018-10-26T13:13:32
|
|
Vulkan: Make layers not depend on libvulkan.
On Android the layers were adding a dependency on libvulkan. This
isn't necessary. We can move this dependency up the change to
libANGLE.
Bug: angleproject:2935
Change-Id: I63460c05ca99c5afb6e863af9d6142576aa910b9
Reviewed-on: https://chromium-review.googlesource.com/c/1301721
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a390ebd9
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
Relands 27a472c60 with reinterpret_cast changed to C-style cast to
support types that are pointers on some platforms and integers on
others.
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined
behavior with p. Additionally, %p already prints 0x with both gcc and
clang. This results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", (uintptr_t)x);
printf("|%016" PRIxPTR "|\n", (uintptr_t)y);
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: Idf9f705c3d00f69e41e7603453016276a2e13a64
Reviewed-on: https://chromium-review.googlesource.com/c/1300913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad8fe588
|
2018-10-26T13:06:42
|
|
Don't set native blob cache callbacks if the driver doesn't support it.
BUG=angleproject:2516
Change-Id: I147705e22a7c694d1f22088a9270c579b0941c7d
Reviewed-on: https://chromium-review.googlesource.com/c/1302113
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3ce69ba3
|
2018-10-26T11:25:32
|
|
Fix Win32Timer's Frequency init.
This could cause some problems on the perf bots.
Bug: angleproject:2908
Change-Id: If12e5939ba80b3fd0b9609e7b76df6045e60cb94
Reviewed-on: https://chromium-review.googlesource.com/c/1301849
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9503ae9
|
2018-10-25T17:55:04
|
|
Revert "Add compiler printf attribute to relevant functions"
This reverts commit 27a472c601aa542f48ca5944fb769e2971a0594f.
Reason for revert: Causing failures on 32-bit Linux configs:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8931673733828416640/+/steps/compile/0/stdout
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:257:11: error: reinterpret_cast from 'EGLNativeWindowType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(win), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/angle/src/common/debug.h:230:112: note: expanded from macro 'EVENT'
#define EVENT(message, ...) gl::ScopedPerfEventHelper scopedPerfEventHelper("%s" message "\n", __FUNCTION__, ##__VA_ARGS__);
^~~~~~~~~~~
../../third_party/angle/src/libGLESv2/entry_points_egl.cpp:314:11: error: reinterpret_cast from 'EGLNativePixmapType' (aka 'unsigned long') to 'uintptr_t' (aka 'unsigned int') is not allowed
reinterpret_cast<uintptr_t>(pixmap), reinterpret_cast<uintptr_t>(attrib_list));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Original change's description:
> Add compiler printf attribute to relevant functions
>
> This commit includes fixes to undefined behavior caught by this
> attribute. The following changes have been made:
>
> - 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
> p. Additionally, %p already prints 0x with both gcc and clang. This
> results in a small output change:
>
> void *x = (void *)0x1234;
> void *y = (void *)0x1234567890abcdef;
>
> printf("|%0.8p|\n", x);
> printf("|%0.8p|\n", y);
>
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
> printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
>
> prints:
>
> |0x00001234|
> |0x1234567890abcdef|
> |0x0000000000001234|
> |0x1234567890abcdef|
>
> - %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
> changed to %llu and the relevant argument is cast to unsigned long
> long. This is due to these types being typedefs to unknown types (on
> Linux for example, these are unsigned long, and my guess would be
> unsigned long long on Windows where long is 32 bits).
> - %llu is used for GLuint64, which could be unsigned long (as is on
> Linux). Those arguments are cast to unsigned long long.
> - %p is used for some EGLNative types, but those types may not be a
> pointer. Those arguments are cast to uintptr_t and printed as above.
>
> Bug: angleproject:2928
> Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
> Reviewed-on: https://chromium-review.googlesource.com/c/1289232
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I4f3cea64977bee9f889db6c995371bd2bbc6d81b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2928
Reviewed-on: https://chromium-review.googlesource.com/c/1299480
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
479918de
|
2018-10-22T11:53:51
|
|
Get absolute time from timers
Independent of start()/stop()/getElapsedTime() functionality,
getAbsoluteTime() is added to return the time regardless of whether the
timer is running.
Bug: angleproject:2908
Change-Id: I056aeb6eddfba8757a139934c1cf68e00e860de6
Reviewed-on: https://chromium-review.googlesource.com/c/1296952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6165602f
|
2018-10-24T15:00:50
|
|
Vulkan: Throttle CPU to avoid excessive frame queuing
Unthrottled, the CPU can generate and queue an increasingly large number
of frames with the GPU lagging behind, especially with vsync enabled.
Assuming N swapchain images, this commit adds a wait on fence for the
Nth previous frame before submitting new work, that is the CPU is
always at most N frames ahead of the GPU.
Bug: angleproject:2908
Change-Id: Ieb2bf20168bfe9bc9d8e2219f682b01347c21dec
Reviewed-on: https://chromium-review.googlesource.com/c/1296953
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
79927344
|
2018-10-22T11:41:43
|
|
Vulkan: add wrapper for vkEvent
Bug: angleproject:2908
Change-Id: Id6c9326f85f9ff17b963078f82bcf486bae66a83
Reviewed-on: https://chromium-review.googlesource.com/c/1296951
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
27a472c6
|
2018-10-18T13:04:40
|
|
Add compiler printf attribute to relevant functions
This commit includes fixes to undefined behavior caught by this
attribute. The following changes have been made:
- 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined behavior with
p. Additionally, %p already prints 0x with both gcc and clang. This
results in a small output change:
void *x = (void *)0x1234;
void *y = (void *)0x1234567890abcdef;
printf("|%0.8p|\n", x);
printf("|%0.8p|\n", y);
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(x));
printf("|%016" PRIxPTR "|\n", reinterpret_cast<uintptr_t>(y));
prints:
|0x00001234|
|0x1234567890abcdef|
|0x0000000000001234|
|0x1234567890abcdef|
- %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
changed to %llu and the relevant argument is cast to unsigned long
long. This is due to these types being typedefs to unknown types (on
Linux for example, these are unsigned long, and my guess would be
unsigned long long on Windows where long is 32 bits).
- %llu is used for GLuint64, which could be unsigned long (as is on
Linux). Those arguments are cast to unsigned long long.
- %p is used for some EGLNative types, but those types may not be a
pointer. Those arguments are cast to uintptr_t and printed as above.
Bug: angleproject:2928
Change-Id: I63e9e998c72701ce8582f1ebf25d6374be9090e4
Reviewed-on: https://chromium-review.googlesource.com/c/1289232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
683bb013
|
2018-10-22T11:33:22
|
|
Roll Vulkan-Tools
Includes a fix to mock-icd where vkGetEventStatus returned VK_SUCCESS
which is not a valid return value.
Bug: angleproject:2908
Change-Id: I65a6e30099b9168408a874b8632c4c46e8ef7f57
Reviewed-on: https://chromium-review.googlesource.com/c/1296950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
672267fc
|
2018-10-19T17:01:17
|
|
ES31: Fix that asuint can't accept bool value
This change fixes below errors:
error X3013: 'asuint': no matching 1 parameter intrinsic function
error X3013: Possible intrinsic functions are:
error X3013: asuint(double, out uint x, out uint y)
error X3013: asuint(float|half|int|uint)
When we store a boolean value, we should cast it to uint firstly. Then do the
store.
Bug: angleproject:1951
Change-Id: I8931e540d701ef72bb82846496c698acef1ba1fb
Reviewed-on: https://chromium-review.googlesource.com/c/1295831
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fbc5c555
|
2018-10-24T15:11:40
|
|
fuchsia: Disable GL
I think we'll only need Vulkan. But in any case, the GL code doesn't
build, so disable it for now.
Bug: chromium:808287
Change-Id: I08f8cd09e67d91c08b7632e54bbdc6a11ee57014
Reviewed-on: https://chromium-review.googlesource.com/c/1298381
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
|
|
c3ee7ec0
|
2018-09-21T16:15:03
|
|
Implement EGL_ANDROID_image_native_buffer.
BUG=angleproject:2508
Change-Id: I8ef2ce8320edeb336727905055f47bb299dec2ea
Reviewed-on: https://chromium-review.googlesource.com/c/1238886
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
19603b9e
|
2018-10-18T17:25:33
|
|
ES31: Allow function call, unary, ternary operators in SSBO
When we meet function call, unary or ternary operator in SSBO access chain,
we should transfer the process of them to OutputHLSL.
Bug: angleproject:1951
Change-Id: I740940ac4eee4c5ed52239f14b1d32b1f9cf9385
Reviewed-on: https://chromium-review.googlesource.com/c/1290470
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
5a206950
|
2018-10-22T09:58:25
|
|
GL: Move draw functions from Renderer to Context.
This avoids one more function call + register pushing/popping. Slight
improvement in the command_buffer_perftests.
Bug: angleproject:2877
Change-Id: Ia50a330e62f0bd32266c9f0999810243cbaa41e0
Reviewed-on: https://chromium-review.googlesource.com/c/1293630
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f38cb6d3
|
2018-10-22T11:53:40
|
|
StateManagerGL: Optimize state application.
There are two main optimizations:
1. Inline setDraw*State and maskOutInactiveOutputDrawBuffers.
2. Remove Multiview dirty bits.
The first change is a refactoring only. It moves the code around a bit
so we can hit a fast path and never have to push/pop registers. The
second change is also a no-op since the multiview dirty bits were made
redundant.
Improves performance in the command buffer perftests by 1-5%.
Bug: angleproject:2877
Change-Id: I1632a838371ec8b85c2e06b3b86f08727ca9dacf
Reviewed-on: https://chromium-review.googlesource.com/c/1293629
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7818a85c
|
2018-09-06T15:02:04
|
|
Implement GL_ANGLE_texture_multisample API part
Support GL_ANGLE_texture_multisample extension.
This patch adds enums of multisampled texture and texStorage2DMultisampleANGLE
API.
TEST=angle_end2end_tests.exe --gtest_filter=TextureMultisampleTest*
TEST=angle_end2end_tests.exe --gtest_filter=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: I2cab997edc33aa2d0be6082381545335423f64e0
Reviewed-on: https://chromium-review.googlesource.com/c/804613
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0cc11c68
|
2018-10-12T18:07:18
|
|
StateManagerGL: Remove setGenericShaderState.
We can mutate the BitSetIterator as it clears dirty bits. This removes
the risk of doing a double state update. Improves the proformance of
the GL back-end state update.
Also do an early-out before calling syncDrawArraysState.
Bug: angleproject:2763
Change-Id: Idd25bdd67a6aceff05529a533260b661b07c2928
Reviewed-on: https://chromium-review.googlesource.com/c/1262740
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d4f07760
|
2018-10-19T19:24:07
|
|
GL: Apply dirty bit mask on sync state.
This prevents us from updating some dirty bits in some operations.
It can prevent us from doing things like updating the Program when
we don't use it in a GPU operation.
Also adds Framebuffer dirty bits to TexImage to work around a bug
on the Windows Intel OpenGL driver.
Bug: angleproject:2763
Bug: angleproject:2906
Change-Id: I9f69775fb930a9bbcbd40d0f9012d62a9381c9f8
Reviewed-on: https://chromium-review.googlesource.com/c/1292610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b8eec4a4
|
2018-10-18T17:34:38
|
|
Use angle::Result in front-end (Part 7)
Refactors the gl::FenceNV and gl::Sync classes.
Bug: angleproject:2491
Change-Id: I0fe73d1ccf5407f460e173a3061735b330a88511
Reviewed-on: https://chromium-review.googlesource.com/c/1289712
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f4a789f9
|
2018-10-18T16:56:20
|
|
Use angle::Result in front-end (Part 6)
Refactors the gl::Program, gl::Compiler and gl::Query classes.
Bug: angleproject:2491
Change-Id: I96acecdc6af301a89201bd7f5222a180433e5eb2
Reviewed-on: https://chromium-review.googlesource.com/c/1289711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ae108bd1
|
2018-10-18T15:00:38
|
|
Use angle::Result in front-end (Part 5)
Refactors gl::Buffer and implementation.
Bug: angleproject:2491
Change-Id: Ic6860dac2faf33067965e7117ea8e98dc6a8dc7a
Reviewed-on: https://chromium-review.googlesource.com/c/1283310
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c2328a15
|
2018-10-18T15:00:29
|
|
Use angle::Result in front-end (Part 4)
Handles the gl::Renderbuffer class and its implementation.
Bug: angleproject:2491
Change-Id: I3ef718b492dc39ba640c8f68ed80b536f89ff378
Reviewed-on: https://chromium-review.googlesource.com/c/1283309
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
64b7c4ff
|
2018-10-19T11:38:04
|
|
Use angle::Result in front-end (Part 3)
Handles the gl::Framebuffer class and its implementation.
Bug: angleproject:2491
Change-Id: I3b9c0609e9277264ccdb370596500562df3b7d15
Reviewed-on: https://chromium-review.googlesource.com/c/1280743
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
32643cea
|
2018-10-19T11:38:03
|
|
Use angle::Result in front-end (Part 2)
Handles the gl::Context class and its implementation.
Bug: angleproject:2491
Change-Id: I7b7eb0897d131a194f6b563b7e01756fd7adb7e1
Reviewed-on: https://chromium-review.googlesource.com/c/1280742
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bc6f52f3
|
2018-10-18T18:41:57
|
|
Make BindingPointer::set non-virtual.
This should give more potential for inlining the function. Makes the
non-parameterized set and assign private in OffsetBindingPointer to
prevent user errors.
Bug: angleproject:2891
Change-Id: I0d581a96154c0cd33a93b06ef4a3c162809a8208
Reviewed-on: https://chromium-review.googlesource.com/c/1286378
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd0a0a3c
|
2018-10-18T18:41:57
|
|
Introduce SubjectBindingPointer.
We can share the same pointer for the subject binding and the binding
pointer. This further allows us to optimize buffer re-binding. The
shared memory increases cache coherency and reduces the number of
instructions needed.
Bug: angleproject:2891
Change-Id: Id3162fa79de203f75989e7289ea02cb2ea1bec73
Reviewed-on: https://chromium-review.googlesource.com/c/1270217
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
472ddc82
|
2018-10-18T18:41:56
|
|
Make gl::Buffer an angle::Subject.
This will allow us to share the BindingPointer and ObserverBinding. It
also cleans up the code a little bit.
Bug: angleproject:2891
Change-Id: Ib8e2c34ccd379dc5b5648bac324fa4ff22a5a1a0
Reviewed-on: https://chromium-review.googlesource.com/c/1270216
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
ca8eda41
|
2018-10-18T18:41:56
|
|
Use dispatch table to optimize buffer binding.
Using a table of function pointers is faster than using a switch
followed by a function call. Also more aggressively inline binding
methods.
Based on contribution by mtavenrath@nvidia.com.
In total this patch sequence improves the performance of a buffer
binding perf test by up to 27%.
Test: BindingsBenchmark.Run/gl_100_objects_allocated_at_initialization
Bug: angleproject:2891
Change-Id: Iaab1e2a135b635bd72736d7d1d4271562c3a4ece
Reviewed-on: https://chromium-review.googlesource.com/c/1281783
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
e4c64c3d
|
2018-10-17T14:53:39
|
|
Implement new API/interface for the ANGLE feature-support utility.
The original API is designated as version 0. The new API is
designated as version 1. A new function is provided for determing the
version of the API that can be used.
Bug: angleproject:2794
Change-Id: I8205b462522cbc34d31643ea14815e187497abed
Reviewed-on: https://chromium-review.googlesource.com/c/1278836
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
2b73d625
|
2018-10-18T14:26:33
|
|
Remove SpvPostProcess.h from glslang's BUILD.gn.
Reported by bratell@opera.com.
Bug: angleproject:2727
Change-Id: I92750c11fc7d811fa627c8691f6f047023086239
Reviewed-on: https://chromium-review.googlesource.com/c/1289235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
acd39d18
|
2018-10-18T14:45:21
|
|
Vulkan: Enable 16bpp texture tests
Possibly fixed in 6c6be2cef6c1a8d7a37712aa36d2ef5a1c3990c0.
Bug: angleproject:2649
Bug: angleproject:2656
Change-Id: I0ab97e2d828b6b8643a68ab9b28fc0ccd8f08c48
Reviewed-on: https://chromium-review.googlesource.com/c/1289350
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c2b576d9
|
2018-10-12T14:45:34
|
|
Vulkan: Implement GL_EXT_disjoint_timer_query
- QueryVk::queryCounter() and relevant utils are implemented for the
sake of Timestamp queries.
- TimeElapsed queries are implemented using two Timestamp queries.
Bug: angleproject:2885
Change-Id: Id181bd97f5a24e7e96b3ea1b819483227e64daf0
Reviewed-on: https://chromium-review.googlesource.com/c/1276806
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4765aa7
|
2018-10-12T14:40:29
|
|
Vulkan: fix glGetQueryObject not flushing
glGetQueryObject* requires forward progress in the queue regardless of
whether we are waiting on the result or busy-looping over whether the
results are available. This commit calls flush() if the query has
pending work.
Additionally, this fixes a race condition where glGetQueryObject* may be
accessing a query whose corresponding batch has been submitted but not
yet executed. In such a case, the GPU may not have already reset the
query, so we have to wait on the fence of that batch to make sure the
query results are reliably available.
Bug: angleproject:2855
Change-Id: I977909c6526c0778a13722a8b8b73e54ad0202f6
Reviewed-on: https://chromium-review.googlesource.com/c/1279125
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4163c014
|
2018-10-18T10:25:25
|
|
Skip Texture2DArrayCopy.UnsignedByteFormats on D3D11.
This test appears to be flaky.
Bug: angleproject:2896
Change-Id: Ib0c0ac9ab170edf0f31506f847307bee9b78f770
Reviewed-on: https://chromium-review.googlesource.com/c/1286913
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
945dea36
|
2018-10-17T20:49:06
|
|
Clamp glClearDepthf and glDepthRangef
BUG=angleproject:2884
Change-Id: Ib1867fbd4c2ea3c3b29d2f987d384762f5851e8f
Reviewed-on: https://chromium-review.googlesource.com/c/1276585
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
25843dd6
|
2018-10-16T17:30:48
|
|
Align memory access in Copy32FixedTo32FVertexData
Bug: angleproject:2895
Change-Id: Idfe379e34c4f165b91babcb1990df28fa151d807
Reviewed-on: https://chromium-review.googlesource.com/c/1286373
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4024e217
|
2018-10-17T14:53:29
|
|
perftests: Record trace events to JSON file.
This allows us to view the timeline of events in the trace event
browser. We can extend this to do GPU timestamp queries and analyze
when work is actually in flight.
The trace is enabled in standalone ANGLE only using the flag
--enable-trace with angle_perftests. You can also optionally specify
the trace output file with --trace-file <blah>. The default file is
ANGLETrace.json.
Bug: angleproject:2781
Change-Id: I871f28545d9bf18220b55aaf69e9554dcb4c834d
Reviewed-on: https://chromium-review.googlesource.com/c/1259763
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3a482179
|
2018-10-11T10:34:44
|
|
Vulkan: Implement glFlush
A semaphore pool is implemented to allow dynamic allocation of
semaphores as needed when breaking up a frame with flushes. The pool is
used both for acquiring the next image and for chaining mid-frame
submissions.
RendererVk::flush() is changed so that instead of taking the wait/signal
semaphores as parameters, it would use the last known signaled semaphore
as wait semaphore and allocates a semaphore for signaling. It would
additionally wait for any extra semaphore provided externally (i.e. the
surface's image acquire semaphore).
Bug: angleproject:2504
Change-Id: Iecd2d5535230c48b26a6b7d078710af8730121da
Reviewed-on: https://chromium-review.googlesource.com/c/1276805
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6f1dc51b
|
2018-10-04T14:36:04
|
|
Vulkan: Use a specialized macro for wrapped vulkan calls
Vulkan wrapper functions are fairly straightforward. They call the
Vulkan function and return immediately. The specialized macros
introduced in this commit take care of the final return for brevity of
the warpper.
Additionally, this commit gets rid of ANGLE_EMPTY_STATEMENT in favor of
the more robust macro definition using do {} while (0).
Bug: none
Change-Id: Ia7c68962d1aeee2c06ef210122b345b1a2e54f08
Reviewed-on: https://chromium-review.googlesource.com/c/1262020
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
957e9b82
|
2018-10-05T11:00:50
|
|
Roll clang and other chromium deps
A bug in clang is preventing the use of link time optimization.
Bug: angleproject:2892
Change-Id: Ibe845e82f0db48233f8590189163fd8a5a8df634
Reviewed-on: https://chromium-review.googlesource.com/c/1263905
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c20ead32
|
2018-10-17T16:27:32
|
|
Remove unused lambda capture
This is a preparation CL to remove -Wno-unused-lambda-capture warning suppression.
Bug: chromium:681136
Change-Id: Ib5c1c4eeeed3b7406ede2dea33066c54e5fc3da0
Reviewed-on: https://chromium-review.googlesource.com/c/1286172
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
78bcd2be
|
2018-10-16T15:05:20
|
|
Vulkan: Fix deleting in-use descriptor sets.
Sequences of many frames with uniform updates could lead to a bug where
we attempt to delete descriptor sets that are still in use. To trigger
the bug we need to write enough uniform data to trigger a descriptor
set to be freed. This would correctly trigger refresh sets in the
Program. But if there was a second program idle in the background that
also allocated descriptors from the old pool, the bug would manifest.
Fix this by storing a shared handle to the descriptor pool in the
Program. The dynamic descriptor pool won't recycle descriptor pools
internally unless there are zero outstanding references to the pool.
We could also improve this in a resource sharing situation by keeping
a single shared dynamic descriptor pool per share group.
Includes a contribution from tobine@google.com that adds a test to
cover the bug.
Bug: angleproject:2863
Change-Id: Id585b85f33f8cfa3772ceff3af512d1e4fb0b75a
Reviewed-on: https://chromium-review.googlesource.com/c/1271919
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d8a783c
|
2018-10-09T13:59:56
|
|
Re-land: "ES31: Add vector and matrix support in SSBO for D3D"
Re-land skips ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11 to pass
the bots. In fact, ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11 is
not a regression. The reverted CL added more SSBO features and triggered the
failure. To enable ProgramInterfaceTestES31.GetProgramInterface/ES3_1_D3D11,
we should support SSBO in render pipeline. This needs to bind SSBO to UAV
registers in link time instead of compile time since output variables also
occupies the UAVs. Let's enable this test when we support SSBO in render
pipeline. Currently, we shouldn't block the SSBO implementation in some common
features.
Bug: angleproject:1951
Change-Id: Ic339e8327e79335e6db1d86bedf0072635976f5f
Reviewed-on: https://chromium-review.googlesource.com/c/1282277
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|