|
0a87f08d
|
2019-02-11T11:19:17
|
|
Vulkan: make GenerateCaps a member of RendererVk.
Instead of passing lots of RendererVk member variables into
GenerateCaps(), do the work in a member function.
BUG=angleproject:2672
Change-Id: Icf16f3388174ddb676272ec0fa76a288ce2d1e4e
Reviewed-on: https://chromium-review.googlesource.com/c/1463959
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0029dfe2
|
2019-02-08T18:45:07
|
|
Vulkan: Respect EGL_HEIGHT & EGL_WIDTH in SurfaceVk
If currentExtent is unspecified and EGL_WIDTH & EGL_HEIGHT are provided,
we'll use a surface size of 0xFFFFFFFF. That's not going to work and
appears to be a typo. Use the size specified in EGL_WIDTH & EGL_HEIGHT
instead.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia with an earlier version of
CL 1446496 PS12. It is N/A with later patches.
Change-Id: I7e67b2c796318bed512dd6d5d22ef2183916416d
Reviewed-on: https://chromium-review.googlesource.com/c/1461637
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fe59f6b5
|
2019-01-16T09:34:30
|
|
Vulkan: Implement EGL Images for 2D and Renderbuffer sources.
No support for non-zero mipmaps as sources yet.
Suppress dEQP tests due to apparent driver bugs with scissored clears on depth
or stencil attachments.
BUG=angleproject:2668
Change-Id: Idaa5e70ce9b0c91232fbb989cbf4de1b9134aafb
Reviewed-on: https://chromium-review.googlesource.com/c/1415010
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
abf6dbbb
|
2019-02-08T13:24:10
|
|
Disable MultithreadingTest on Vulkan
This test applies to the OpenGL ES renderer only. Vulkan-only builds fail
this tests because EGL_ANGLE_platform_angle_context_virtualization isn't
provided.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I4668d88a43a707cf385c78a0582a81cfd722ec90
Reviewed-on: https://chromium-review.googlesource.com/c/1461636
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
75d577fb
|
2019-02-04T16:28:28
|
|
Fixed Bug where array initialized with same name of
previously declared variable fails on DirectX.
Combined user defined variables with their unique ids to avoid
overwriting same name variables of different scope.
Bug: angleproject:2126
Change-Id: If9ad9e48f629d83b105d43ee28a50b8176d0e0a1
Reviewed-on: https://chromium-review.googlesource.com/c/1456484
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
238c19e1
|
2019-02-07T09:09:41
|
|
Add fuzzer for xxHash.
Local testing did not turn up any crashes.
Bug: angleproject:2983
Change-Id: I5e87ed0768e5bc4454c1a896f96d09ddd92baf44
Reviewed-on: https://chromium-review.googlesource.com/c/1458656
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
38833111
|
2019-02-06T16:19:49
|
|
Vulkan: implement eglSwapInterval
Uses FIFO with interval 1 and mailbox/immediate with interval 0 (with a
fallback to FIFO). An end2end test is added to make sure the present
mode is correctly set.
Bug: angleproject:2932
Change-Id: I45d2b1e551b5c63c42ca3c8964bd5e62abd2d459
Reviewed-on: https://chromium-review.googlesource.com/c/1456622
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3e01a518
|
2019-02-08T15:53:29
|
|
Make .gni files always use LF endings.
This saves a lot of spam about dirty git formatting when changing
.gni files.
Bug: angleproject:3139
Change-Id: I244d5254ac6bd7bd1a7bedac5c34bd141fe0b9c0
Reviewed-on: https://chromium-review.googlesource.com/c/1460611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2b0553ce
|
2019-02-08T10:07:21
|
|
Implement EXT_instanced_arrays
Bug: angleproject:3015
Change-Id: Ib01cc5e0df6db27981cb843a6bd386de5d10c2db
Reviewed-on: https://chromium-review.googlesource.com/c/1452740
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d058774b
|
2019-02-08T13:32:10
|
|
Refine Ozone suppression.
It's possible that IsOpenGLES doesn't work SurfaceTest. Also there was a
second failing test that should be skipped.
Bug: angleproject:3138
Change-Id: I5950819c343ce1413f4617c4c410aaba42b5a268
Reviewed-on: https://chromium-review.googlesource.com/c/1459602
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f256339a
|
2019-01-15T09:50:44
|
|
Vulkan: Implement eglBindTexImage
Now that vk::ImageHelper is stored as a pointer, it can be shared between an
offscreen surface and texture.
BUG=angleproject:3073
Change-Id: I91e520259106eef497950b8b2e622fbf910f7444
Reviewed-on: https://chromium-review.googlesource.com/c/1412234
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
82e12fd6
|
2019-02-08T12:10:36
|
|
Use github link to SVG example image in docs.
It seems like there isn't a way to reference a local SVG in gitiles.
We'd need to upload the image to cloud storage. Instead we can use
the image in the repo if we link to the github version.
Bug: angleproject:3002
Change-Id: Ib1879d562e83ae16f531b204ca86cb73d45c5bb8
Reviewed-on: https://chromium-review.googlesource.com/c/1459600
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4103ceac
|
2019-02-08T09:52:01
|
|
Fix link to example in Dirty Bits docs.
Bug: angleproject:3002
Change-Id: Ice785dc13b62879b4ec74ec8374d16eb88c5b257
Reviewed-on: https://chromium-review.googlesource.com/c/1459598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
df3372b9
|
2019-02-07T15:46:29
|
|
Add markdown documentation for dirty bits.
Bug: angleproject:3002
Change-Id: I35df4e9f2af909f175402ce96773afb885bce595
Reviewed-on: https://chromium-review.googlesource.com/c/1455536
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e03498f2
|
2018-11-22T21:27:29
|
|
Increase instanced draw testing.
Fill some gaps in the ANGLE end2end instanced draw test.
The only testing of points was on D3D11 and D3D11_FL9_3.
There was little testing of number of instances and different divisors.
Remove old one-off tests which are now redundant.
Disable the D3D11_FL9_3 points test which was passing purely by chance.
That code has bugs and only supports data from a buffer, while the
test uses data in client memory.
BUG=angleproject:2672
Change-Id: I5b5707a6fdd0960e81c25a2eb8ed96a1452d9868
Reviewed-on: https://chromium-review.googlesource.com/c/1450789
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cd4f1fba
|
2019-02-07T15:26:10
|
|
Fix gtest main from including the wrong headers.
We would accidentally propagate include directories to the test
main target. This would show up as compile errors of the form:
In file included from ../../third_party/angle/testing/gtest/include/gtest/gtest.h:10:
../../third_party/angle/third_party/googletest/src/googletest/include/gtest/gtest.h:303:22: error: no member named 'ImplicitlyConvertible' in namespace 'testing::internal'
!internal::ImplicitlyConvertible<T, AssertionResult>::value>::type*
~~~~~~~~~~^
This fixes the GN properties such that we no longer get the wrong
/testing/ and /third_party/googletest/ directories included. This
regressed when glslang was rolled.
Bug: angleproject:3088
Change-Id: I710f767cfe476454c10dacf2103b9203f1b5ee19
Reviewed-on: https://chromium-review.googlesource.com/c/1459596
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2c94c1e3
|
2019-02-07T17:10:32
|
|
Suppress EGLSurfaceTest.MessageLoopBugContext on Ozone.
Bug: angleproject:3138
Change-Id: If82467a0ab98d2b2f77337be41b33ee817e44e58
Reviewed-on: https://chromium-review.googlesource.com/c/1459597
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c13c70c
|
2019-02-06T15:59:44
|
|
Vulkan: Enumerate instance & device extensions provided by layers
Add instance & device extensions provided by layers prior to running
VerifyExtensionsPresent() so that we won't abort when required extensions
are provided in a layer. This happens particularly on Fuchsia as the
swapchain extension is implemented in a layer.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I30385dfe55b14783a20d1410f1209d3e3ad10632
Reviewed-on: https://chromium-review.googlesource.com/c/1456487
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
a07c9bf7
|
2019-02-07T19:10:15
|
|
Revert "Vulkan: Reduce Default Descriptor Pool Max Sets"
This reverts commit 1f8132a1da6e3752c08c5a2b1840e4d6fa44a52f.
Reason for revert: anglebug.com/3135
Bug: angleproject:3135
Original change's description:
> Vulkan: Reduce Default Descriptor Pool Max Sets
>
> The current value of kDefaultDescriptorPoolMaxSets is 2048, which
> allocates too much memory on a Pixel device, causing Android's low
> memory killer to terminate dEQP (leading to a test failure). This change
> reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the
> memory usage during the test. We suspect a later change may be required
> to dynamically grow the descriptor pools and update the recycling
> behavior.
>
> dEQP-EGL.functional.multicontext.non_shared_clear
>
> Bug: angleproject:3056
> Change-Id: I8a681b509823956a58d6c08f64a23203458e075e
> Reviewed-on: https://chromium-review.googlesource.com/c/1454280
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=jmadill@chromium.org,timvp@google.com,syoussefi@google.com,syoussefi@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3056
Change-Id: Iff950425141eb5028c3660ba0567a9d29e691604
Reviewed-on: https://chromium-review.googlesource.com/c/1459256
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ab5acbd5
|
2019-01-23T13:58:09
|
|
Vulkan: implement swapchain resizing
Vulkan allows a swapchain to be created based off of an older swapchain
that's still presenting, to support seamless window resizing. The old
swapchain will remain alive (though no image can be acquired from it)
and automatically cleaned once no image is being presented from it.
The retired swapchain can be destroyed once all operations on its images
are completed. We store the old swapchain next to the serial of
submission that's used for CPU throttling and defer the destroy call
until after `finishToSerial` for that serial is called.
Bug: angleproject:2942
Change-Id: Ic62a5a57b712ffa2b087f5fecde0dc8942194075
Reviewed-on: https://chromium-review.googlesource.com/c/1435634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
088e5217
|
2019-02-06T17:07:57
|
|
Vulkan: Suppress flaky test on Nexus5X
Bug: angleproject:3124
Change-Id: Idfcd84f92126eb7548f86f8c327887a34e3218a9
Reviewed-on: https://chromium-review.googlesource.com/c/1457025
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
603ad164
|
2018-12-04T07:34:23
|
|
GLES1: dirty bit pass
This CL introduces a coarse layer of dirty bits and on-demand sending of
some uniforms to the underlying driver, instead of sending all uniforms
every draw, which should improve performance in cases where not much is
changing between draws.
BUG=angleproject:2306
Change-Id: I530515dfad2e4be74c73d8659acd4fe5decaa8b0
Reviewed-on: https://chromium-review.googlesource.com/c/1361222
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
f9cc785c
|
2019-02-06T07:59:45
|
|
Docs: Add glmark2 instructions for Android
Bug: angleproject:3125
Change-Id: I0d185ad70b960d0c3bff971eb6658893b308352d
Reviewed-on: https://chromium-review.googlesource.com/c/1456481
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
35218632
|
2019-02-06T13:05:21
|
|
Vulkan: Move vulkan config target to $angle_root:vulkan_config
This will allow us to avoid loading the build file for
//third_party/vulkan-validation-layers on Fuchsia, since we don't want to
build the validation layers on that platform.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia (with full series)
Change-Id: Ifeb67125f5fcebf2b30ae18b760667ba7c56e4d5
Reviewed-on: https://chromium-review.googlesource.com/c/1456479
Commit-Queue: Michael Spang <spang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
36433590
|
2019-02-06T10:45:44
|
|
Fix ShCompileTest.DecimalSepLocale failing on Linux/AMD
Bug: angleproject:3132
Change-Id: I4bbaaab732cd64e6f2f44d6a09a236533a1abc20
Reviewed-on: https://chromium-review.googlesource.com/c/1456616
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
740db7fd
|
2019-02-06T09:40:13
|
|
Vulkan: Add support for loading layers from DisplayVk
Fuchsia needs a layer to support VK_KHR_swapchain. Add the ability for
DisplayVk subclasses to request a layer in addition to an extension.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: If86c773d4bd4ebecaee4b1631d3d4975105fe849
Reviewed-on: https://chromium-review.googlesource.com/c/1456478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eb47e2c4
|
2019-02-05T16:26:41
|
|
Vulkan: improve calculation of swapchain image count
Based on present mode, different values for the image count make sense.
In mailbox mode, the driver will increase the number as necessary. In
immediate mode, two buffers suffice. In fifo mode, we would ideally
want triple-buffering.
Bug: angleproject:2932
Change-Id: I45eec83d0292eea472b931fe81e49cde6d105c27
Reviewed-on: https://chromium-review.googlesource.com/c/1454290
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bf5dbd8d
|
2019-02-05T16:41:41
|
|
Skip WhitelistMatchesSupport test on Android.
Seems to have issues with stranger configs like the Sheild TV.
Bug: angleproject:2286
Change-Id: I12d0dedeee9fbaaecb7341d376200a1afc758f12
Reviewed-on: https://chromium-review.googlesource.com/c/1454331
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5f662c00
|
2019-01-31T13:53:59
|
|
Fix unit test for setting locale creating malformed HLSL shader code
Fix malformed HLSL shader code in other locales than classic
Bug: angleproject:1433
Change-Id: I30bad0bd0cfda465ec7200e48e12800d7d8efd26
Reviewed-on: https://chromium-review.googlesource.com/c/1447862
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
1f8132a1
|
2019-02-05T10:20:24
|
|
Vulkan: Reduce Default Descriptor Pool Max Sets
The current value of kDefaultDescriptorPoolMaxSets is 2048, which
allocates too much memory on a Pixel device, causing Android's low
memory killer to terminate dEQP (leading to a test failure). This change
reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the
memory usage during the test. We suspect a later change may be required
to dynamically grow the descriptor pools and update the recycling
behavior.
dEQP-EGL.functional.multicontext.non_shared_clear
Bug: angleproject:3056
Change-Id: I8a681b509823956a58d6c08f64a23203458e075e
Reviewed-on: https://chromium-review.googlesource.com/c/1454280
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
4a41914b
|
2019-02-05T08:50:30
|
|
Vulkan: Add trace markers
Add systrace markers for various RendererVk::finish paths in order to
quickly identify cause of finishes. Also added marker to commandPool
destroy which is currently a known hotspot on some devices.
Bug: angleproject:2528
Change-Id: I5a2fc741679a58445d71a2edd6204cf9e869d236
Reviewed-on: https://chromium-review.googlesource.com/c/1454277
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e1a763d1
|
2019-01-25T15:43:33
|
|
Vulkan: Implement basic barrier perf test
There's a lot more that can go into this perf test, but it requires
further work on the Vulkan back end.
Bug: angleproject:2999
Change-Id: Iea62bfd09639af108674dcf0a9e7c9d36ccddcef
Reviewed-on: https://chromium-review.googlesource.com/c/1437734
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e923a63e
|
2019-02-05T08:32:33
|
|
Move ozone detection earlier in white list.
Apparently IsOzone and IsLinux can both be true at the same time. This was
confounding the config detection.
Bug: angleproject:2286
Bug: chromium:928583
Change-Id: Ifd28242f396fd97447720b0c11caf8c1590f7222
Reviewed-on: https://chromium-review.googlesource.com/c/1454319
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d01c504e
|
2019-02-04T21:52:09
|
|
Fix issues with config whitelisting.
The Android Shield TV confing was not properly initializing on ES1/Vulkan.
Also Ozone configs were failing to initialize ES 3.0 contexts.
Bug: angleproject:2286
Bug: chromium:928583
Change-Id: I7e54cdd1bf29791dffee3c70f7ebd3a1283eb5c4
Reviewed-on: https://chromium-review.googlesource.com/c/1453480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9bb59c5c
|
2019-01-25T11:46:24
|
|
Do not call eglMakeCurrent with invalid parameters
When releasing the thread only call makeCurrent if we have a display
to use. Calling with EGL_NO_DISPLAY is not valid (though some devices
allow it.)
Bug: angleproject:3102
Change-Id: I2cf48011294d0264d3b1cb0318a2a80715e37f60
Reviewed-on: https://chromium-review.googlesource.com/c/1436840
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
7085305f
|
2019-02-04T17:47:04
|
|
Use whitelist to filter test configs.
Before we would try all the configs and filter those which fail to
init. Now we gather the System Info and if successful check a list of
supported configs. If System Info init fails we fall back to the prior
method.
This speeds up end2end tests init. It also allows for more reliable
profile captures with VTune. It also will cause a test failure if a
config unexpectedly fails. Previously we would silently pass without
running the config's test. Includes a few changes:
* D3D reference tests are disabled. They don't appear to be working.
* Mac ES 3.1 is disabled due to lack of support.
* WGL on AMD Windows is disabled due to lack of ES compatibility.
* ES 3.2 contexts are explicitly disabled.
* Vulkan is limited to ES 2.0.
* The Windows GLES back-end is limited to NVIDIA with ES 2.0 & 3.0.
* A unit test that verifies the whitelist matches availability.
Bug: angleproject:2472
Change-Id: Ib72214bfbbff13c124fa15a6494d0aabb52f2e62
Reviewed-on: https://chromium-review.googlesource.com/c/1436168
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7dafe3eb
|
2019-01-28T11:39:15
|
|
Vulkan: optimize image memory barriers
Each image was tracking its current layout, but not the pipeline stage
it was used. Additionally, the barrier access masks were inferred from
the layout. This incurred two inefficiencies:
- The src pipeline stage mask often included all stages, causing
unnecessarily heavy barriers.
- The access masks included all possible accesses by a layout, which in
some cases was overkill, like VK_ACCESS_MEMORY_WRITE_BIT for
VK_IMAGE_LAYOUT_GENERAL (which will eventually used for compute shader
output).
This change instead creates an enum where each element represents the
layout, the stage and access masks when transitioning into the layout
and the stage and access masks when transitioning out of that layout.
The image will instead track a value of this enum (instead of
VkImageLayout), which allows it to create the layout transition barriers
as tight as possible, since it includes all the necessary information.
Bug: angleproject:2999
Change-Id: I91535ce06d10530a6fc217ad3b94b7e288521e25
Reviewed-on: https://chromium-review.googlesource.com/c/1440074
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f3e823db
|
2019-01-14T12:40:34
|
|
Vulkan: Store ImageHelper as a pointer in TextureVk and RenderbufferVk
Storing ImageHelper as a pointer allows the storage to be swapped or shared
with other objects.
BUG=angleproject:2668
Change-Id: I2e51f24737be59ffe9f472e9b0b592774a792cd1
Reviewed-on: https://chromium-review.googlesource.com/c/1409404
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb67ca6e
|
2019-02-04T11:18:54
|
|
Improve EGLRecordableTest
The initial implementation called eglInitialize() and eglTerminate()
and didn't call ANGLETest::TearDown().
BUG=angleproject:2511
Change-Id: I563a84a72fe9bd20739519301023062f85446557
Reviewed-on: https://chromium-review.googlesource.com/c/1452529
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
08f8fa66
|
2019-01-10T14:25:47
|
|
Vulkan: Merge the PixelBuffer logic into ImageHelper.
To support EGL images efficiently, the pixel buffer needs to be tightly coupled
with the image it will upload data to allowing textures to upload data to EGL
images sourced from renderbuffers. The data will be uploaded to the image in
the correct order if it comes from multiple sources and the check for pending
uploads does not need to traverse EGL image siblings.
BUG=angleproject:2668
Change-Id: Iebf59ed1e358ddc76843b8bcfac39b0363f66a3f
Reviewed-on: https://chromium-review.googlesource.com/c/1405710
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9544002e
|
2019-02-01T16:36:09
|
|
Add instructions on how to run glmark2+ANGLE on Linux
Bug: angleproject:3125
Change-Id: I70d295d7ec1dbafc74add068165c5fbcadb48560
Reviewed-on: https://chromium-review.googlesource.com/c/1450222
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d94af173
|
2019-02-01T15:55:50
|
|
Vulkan: Store xcb visual id/type in egl::Config
glmark2 uses the visual id, which is discarded in angle. This change
retrieves these ids from X11 and stores them in the egl::Config.
Bug: angleproject:3125
Change-Id: I2b524ecb71d675efa01cc9100a3dfe6fd57913f0
Reviewed-on: https://chromium-review.googlesource.com/c/1450221
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
52d861bd
|
2019-02-02T00:30:58
|
|
Disable -Wextra-semi-stmt
Due to bot build failures. Partially reverts:
c09ae15c0: Enable -Wextra-semi and -Wextra-semi-stmt.
TBR=jmadill@chromium.org
Bug: angleproject:3128
Change-Id: Ia3725e57d28cd899db59e1d8e760ad8ca3d5f70c
Reviewed-on: https://chromium-review.googlesource.com/c/1450659
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3d6e3004
|
2019-02-01T15:43:59
|
|
Implement EGL_ANDROID_recordable for Vulkan back-end.
This initial implementation provides the extension, and always answers
that the ANativeWindow is not recordable.
BUG=angleproject:2511
Change-Id: Id3c57351dd1029bff7adf7166f9c82eee6e634b3
Reviewed-on: https://chromium-review.googlesource.com/c/1412507
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d4c09dd3
|
2019-01-29T11:22:54
|
|
Fix unnecessary copy of for loop variables in ANGLE
Bug: angleproject:3075
Change-Id: I34dd5d4ecded6def5a2b46369277312af0de7c8c
Reviewed-on: https://chromium-review.googlesource.com/c/1443572
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
65cd76a7
|
2019-02-01T10:31:58
|
|
Use env variable to select default backend
This is useful for situations where angle is substituted for the system
library underneath an application oblivious to this change. The
ANGLE_DEFAULT_PLATFORM variable is used when the display type is default
to control the default back-end. Possible values are vulkan, gl and
d3d11. If the value of this variable is not valid, or not supported by
the current platform, the usual defaults are applied.
Bug: angleproject:3125
Change-Id: I304b006e0a4149f78561038d01cede143640dafb
Reviewed-on: https://chromium-review.googlesource.com/c/1450211
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c09ae15c
|
2019-02-01T14:16:32
|
|
Enable -Wextra-semi and -Wextra-semi-stmt.
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91d469aa
|
2018-08-27T10:47:25
|
|
Initial support for compiler AST validation
This is to be able to catch issues introduced through AST manipulation
earlier than shader compilation time, improving debuggability.
Bug: angleproject:2733
Change-Id: Ic57bc72f2ab438e60f32553d602074f3d72cc4f5
Reviewed-on: https://chromium-review.googlesource.com/c/1199922
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7b0feaf
|
2019-02-01T08:43:55
|
|
Roll glslang.
Includes a fix for the Fuchsia build and for -Wextra-semi.
Bug: 926235
Bug: angleproject:2475
Change-Id: If3ef575c09656989274c91dec7657465b99978b2
Reviewed-on: https://chromium-review.googlesource.com/c/1449972
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4fb738fb
|
2019-02-01T10:53:44
|
|
Fix for linking of non-component angle_unittests
Bug: chromium:927650
Change-Id: Ib944dee7e537820af53eb12538c33e7d0c4fbd68
Reviewed-on: https://chromium-review.googlesource.com/c/1449631
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5410480
|
2019-01-31T19:55:55
|
|
Inline ValidateBindTexture.
Tiny speed improvement in the perf test.
Bug: angleproject:3117
Change-Id: Ie2892772da4808615b2a810ff523602894440b64
Reviewed-on: https://chromium-review.googlesource.com/c/1350490
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cf9383ed
|
2019-01-31T19:52:49
|
|
Optimize VertexArray::bindVertexBufferImpl.
Reduces the buffer nullptr checks to a single location. Also optimizes
how the transform feedback binding counter is changed.
Improves the score of the draw call vertex array change test.
Bug: angleproject:3014
Change-Id: I08ff341e08194a407c24143965a3d568e92b97b7
Reviewed-on: https://chromium-review.googlesource.com/c/1406891
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1a07524d
|
2019-01-31T14:50:06
|
|
Fix the misuse of deepCopy()
When we use replaceChildNode function, the first argument must be the original
child node instead of the deepCopy. Otherwise, replaceChildNode will do nothing
since it will think deepCopy is a different node. In that case,
RewriteExpressionsWithShaderStorageBlockTraverser::visitAggregate will
enter an endless loop since ssbo argument is never really replaced.
Test: dEQP-GLES31.functional.ssbo.*
Bug: angleproject:1951
Change-Id: Ieb17a16ab2b3e0270328fafd7ba0944ca05f842f
Reviewed-on: https://chromium-review.googlesource.com/c/1446686
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
|
|
48d040e8
|
2019-01-18T10:43:45
|
|
D3D11: Fix reads and writes to EGL image textures with mip offsets.
RenderTarget11 knows how to render to a specific mip of a texture but if
TextureStorage11 attempts to read or write to the backing resource directly
it does not select the correct subresource index. This manifested in calls
to glTexSubImage going to the wrong mip of the resource.
Fix TextureStorage11::getSubresourceIndex to look up the correct subresource
in TextureStorage11_EGLImage.
Add a test to cover this case in ImageTest.MipLevels.
BUG=angleproject:2668
Change-Id: Id9270ab3bf9f37c7c671639bb8b7ce9578daaed6
Reviewed-on: https://chromium-review.googlesource.com/c/1422058
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
25839802
|
2019-01-30T18:02:51
|
|
Vulkan: Don't crash on diagnostics with null pMessageIdName
This can be null and this will causes a crash in strstr(). Check for null
before dereferencing this field.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia and angle_enable_vulkan_validation_layers=true
Change-Id: I76a2738365838cb2f9cb54af7637417735762b69
Reviewed-on: https://chromium-review.googlesource.com/c/1446506
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
794364eb
|
2019-01-17T17:54:29
|
|
Add test cases of image built-in functions
Add test cases that image accesses a mipmap level
of texture, meanwhile exposes two driver bugs.
Bug: angleproject:1987
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: I4c43cdb97de8223d5e9af3757f41eb01eac81d0a
Reviewed-on: https://chromium-review.googlesource.com/c/1415727
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
78380980
|
2019-01-30T13:14:01
|
|
Fix SPIRV-Tools deps in core validation layer.
The spirv_tools_external_revision_generate action should no longer
depend on ANGLE's DEPS file exclusively. We're using the version of
SPIRV-Tools provided by Chromium or ANGLE depending on the client.
Depending on DEPS directly should give the correct behaviour.
Bug: chromium:926354
Change-Id: I87ac59f1e3f0d3a0b13df51fb6477940ff534dc7
Reviewed-on: https://chromium-review.googlesource.com/c/1446495
Reviewed-by: Nico Weber <thakis@chromium.org>
|
|
96a8e747
|
2019-01-30T10:30:06
|
|
Vulkan: Move and inline object wrapper classes.
This moves the wrapper classes into their own file. It also inlines
all the various methods for performance.
The inline methods are kept out-of-class to avoid problems with
circular dependencies.
Also adds a few missing valid() checks to the inline methods.
Improves the score of the VBO state change test by 1-2%.
Bug: angleproject:3014
Change-Id: Ia760c3a6905a9a5aacfd05db443b72f34947385e
Reviewed-on: https://chromium-review.googlesource.com/c/1436167
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a7429204
|
2019-01-30T09:29:06
|
|
Remove some extra semicolons.
No behavior change.
Bug: chromium:926235
Change-Id: I9215b4799a3c68887b8403be057180796ab5777a
Reviewed-on: https://chromium-review.googlesource.com/c/1446311
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
fa7ca18f
|
2019-01-15T11:20:58
|
|
Vulkan: Enable dEQP point limit raster test.
This requires enabling a workaround in the ANGLE shader translator to
clamp the point size.
Bug: angleproject:2599
Change-Id: I3171bdca5dd2e5af965e94ee2a955f46f8d706da
Reviewed-on: https://chromium-review.googlesource.com/c/1412235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
915d4068
|
2019-01-28T18:15:43
|
|
Roll dEQP (January/February 2019).
Includes some new GLES tests added by kainino@.
Bug: angleproject:3112
Change-Id: I0d81c8263eab3473dec49bb0cf3bca73cd38c6fb
Reviewed-on: https://chromium-review.googlesource.com/c/1441051
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
82fddcb1
|
2019-01-18T14:27:43
|
|
Vulkan: Implement GLsync and EGLSync fence syncs
That is required in GLES 3 for GLsync and EGL_KHR_fence_sync and
EGL_KHR_wait_sync (or EGL 1.5) for EGLSync.
The two constructs (GLsync and EGLSync) have similar semantics and share
the implementation on the Vulkan backend.
The implementation of a fence sync object is achieved through the
combined use of a vkEvent and the implicit vkFence inserted at the end
of every submission. Imagine the following command buffer:
glDraw : Draw
glCreateSync: Set Event <-- insertion of fence sync
glDraw : Draw
: Signal Fence <-- implicit fence at the end of submission
glFlush : Submit
Assume the serial S is associated to this submission. The following
hold:
- If event is set, the fence sync is signaled
- If S is already finished, the fence sync is signaled
- If client is waiting on the sync and S is not yet flushed, there will
be a deadlock (unless multi-threaded and another thread performs the
flush).
The event is used to implement server waits (glWaitSync), as vkEvent is
the only entity the GPU can signal and wait on within the command
buffer. The wait is inserted in the command graph without incurring a
flush, i.e. the wait can be within the same command buffer as event set.
The event however does not support CPU waits (glClientWaitSync).
vkFence is the only entity the CPU can wait on. For client wait
therefore, the following algorithm is used:
- If the event is already set, there's no wait -> already signaled
- If timeout is zero, there's no wait -> timeout expired
- If S is not flushed, flush it to ensure forward progress.
- Wait until S is finished -> condition satisfied / timeout expired.
Bug: angleproject:2466
Change-Id: I678995a6139dd9533fa8ad361a3d292b202c52a4
Reviewed-on: https://chromium-review.googlesource.com/c/1422552
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4b2e00f4
|
2019-01-28T23:37:55
|
|
Suppress EmptyBuffer test on Android GLES.
Seems to fail on the Pixel XL.
Bug: angleproject:2861
Change-Id: Ic1690abccd867251e83c0ae5e38c2bbd1c41615b
Reviewed-on: https://chromium-review.googlesource.com/c/1441774
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0cb3b0f1
|
2019-01-28T09:55:20
|
|
Vulkan: Use glslang's internal BUILD.gn.
This retires the ANGLE BUILD.gn file for glslang. Also makes a few more
repos sync from Chromium's copy using build overrides. This should
speed up Chrome checkouts slightly.
Bug: angleproject:3088
Change-Id: I530f28d9b13469bbe6471a4c61e7353d599d81ec
Reviewed-on: https://chromium-review.googlesource.com/c/1422545
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8922ac23
|
2018-12-14T13:44:29
|
|
ES31: Enable glBindBufferRange on SSBOs in the D3D renderer
This patch enables binding a subset of a buffer with glBindBufferRange on the
D3D renderer.
Bug: angleproject:2990
Test: angle_end2end_tests
Change-Id: Ib15b6257891191e28801f52c539b8b2daa80fa68
Reviewed-on: https://chromium-review.googlesource.com/c/1409880
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0f073667
|
2019-01-28T12:51:12
|
|
Update docs on wrangling and standalone infra.
This migrates from the old Chromium wiki.
Bug: angleproject:3097
Change-Id: Id1987f364e37bda319a4a6091b1a34c21b240706
Reviewed-on: https://chromium-review.googlesource.com/c/1430972
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
4704eb02
|
2019-01-25T13:25:52
|
|
Add possibility to track GPU time in perf tests
This paves the way for perf tests that measure GPU performance.
Bug: angleproject:2999
Change-Id: I9d49d3e1256d8d18514885ae63264a5fbc5c29d1
Reviewed-on: https://chromium-review.googlesource.com/c/1436839
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4c94788c
|
2019-01-28T11:12:31
|
|
Suppress RobustBufferAccessBehaviorTest.EmptyBuffer on Pixel XL Vk
BUG=angleproject:3109
Change-Id: Ib8565e7a99dea90bb5fc966ffe0606a8ebc62fcc
Reviewed-on: https://chromium-review.googlesource.com/c/1436052
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
9e53fccb
|
2019-01-25T22:50:37
|
|
[commit-queue.cfg] Create new project-scoped CQ config.
Autogenerated from ref-scoped cq.cfg located at:
https://chromium.googlesource.com/angle/angle/+/refs/heads/master/infra/config/branch/cq.cfg
(pinned https://chromium.googlesource.com/angle/angle/+/988d9a068976cd893eb1cd1093299b166b58594a/infra/config/branch/cq.cfg)
The new config is functionally equivalent to the old one. Upon landing, the new
config will take effect once LUCI config service picks it up. If you see
'commit-queue.cfg' in https://luci-config.appspot.com/#/projects/angle ,
then it has been picked up.
New commit-queue.cfg takes precedence over old cq.cfg, and once picked up makes
it safe to remove old cq.cfg.
See also internal PSA go/psa-migrate-to-commit-queue-cfg.
Generated-by: https://crrev.com/i/815809
Bug: chromium:916292
Change-Id: I34579199a3aa1bf3ef4725b5d504f224cf2ee1e0
Reviewed-on: https://chromium-review.googlesource.com/c/1437794
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d51fbe34
|
2019-01-25T15:03:39
|
|
Fold buffer access validation into extensions.
We only need to perform vertex array buffer validation if the WebGL
compatiblity extension is enabled and robust access is not available.
Although sometimes the range checks are useful for determining
undefined behaviour they are not required by the OpenGL spec. They also
slow down state updates significantly.
This migrates the OOR tests into specific WebGL tests. It also requires
a change to a Chromium test on the passthrough decoder.
Improves perf by about 10% in the Vulkan VBO state change test.
Also fixes some robust resource access cases for D3D11.
Bug: angleproject:3000
Change-Id: Ice37f38f01c2f27bf32ed55657a30e69d8508335
Reviewed-on: https://chromium-review.googlesource.com/c/1390362
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5904ee3f
|
2019-01-25T11:15:16
|
|
Vulkan: Fix timestamp query units
Vulkan returns timestamps in cycles, which needs to be converted to
nanoseconds (by multiplying by limits.timestampPeriod) for GLES.
On NVidia, this multiplier seems to be 1 for a majority of their
hardware, while the timer has less and more varying granularity on AMD,
Intel and others.
Bug: angleproject:2885
Change-Id: I34e08ad386e06619170975039385ce35cab025a5
Reviewed-on: https://chromium-review.googlesource.com/c/1436835
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59d756e5
|
2019-01-16T15:26:49
|
|
Vulkan: Add a test for scissored depth and stencil clears.
BUG=angleproject:3081
Change-Id: Ib6b17dbabdcb2a5ad5cf34b306bf5d3bd683ba0a
Reviewed-on: https://chromium-review.googlesource.com/c/1415913
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59b1ed4a
|
2019-01-24T13:55:17
|
|
Clean up generated object_tracker.h
This file was generated on the trybots dry-running a change that rolls
the vulkan repos [1]. This is causing a build failure on other CLs.
[1] https://chromium-review.googlesource.com/c/angle/angle/+/1405714
Bug: 925077
Change-Id: I3101a4a3fdeb7c38ac5cfe6a1d621e03a9f49071
Reviewed-on: https://chromium-review.googlesource.com/c/1435154
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
47ca1b2f
|
2019-01-23T16:11:41
|
|
Revert "Vulkan: Adding custom pool allocator"
This reverts commit 05459e06fde5047ae8f5f90fe091c3255e6bc88e.
Reason for revert: Clusterfuzz bugs flagged this commit
Original change's description:
> Vulkan: Adding custom pool allocator
>
> Copied pool allocator used by compiler to common and hooking it up as
> custom allocator for CommandPools. Modified it to support reallocation.
>
> RendererVk now has a private poolAllocator and VkAllocationCallbacks
> struct. The allocation callbacks are initialized to static functions
> in RendererVk::initializeDevice() and then passed to CommandPool init()
> and destroy() functions.
>
> Using the pool allocator saves Command Pool/Buffer clean-up time which
> was showing us as a bottleneck is some cases.
>
> Bug: angleproject:2951
> Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
> Reviewed-on: https://chromium-review.googlesource.com/c/1409867
> Commit-Queue: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=jmadill@chromium.org,tobine@google.com,ianelliott@google.com,syoussefi@chromium.org
Change-Id: I363a351667c4dddef79833061790da90de477e70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1430679
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
2553690d
|
2019-01-23T09:49:03
|
|
Documentation update
Mostly mentioning other platforms where older documentation mentioned
only Windows.
Bug: angleproject:1944
Change-Id: Ib020892fbdee22d3dc60aa71ac6b3c5f504728c4
Reviewed-on: https://chromium-review.googlesource.com/c/1430559
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5313c8a8
|
2019-01-14T17:02:52
|
|
Implement EGL_KHR_fence_sync and EGL_KHR_wait_sync
EGL_KHR_fence_sync introduces the EGLSync object and associated
create/destroy/clientWait functions. EGL_KHR_wait_sync adds the
serverWait function on top of that.
Bug: angleproject:2466
Change-Id: Iebb239a85c4471ea18b3c3a8a83b793af555e31d
Reviewed-on: https://chromium-review.googlesource.com/c/1412261
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
828acb39
|
2019-01-22T15:01:55
|
|
Enable ParallelCompile for Mac
Linked in parallel, GLSLTest_ES3.LargeNumberOfFloat4Parameters
fails on the Mac asan bots. It looks a driver bug caused by
handling some long GLSL expressions. This works around it by
breaking down the expression in the test from:
return a0 + a1 + ... + alast;
to:
vec4 sum = vec4(0, 0, 0, 0);
sum += a0;
sum += a1;
...
sum += alast;
return sum;
This also fixes a CGLPixelFormat leak, although it's irrelevant
to the bot failures.
BUG=922936
BUG=angleproject:3087
BUG=angleproject:3047
Change-Id: I20249ada43e9dd226f582a568ed4ed50a0e4375d
Reviewed-on: https://chromium-review.googlesource.com/c/1426430
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
0c2c923e
|
2019-01-14T16:01:38
|
|
Vulkan: Don't allow creation of ES3 contexts.
Refactor RendererVk::getMaxSupportedESVersion to limit max supported versions
similar to RendererGL.
This allows dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop.*
tests to pass but they are currently skipped due to TDR issues on some
platforms.
When we start to test on top of ES3 contexts, we will either have to supress
some dEQP EGL tests or expose it some other mechanism.
BUG=angleproject:3058
Change-Id: I8d28fe75edd8346b46d197e0217afbee1c19b7e3
Reviewed-on: https://chromium-review.googlesource.com/c/1409869
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
05459e06
|
2019-01-17T12:25:54
|
|
Vulkan: Adding custom pool allocator
Copied pool allocator used by compiler to common and hooking it up as
custom allocator for CommandPools. Modified it to support reallocation.
RendererVk now has a private poolAllocator and VkAllocationCallbacks
struct. The allocation callbacks are initialized to static functions
in RendererVk::initializeDevice() and then passed to CommandPool init()
and destroy() functions.
Using the pool allocator saves Command Pool/Buffer clean-up time which
was showing us as a bottleneck is some cases.
Bug: angleproject:2951
Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
Reviewed-on: https://chromium-review.googlesource.com/c/1409867
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c81e7bfe
|
2019-01-18T15:35:55
|
|
Vulkan: refactor CommandGraphResource
Merged back RecordableGraphResource into CommandGraphResource. Queries
didn't really need to be a resource, as they always inserted separate
single-command nodes in the graph. The CommandGraph class is augmented
with a few functions that generate such nodes.
This is in preparation for debug markers, as they too require such
nodes.
Bug: angleproject:2853
Change-Id: I5251a0e0fdd42ed1126921b4acc13687a14af9cd
Reviewed-on: https://chromium-review.googlesource.com/c/1422549
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
37d2e606
|
2019-01-10T12:46:16
|
|
Make BlobCache use independent from ANGLE_program_cache_control
The decision to enable caching or not was based on the size of the cache
as directed by eglProgramCacheResizeANGLE, which is incorrect for
applications that only use the ANDROID_blob_cache extension.
The new behavior is as follows:
- If EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE is specifically
requested and set to true, but the size of the cache is 0, caching is
disabled for the context.
- If EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE is specifically
requested and set to false, caching is disabled for the context.
- Otherwise, caching is left enabled for the context, although the cache
possibly has a size of zero, which effectively disables it. During
application execution, if the blob cache callbacks are set, the
application cache will be used.
Bug: 896406, angleproject:2516
Change-Id: Ic0cabda03fb6bf53994e86e3ede30afc8021d67e
Reviewed-on: https://chromium-review.googlesource.com/c/1405708
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bf433727
|
2019-01-20T20:10:17
|
|
Use binary merge strategy for code generator hashes.
The binary merge strategy marks the file as conflicted but doesn't
actually change the file contents. This keeps the json hashes file
valid and alerts the user that the generator needs to be re-run.
Bug: angleproject:3083
Change-Id: Ia04e96d56a2d92ee061f25e7de79b6a1fd3ce4ab
Reviewed-on: https://chromium-review.googlesource.com/c/1423519
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7403dd2c
|
2019-01-16T13:27:17
|
|
Vulkan: Inline transition query.
Slight speed improvement in the Vulkan vertex array state change test.
Bug: angleproject:3014
Change-Id: I4a5cd26849cd247b7e67cd6bda083aabeb4e34c0
Reviewed-on: https://chromium-review.googlesource.com/c/1406890
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a63cc59f
|
2019-01-16T13:27:16
|
|
Vulkan: Don't store vertex attrib format and stride.
We only use these values in vertex conversion. We can instead pass more
info to the convertGPU/CPU functions. In client attribute streaming
we can query the format table a second time. This is a bit slower. But
the runtime of attribute streaming would usually be dominated by the
conversion function time. So it shouldn't regress any real work perf.
This saves on a bit of storage and memory overhead in the vertex sync
functions in VertexArrayVk.
Bug: angleproject:3014
Change-Id: I401eeff024664aa0efeea710503c0f619e6d4f22
Reviewed-on: https://chromium-review.googlesource.com/c/1406889
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c3abb7f1
|
2019-01-17T11:26:48
|
|
Fix MultiDraw shaders when loaded from cache
State updates that need to be done after linking vs. deserializing can
get out of sync, as was the case for mDrawIDLocation (introduced in
1bf18ce9e2caca7067b4439373f4fb04a5cd7d21). This commit introduces a
common function that's called from both paths to hopefully avoid such
issues in the future.
The serialize/deserialize functions are moved from MemoryProgramCache
to the Program itself.
Bug: 890539,angleproject:2516
Change-Id: Idc5b87de53298aacbb1884e79e721b876281fb13
Reviewed-on: https://chromium-review.googlesource.com/c/1417970
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6ae34889
|
2019-01-18T11:44:54
|
|
Suppress test crashing on Mac ASAN AMD too.
The initial suppression didn't apply to AMD but the test crashes there
too.
BUG=angleproject:3087
BUG=chromium:923399
Change-Id: I8ccffbb7746dd6fc6aa3eb6edaaef30aaae8c097
Reviewed-on: https://chromium-review.googlesource.com/c/1423057
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
85ca71c2
|
2019-01-16T15:46:23
|
|
Create a whitelist for use in Android platform
In order to reduce the startup impact to near zero, we are
creating a whitelist to be checked before parsing rules.
The whitelist will be shared over Global Settings. To generate
it, we will listen for intents at boot (LOCKED_BOOT_COMPLETED)
and when ANGLE itself has been updated (MY_PACKAGE_REPLACED).
The whitelist can also be populated by hand:
adb shell settings put global angle_whitelist app1,app2,appN
We plan to further mitigate the ANGLE-enabled app impact
by parsing the full rules when creating the whitelist, off of
the critical path.
Bug: angleproject:3086
Test: Internal CTS tests and manual verification
Change-Id: I6263358e2fdbfaa7183d1b941005b5455285cbff
Reviewed-on: https://chromium-review.googlesource.com/c/1415715
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1f750d1e
|
2019-01-16T13:27:16
|
|
Even more inlining and micro-optimization.
Improves perf by about 3-4% on the Vulkan VBO state change test.
Bug: angleproject:3014
Change-Id: If4415e503cd883cf7de6387bf1ebbca0e5fc994e
Reviewed-on: https://chromium-review.googlesource.com/c/1393907
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c8c7d400
|
2019-01-16T13:27:15
|
|
Use a table for vertex attrib type validation.
No clearly sampled effect on performance but should require fewer
instructions. May lead to future improvements.
Bug: angleproject:3014
Change-Id: I64e155926ae2c553b059265780e72e91f91f097c
Reviewed-on: https://chromium-review.googlesource.com/c/1393906
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
15214423
|
2019-01-07T12:44:44
|
|
ES31: Add top_level_array_stride support
Bug: angleproject:1920
Change-Id: Id18c6cc1bb840c05f73a019156c462886f01d9eb
Reviewed-on: https://chromium-review.googlesource.com/c/1396745
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
85ca1895
|
2019-01-16T13:27:15
|
|
Vulkan: Store reference to context command buffer.
This frees us from checking the FB every draw. Slightly reduces time
spent in all draw methods. Improvement seen on the draw call overhead
tests. Scores went from 28.17 ns/draw to 26.76 ns/draw on my machine.
In a future improvement we could make this command buffer a dirty bit.
Currently it's a bit slower to call a handler function due to the
dispatch table. Likely we could optimize this by reverting back to a
dirty bit switch and inlining the handler functions. That is left for
future work.
Vulkan is happy enough to run multiple RenderPasses and bind different
Pipelines in the same command buffer. But ANGLE defers RenderPass init
until we submit our work. Thus we can only support one RenderPass per
secondary buffer.
Test: angle_perftests DrawCall*/vulkan_null
Bug: angleproject:3014
Change-Id: I89fd0d9e0822400a5c5a16acb5a9c400a0e71ab5
Reviewed-on: https://chromium-review.googlesource.com/c/1393905
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3159b2e5
|
2019-01-17T16:39:03
|
|
Suppress test crashing on Mac ASAN.
GLSLTest_ES3.LargeNumberOfFloat4Parameters/ES3_OPENGL started crashing
after the parallel compile enablement on OpenGL and disabling the
workers didn't fix it.
BUG=angleproject:3087
Change-Id: I317b140e66b04102059486381ef70e16600fad12
Reviewed-on: https://chromium-review.googlesource.com/c/1419007
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
5fe7c5b9
|
2019-01-17T12:16:34
|
|
Include common/platform.h where used
Bug: 922443
Change-Id: I35b9e34266d4a15f8d0769c2770801b1b0511398
Reviewed-on: https://chromium-review.googlesource.com/c/1418091
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d46165e3
|
2019-01-17T15:49:55
|
|
Reland "Don't call Texture::onDestroy twice for the zero textures."
This reverts commit 3adcf1e4cb5ce3cc1cc8a3dfed4ec44dff45f5ae.
Reason for revert: Likely not the cause of failures seen.
Original change's description:
> Revert "Don't call Texture::onDestroy twice for the zero textures."
>
> This reverts commit d3e0e84ce7e1fcde7bbe71ebfba009ddd5942de3.
>
> Reason for revert: likely cause for crbug.com/922296
>
> BUG=chromium:922296
>
> Original change's description:
> > Don't call Texture::onDestroy twice for the zero textures.
> >
> > The BindingPointer will call onDestroy when all references are removed, no
> > need to do it explicitly.
> >
> > BUG=angleproject:3070
> >
> > Change-Id: Ic5dd4da8f73e204d26d9d3a3c6e1eff9fded5411
> > Reviewed-on: https://chromium-review.googlesource.com/c/1409868
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Geoff Lang <geofflang@chromium.org>
>
> TBR=geofflang@chromium.org,jmadill@chromium.org
>
> Change-Id: I38097218d49940e7ac3ad914714294b019c154fd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3070
> Reviewed-on: https://chromium-review.googlesource.com/c/1413239
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: chromium:922296, angleproject:3070
Change-Id: I58b1c445f81e4a7f38df375fd3311043b571e834
Reviewed-on: https://chromium-review.googlesource.com/c/1417770
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c66cd693
|
2019-01-17T10:37:51
|
|
GL: Temporarily disable parallel shader compile.
The Skia bots have been unable to roll ANGLE since parallel compile landed in
ANGLE. Speculatively disable parallel compile using a workaround.
Failed roll: https://skia-review.googlesource.com/c/skia/+/184705
Also seen instability on Linux, Mac and Windows in 922936.
BUG=922936
BUG=849576
Change-Id: I7116b3f6541425135984c52a8077bdb98d961784
Reviewed-on: https://chromium-review.googlesource.com/c/1415729
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b3bdd2ac
|
2019-01-17T15:51:19
|
|
Revert "Re-enable 2DArray Copy Texture Tests"
This reverts commit 91b95ce0afbb55ebde1d39c2ed9632526ee365c5.
Reason for revert: Tests passing in release but failing in Debug.
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win10%20FYI%20Debug%20%28NVIDIA%29/2556
[ RUN ] Texture2DArrayCopy.SnormFormats/ES3_D3D11
Error getting extension string from EGL Window.
../../third_party/angle/src/tests/test_utils/ANGLETest.cpp(493): error: Expected equality of these values:
(0x3000)
Which is: 12288
eglGetError()
Which is: 12289
Stack trace:
Backtrace:
StackTraceGetter::CurrentStackTrace [0x00AD4A9A+90]
testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop [0x00AEAD5A+74]
testing::internal::AssertHelper::operator= [0x00AEA86B+75]
ANGLETestBase::swapBuffers [0x00A743C0+256]
ANGLETestBase::ANGLETestTearDown [0x00A73817+167]
ANGLETest::TearDown [0x00A7671A+26]
angle::CopyTexture3DTest::TearDown [0x002A085D+29]
[ FAILED ] Texture2DArrayCopy.SnormFormats/ES3_D3D11, where GetParam() = ES3_D3D11 (59 ms)
[----------] 1 test from Texture2DArrayCopy (59 ms total)
[----------] 3 tests from CubeMapTextureTest
[ RUN ] CubeMapTextureTest.RenderToFacesConsecutively/ES2_D3D11_10_0
Assertion failed: mState.surfaceSet.empty(), file ../../third_party/angle/src/libANGLE/renderer/DisplayImpl.cpp, line 23
abort() has been called
Received fatal exception EXCEPTION_BREAKPOINT
Backtrace:
Original change's description:
> Re-enable 2DArray Copy Texture Tests
>
> Re-enables 3 tests that were previously failing on Nvidia hardware on
> D3D11. The tests seem stable after a trybot driver update.
>
> Bug: angleproject:2896
> Change-Id: I17d76a5a67fd57ba7257ef22aa5a1371bf5ed55e
> Reviewed-on: https://chromium-review.googlesource.com/c/1308735
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,brandon1.jones@intel.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2896
Change-Id: I509756e8e6433fd3d04bc68a72e7cc7647485b56
Reviewed-on: https://chromium-review.googlesource.com/c/1417771
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
94d8a9a4
|
2019-01-17T08:47:57
|
|
ES31: Enable several SSBO end2end tests on D3D11
This patch enables several SSBO tests on D3D11 in ANGLE end2end
tests.
Bug: angleproject:1951
Change-Id: I1ba78133e5bbe581e8330c1c43755c174e28bf39
Reviewed-on: https://chromium-review.googlesource.com/c/1415721
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
|
|
a100d8f4
|
2018-12-29T16:39:55
|
|
ParallelCompile: add GL backend support
For GL backend, at first each worker thread must have a naitve context
for its own to work in. These worker contexts have to be shared from
the main context, so that all shader and program objects are seen in
any context. This extends backend displays to create and destroy the
worker contexts. RendererGL manages and allocates them to the worker
threads. ShaderImpl has a new compile method added to do the actual
glCompile work in worker thread. The ProgramGL's link method is broken
down by introducing the LinkEventGL class.
Bug: chromium:849576
Change-Id: Idc2c51b4b6c978781ae77810e62c480acc67ebb5
Reviewed-on: https://chromium-review.googlesource.com/c/1373015
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
bb4be1ad
|
2019-01-16T14:43:45
|
|
Suppress OcclusionQueriesTest.MultiContext on Win NVIDIA Vk
BUG=angleproject:3080
Change-Id: I915778ee239755bfd8aadc25235d36cd52383415
Reviewed-on: https://chromium-review.googlesource.com/c/1415852
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
bab0302b
|
2019-01-16T14:12:28
|
|
Make path utils return std::string.
This avoids potential issues with returning local variables. It
also solves potential threading conflicts by returning the string
value instead of a pointer. The code should be optimized with RVO
with a modern c++ compiler.
Bug: angleproject:2601
Change-Id: I8a01702d2675a17dd060f27920105efab0c49454
Reviewed-on: https://chromium-review.googlesource.com/c/1415910
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|