|
e1ccac7f
|
2020-02-11T17:45:02
|
|
Don't print INFO level log messages in Release by default.
Even with dcheck_always_on.
INFO level log messages will still be printed in Debug
or when angle_enable_trace is enabled.
Bug: angleproject:3525
Change-Id: Ic3807f94307af2878aee78426c969ab846ae3881
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050890
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
3b82506a
|
2020-02-11T09:35:38
|
|
Vulkan: Command graph linearization (Step 5).
Implements ES 3.1 support.
Bug: angleproject:4029
Change-Id: I3c08602cf4ec64621bfdb40cd40d142b666e6edf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046052
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
72e9f4d7
|
2020-02-11T11:14:35
|
|
Vulkan: Update bug number in KHR ES 3.1 expectations
It was pointing to general ES 3.1 bug.
Bug: angleproject:4107
Change-Id: Ief726c57d5a853d633df705eb30e8cdad3f6c9ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050030
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1a8b7758
|
2020-02-11T10:34:00
|
|
Fix assignment of CacheOpResult::EnumCount
The special enum value 'EnumCount' is used by EnumSize() to determine
how large to make the PackedEnumMap::mPrivateData array. However, that
enum entry was being assigned an incorrect value, leading to the array
being constructed too small and causing a crash in PackedEnumMap's
std::initializer_list constructor when it went beyond the size of the
array to assign each of the necessary values.
The fix is to remove the assignment of CacheOpResult::EnumCount and let
it indicate the real number of entries in the enum.
Bug: angleproject:4393
Test: end2end
Change-Id: If9635c61e72aadc6527d416f83be18add8b24572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050026
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b40d48a6
|
2020-02-09T10:38:40
|
|
Vulkan: Remove ensure init from updateActiveImages.
The ensure should already be triggered from the front-end.
Bug: angleproject:3539
Bug: angleproject:3887
Change-Id: Ic7ee10f9c767440e55befb929b414c0c894754c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046051
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cd8167fb
|
2020-02-10T14:17:09
|
|
Vulkan: Fix EGLBlobCacheTest.
Several runs of the same test in a row would cause a failure if the
cache would get hit. Fix the flakiness by resetting the cache between
runs.
Also cleans up some of the variable naming and adds a stream output
for pretty test errors.
Fixed while working on the standalone test harness.
Bug: angleproject:3162
Change-Id: I64da8a37eedf562860e3e5409cbf6fb08e81dfa4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047417
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3c066404
|
2020-02-05T12:43:12
|
|
Vulkan: Command graph linearization (Step 4).
Implements GLES 3.0 functionality for the new command recording style.
Tested with angle_end2end_tests. dEQP/CTS testing will come later.
Bug: angleproject:4029
Change-Id: Ibdc4f1355a7b880946699ec227fd9807f4a27af9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040197
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
041ebfed
|
2020-02-10T13:39:34
|
|
Speed up InstancingTest.LineLoop.
This test was taking 14-20 seconds in release mode. Likely because of
the way we were issuing a ReadPixels and "std::endl" to a stream for
every pixel of a 256x256 Framebuffer. Instead issue a single ReadPixels
call and no stream flushes. Now runs in less than 500ms.
Helps prevent timeouts when running tests multi-process. Also enables
the test on D3D9.
Bug: angleproject:3162
Change-Id: I27aad773040d6b6668cbde003802345e01044a7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047414
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8257ac30
|
2020-02-07T14:17:08
|
|
Vulkan: Defer RenderPass image barriers.
We accumulate image barriers in two places:
* for GL sampler textures
* for GL framebuffer attachments (Render Targets)
Then we issue the barriers together in a single call before the RP.
This fixes a bug where we were missing a layout transition in some
cases when transitioning between a sampler and a render target. It
should also be faster to issue a single barrier before a RP than issue
several smaller barriers.
Bug: angleproject:3539
Bug: angleproject:4029
Change-Id: I180b770f0df6b44d209e5c618ba36bcc1c6372e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044236
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
788fa360
|
2020-02-10T14:07:12
|
|
Suppress two failing NVIDIA D3D11 tests.
Bug: angleproject:4391
Bug: angleproject:4392
Change-Id: I81cbf261cf206cd2d38cff93d16056c21bf78557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047416
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9d86f331
|
2020-02-04T18:27:20
|
|
Capture/Replay: Avoid null pointer dereference in MEC
Small fix to progress Manhattan MEC.
Bug: angleproject:4091
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I7981e19a64f121b2ecca4451574ca2886641c6ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039532
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fc1e8503
|
2020-02-05T10:59:27
|
|
Capture/Replay: Initial support for framebuffer textures
Bug: angleproject:3662
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I3d9b4dced4c1667382154fb68839d01ba2db9b98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039531
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a8e6a463
|
2020-02-09T13:10:24
|
|
Suppress Vulkan RobustResourceInit tests.
These tests are flaky because of a bug in ANGLE's Vulkan robust
resource init. Mark them as failing until we can resolve the bug.
Bug: angleproject:4255
Bug: angleproject:4384
Change-Id: I8e18a8532850848fc7a25e137dce27dd0d19fa55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046053
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0a6e118d
|
2020-01-27T13:37:29
|
|
Change g_Mutex from std::mutex to std::recursive_mutex
When running flatland on android-10.0.0_r21 (Pixel 3), libgui's ~EglImage calls
eglTerminate which grabs angle's EGL entry point mutex. The path continues
to libvulkan where eventually another egl call happens (eglDestroyImageKHR) and
it will attempt to take the mutex at the entry point again. So we try to get the
mutex multiple times from the same thread.
Change this mutex to a recursive_mutex to allow for this re-entry of EGL calls
Tests: android-10.0.0_r21/frameworks/native/cmds/flatland
Bug: angleproject:4354
Change-Id: If8a817df45e9f58d5f06884510350e17d7127fa9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0d224cce
|
2020-02-05T11:00:59
|
|
Capture/Replay: Add 2DArray and 3D texture support for MEC
This also includes support for compressed formats, which
required a small refactor to streamline the code, since all
of the entrypoints have slightly different parameter lists
for imageSize and data.
Bug: angleproject:3662
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I007ad9366934fff773f367ecb6387bc8b0d13aa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039530
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9681190d
|
2020-02-05T12:51:25
|
|
Make Debug marker functions return angle::Result.
Allows error handling in these functions. Necessary for the Vulkan
back-end.
Bug: angleproject:4209
Change-Id: I2092e58e719c6ee562807e1c7e8ad26988342855
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040196
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c3854ebc
|
2020-02-07T11:11:26
|
|
Vulkan: Clamp vertex buffer offsets.
Vulkan mandates that vertex buffer offsets are within the size of the
buffer even if robust buffer access is enabled. Do a check in
VertexArrayVk::syncDirtyAttrib to guard against this.
Bug: angleproject:3350
Change-Id: Ia01deb9b7335dd8f632f2cf9b32d2908ba55645c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044491
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ca035803
|
2020-02-06T17:24:48
|
|
Vulkan: Add missing wrapper functions for XFB.
Found when working on the command graph refactor. Also replace the
offsets array with nullptr which should have the same effect.
Bug: angleproject:4029
Change-Id: I72e31c5403c645d72619e14aafef612e454183f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2043270
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e02f4996
|
2020-02-06T12:26:07
|
|
Vulkan: Pass correct level count in getLevelDrawImageView
This bug was hit by a KHR ES 3.1 test.
This CL just applies the obvious fix already noted by jmadill@.
Test: KHR-GLES31.core.shader_image_size.*-nonMS-*
Bug: angleproject:4008
Bug: angleproject:4108
Change-Id: I5d05c0a7432f7b70d2b995fd8b11224c119ece5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042491
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3a2522de
|
2020-02-06T10:05:23
|
|
Make TransformFeedbackTest deterministic.
Instead of using rand(), use a fixed seed RNG. This can ensure runs
use the same draw call counts no matter the time of day.
Note: there may have been a setting somewhere that was seeding the RNG
because I wasn't seeing variation between test runs locally. This
change makes it explicit.
Bug: angleproject:4029
Change-Id: Ic51bf2a6779da3b96a3357eed99c0f7fa9d81648
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042210
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9dc0201
|
2020-02-04T12:04:28
|
|
GL: Mark unused uniform locations that were explicitly bound as ignored
If a uniform location is unused, but a call to glBindUniformLocation has
explicitly bound the uniform, ANGLE validation still treated the uniform
as unused and returned errors. The correct behavior is to ignore the
uniform and silently fail.
Bug: angleproject:4374
Change-Id: Ic7b97f23cf8bc2d5380129322595e51b3d4a9fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036676
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e5385ea9
|
2020-01-27T13:40:18
|
|
Vulkan: Compile shaders at link time
Since line raster emulation was changed to use specialization constants,
it has been possible to compile shaders at link time. However, program
pipeline objects would have required keeping the shader sources around
for recompilation. Now that all necessary decorations are modified
directly in SPIR-V, it's possible to compile the shaders at link time
and forget about their sources. Program pipeline objects then simply
"reconfigure" the generated SPIR-V.
A next step could be to also create the Vulkan pipeline object at link
time. A number of failures due to gaps in CTS testing prevent that work
currently. In particular, in some situations the generated SPIR-V is
not per spec, for example it may contain vertex attributes with aliasing
locations, or have transform feedback capture of array elements
misconfigured.
Bug: angleproject:3394
Bug: angleproject:4253
Change-Id: I54c0884cf056b511a4a306225cc6ed2cef84d257
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023186
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f1b2c4be
|
2020-02-05T10:22:19
|
|
Vulkan: Fix overlay with command graph disabled.
Also fixes the missing RenderPass count in the new command recorder.
Bug: angleproject:4029
Change-Id: If7f0cf9e80ef815781ad2684ad1d93a3ed4912ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2037786
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
25b7b846
|
2020-02-05T10:22:18
|
|
Vulkan: Command graph linearization (Step 3).
Implements queries with the new command graph syntax. The T-Rex
capture benchmark uses queries so this fixes several errors.
Bug: angleproject:4029
Change-Id: Ia785f8e31257116aa3c75032dd66471b49926a78
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021003
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
20b1259a
|
2020-02-05T17:08:05
|
|
Vulkan: Command graph linearization (Step 2).
ES 2.0 is feature complete.
Passes all of the angle_end2end_tests with the new linear command
recording method. Also runs the T-Rex benchmark without any obvious
glitches. Likely has issues with creating too many RenderPasses. ES3
is mostly untouched.
Bug: angleproject:4029
Change-Id: Ic5acf3d768495fbffd07b07bf0a6f2b5787c51f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012900
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
806ba566
|
2019-12-12T13:02:01
|
|
Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle
Implement an IOSurface-backed pBuffer surface for the Vulkan backend
on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader
and handle locking/unlocking the IOSurface.
Bug: chromium:1015454
Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5641d193
|
2020-02-04T21:31:47
|
|
Move generic code from rx::DisplayAndroid/Ozone to rx::DisplayEGL
This CL is intended to move and factorize code only.
Move DisplayAndroid::generateConfigs to DisplayEGL::generateConfigs
because the code is generic and not Android specific. It will be
useful later to provide a default implementation of rx::DisplayEGL.
Same for createWindowSurface and createPbufferSurface, they have
been moved without changes from DisplayAndroid to DisplayEGL.
Unimplemented functions in DisplayOzone and DisplayAndroid have
been moved to DisplayEGL.
Bug: angleproject:4328
Change-Id: Ibbd36f99ea457cbd69391beb4a83f23403bc40fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038286
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
a44d96dc
|
2020-02-05T14:20:59
|
|
Apply compressed format workarounds to texStorage entrypoints
Bug: angleproject:4266
Change-Id: I70b3cdef35395b3a92bd460c9911b1ed963e0dcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038573
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eb63016d
|
2020-02-04T16:15:41
|
|
Add environment overrides for ANGLE features.
Allows the application to override ANGLE behaviour without having to
modify the code or use the ANGLE extension. Useful for testing with the
command graph refactor.
Adds a new string utility for parsing lists of strings from environment
variables.
Bug: angleproject:4029
Change-Id: Ibae93b743c0c385392cd259d9604ce2f2ed988dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2037784
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f764fc02
|
2020-02-03T10:33:58
|
|
Fix varying linking by location
This change breaks the assumption everywhere that varyings can be
identified uniquely by name throughout all stages of the pipeline.
It further implements linking of varyings by location, if specified.
Bug: angleproject:4355
Change-Id: Ie45e48879008c3f0c22d1da3d0d26f37c655e54e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030026
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
58fc8b11
|
2020-01-31T19:03:12
|
|
Implement RGTC (BC4, BC5) compressed texture formats
gl.xml was modified as two enums were missing from their proper group.
dxgi_support_data.json was fixed to not expect BC4 and BC5 on FL9_3
Bug: angleproject:3149
Change-Id: Ieb97a8cf8e92258c1b44e090e823fac227997174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033068
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
4933d9d2
|
2020-01-16T13:16:45
|
|
Capture/Replay: Track compressed texture data
Rather than try to read back compressed data using ANGLE_get_image
(which does not yet support compressed formats), track a shadow copy
of the compressed image and store it like client data.
Test: Mid-execution capture and replay of TRex frames using ETC1
Bug: angleproject:4036
Change-Id: Id15be60f7444cc2e1356e76ff18069c42e552663
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015818
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
3e691bb9
|
2020-02-03T14:25:03
|
|
Vulkan: Count active renderpasses in overlay.
Useful debugging information for benchmarks. Also helpful when working
with the command graph to ensure we don't regress performance.
Bug: angleproject:4029
Bug: angleproject:4320
Change-Id: Ibe224c40a3acaca9231bf3869486a0f8bba07ba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036402
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d8c4b5fb
|
2020-01-31T16:47:51
|
|
Expose ASTC 2D on OpenGL
Bug: angleproject:4372
Change-Id: Ic1800ac10b12547ca9816f7ad9dfd62f83f227c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033066
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
9e774041
|
2020-01-31T15:09:01
|
|
Update S3TC GL extension strings
Added avoid_dxt1_srgb_texture_format workaround
Bug: angleproject:4266
Change-Id: I286a9c66f6ea1d2c9d3587f6ca85608336eb44a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033065
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aa6dd50d
|
2020-02-03T17:10:58
|
|
Share scratch buffers between contexts.
The Display now owns scratch buffers and loans them out to contexts
while they are current. This allows us to to only allocate one scratch
buffer in a single-threaded use case.
Tick the scratch buffers every time a new context is made current.
Lower the lifetime from 1000 to 64 to ensure that in the worst case,
the buffers are cleared after not being used for ~1 second.
BUG=chromium:1030835
BUG=angleproject:4363
Change-Id: I83552424e2beac62b9e41152876b04fc84f53692
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2031698
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
4546c5ce
|
2020-01-31T15:05:35
|
|
Skip failing end2end tests on Windows on ARM
There are multiple failing tests on Windows on ARM which are related to drawing differences.
They seem to be similar to an already reported issue (anglebug.com/3748).
Bug: angleproject:4356
Bug: angleproject:4357
Change-Id: Ide5cc2e6f42d4c4b6fb88352833d20e517005c14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033067
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fed0dda1
|
2020-01-31T12:59:31
|
|
Remove getIndexRange call from ValidateDrawRangeElements
The spec doesn't require implementation to validate indices against
range. This extra validation is costing performance dearly, thus should
be removed.
Bug: angleproject:4373
Change-Id: I61b0628e75de368d9e869008b7c99c429222fd6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033495
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
49a53d68
|
2020-01-30T16:30:30
|
|
Vulkan: Request used features
Some features were used but not enabled. There is no validation error
for this. This change enables the following features:
- shaderStorageBufferArrayDynamicIndexing: used by atomic counter
emulation.
- shaderSampledImageArrayDynamicIndexing: used by sampler array of array
emulation, as well EXT_gpu_shader5.
- shaderUniformBufferArrayDynamicIndexing: used by EXT_gpu_shader5.
Bug: angleproject:4071
Change-Id: I582750d1552055deeec50485e6511788b98490c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032144
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
07795d47
|
2020-01-31T16:08:52
|
|
Disable rewriteRowMajorMatrices workaround.
It's causing flaky crashes in tests. Leave the revised code in place
so it's easier to debug. Disable test which required the workaround.
Bug: angleproject:2273
Bug: angleproject:3843
Change-Id: Iebb682bd3c6282031cc57eda5d3d4d5636be7294
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033870
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
f63fbcd5
|
2020-01-29T16:13:56
|
|
Fuchsia: Limit number of concurrent presents in ScenicWindow
The test suite occasionally runs into the following error:
[02036.794449][326733][326738][klog] INFO: [ERROR:src/ui/scenic/lib/scenic/session.cc(412)] Scenic session error (session_id: 1): Present2() called with no more present calls allowed. Terminating session.
This is actually a problem with the test harness as resetting the window
triggers a present with no fences and no OnFramePresentedCallback which
means there is no way to know if we will exceed the limit.
Add an OnFramePresentedCallback and count presents to stay under the
limit. This blocks if there's more than 2 in flight presents. A dedicated
async loop is used to avoid re-entering other code while waiting to
present (there is no such case in the ANGLE test suite currently, but
better safe than sorry).
Typically if we run the whole suite there will be a failure in the
middle, but re-trying the test that failed won't repro the issue. Add a
test that reliably exhausts the limit by calling resetNativeWindow() in a
loop.
Bug: angleproject:4360
Change-Id: I24eb01fd72fc0be57c36e49b5875023a80d6ab91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027934
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a36f8bd4
|
2020-01-29T12:10:17
|
|
Mark MemoryBuffer allocation functions as NO_DISCARD
Not all call sites were checking the return value of
MemoryBuffer::resize, mark the return value as NO_DISCARD and fix all
the warnings.
BUG=chromium:1030835
Change-Id: I762796e3d11efc131a814069d78a195b0d4c9f8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028151
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1736c47b
|
2020-01-31T11:16:41
|
|
Vulkan: Remove transient cmd buffer workaround
We no longer need this workaround. Also mCommandPoolFreeList dead code.
Bug: angleproject:3508
Change-Id: Ib73ddd431eb1bf9a55c3421111af4df5976cc1fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033485
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
71153201
|
2020-01-29T14:42:30
|
|
Vulkan: Disable restartRenderPassAfterLoadOpClear workaround
This workaround was added due to qualcomm driver bug b/129281932. But
this has been fixed with recent drivers. Removing the WR here so that it
will not negatively affect performance.
Bug: angleproject:4344
Change-Id: Iea2ec86082a0ced64bfe843bf916c6bdb2aea60b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029210
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
e580ca8b
|
2020-01-29T16:21:05
|
|
Capture/Replay: Implement Manhattan ES 3.0 support
Populate the entrypoints required to get gfxBench
Manhattan scene to capture and replay correctly from
the beginning of the trace.
Test: Captured and replayed Manhattan frames 0-500 on
both Windows and Linux (Nvidia GPUs)
Bug: angleproject:4091
Change-Id: I5447a6835e55e944772d37219f2bd414606f0a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
c73475fb
|
2020-01-29T11:37:05
|
|
Vulkan: Fix UtilsVk dirtying driver uniforms descriptor set binding
Most UtilsVk functions bind a descriptor set to index 0 (same as driver
uniforms). If that happens to close a render pass, all is well as
starting a new render pass ensures all descriptor sets are rebound.
However, if the render pass is not closed, or if a dispatch call is
issued (which never rebinds descriptor sets if not explicitly
necessary), then the driver uniforms descriptor set may end up never
rebound, causing a validation error (and possible crash or corruption).
This change makes sure that UtilsVk notifies the context when it binds a
descriptor set. The context then dirties the driver uniforms binding
as appropriate.
Bug: angleproject:4272
Change-Id: Ief20c7884fbe39712f844247489812afc70b30a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2027938
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
088b1baa
|
2020-01-30T17:53:07
|
|
Change uuid attributes to declspec in winrt.
Due to
warning C4467: usage of ATL attributes is deprecated
Bug: angleproject:3928
Change-Id: I6620acc85ae974445a2a01fc109568fac8c3b23b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032152
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e196bc85
|
2020-01-17T13:11:20
|
|
Add driver bug workaround for rewriting row major matrices.
Joint work with syoussefi@, who wrote the RewriteRowMajorMatrices
pass, and revised it for this CL to not rely on the
NameNamelessUniformBuffers pass - which was breaking it on the GL
backend.
Hook up previously written RewriteRowMajorMatrices transformation, and
enable on all GPU types on macOS. It is needed at least for AMD and
Intel GPUs.
Add a new test which verifies the behavior of dynamically-indexed
arrays of row-major matrices.
Bug: angleproject:2273
Bug: angleproject:3843
Change-Id: Id582f9cf6b9b1a59091aab1786539174f360b705
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008717
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d9884d3e
|
2020-01-29T15:26:39
|
|
Vulkan: Don't dirty index/vertex buffers on each syncState.
This will help for the command graph refactor so we can set up the
command buffer barriers before we start the render pass for draw.
Bug: angleproject:3539
Bug: angleproject:4029
Change-Id: If5a55db6ac1e06609a3a1e2245d7ab351152886a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028450
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee07cb31
|
2020-01-29T18:02:50
|
|
Test Harness: Allow filter with sharding params.
Some tweaks to when we call gtest initialization allows this to work.
Bug: angleproject:3162
Change-Id: I75159108d3f746f666e57c1a6495a8c8616ef1cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024335
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
e4859ae5
|
2020-01-27T15:21:58
|
|
Fix re-enabling ARB_texture_rectangle
My earlier change https://crrev.com/c/1991969 had a bug. If
ARB_texture_rectangle is disabled once, it can't be re-enabled because
the extension behavior entry is deleted. ResetExtensionBehavior needs
to restore it.
Bug: angleproject:3770
Change-Id: Icf96acece8ea8d17287c8d09fb4849b61c9c2a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023398
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
80da4214
|
2020-01-29T10:12:31
|
|
D3D11: Copy from Image objects instead of TextureStorage when possible.
glCopyTextureCHROMIUM calls in D3D11 would call getNativeTexture on the
copy source which would allocate a TextureStorage11 if one did not
already exist. This caused full mip-chain allocations in some cases when
we could have just copied directly from the staging Image11.
When navigating to wikipedia.org:
Peak memory | Stable memory
Passthrough (before): 142 mb | 119 mb
Passthrough (after): 138 mb | 106 mb
Validating: 139 mb | 110 mb
No mip-mapped textures were allocated after this change.
BUG=chromium:1030835
Change-Id: Icd14afaec445299423cfea293cba501d774f6ade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2028147
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
053929ac
|
2020-01-24T18:15:38
|
|
Fuchsia: Enable perFrameWindowSizeQuery by default
Fuchsia won't return VK_ERROR_OUT_OF_DATE_KHR after a size change, so we
need to check every frame. In fact we don't even tell Scenic what the new
size is during resize, because it does not care - the surface size
determines the "window size", not the other way around.
Bug: angleproject:4348
Change-Id: I8f9af0d1379f4993865c7ccedc9aba3cab90cf54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023914
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
33027d3e
|
2020-01-28T16:08:02
|
|
Enable GL_OES_depth_texture_cube_map with Vulkan backend
GL_OES_depth_texture_cube_map depends on depthTextureOES,
but adds the same new texture format/type requirements as
GL_OES_packed_depth_stencil, so instead of adding a
specific check for GL_OES_depth_texture_cube_map, the
Vulkan backend checks for a combination of
GL_OES_depth_texture and GL_OES_depth_texture_cube_map
to enable GL_OES_depth_texture_cube_map.
ANGLE has no specific checks for whether a format is
"cubemappable", but Vulkan has no restrictions of the
format of cubemaps, so if the proper formats are
supported, creating a cube of any of these formats
should be implicitly supported.
Bug: angleproject:4293
Change-Id: I968dbe8869ba0f50de18dd41f1195e847c06b520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026027
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
09d51a57
|
2020-01-24T17:28:24
|
|
Fuchsia: Skip PointSpriteAlternatingDrawTypes on ARM Fuchsia
This is not passing currently, skip it for now.
Bug: angleproject:4349
Change-Id: If36a144e8d17cc94c2186a7a794358b14223349e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023913
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
eca11cc8
|
2020-01-28T14:18:40
|
|
SH_CLAMP_INDIRECT_ARRAY_BOUNDS logic update
Remain the old hardware requirement for turning on clampArrayAccess. But
also turns it on universally for WebGL context. So that we won't suffer
from clampArrayAccess not handled properly on some compute shader deqp
tests.
Bug: chromium:1042252, angleproject:4361
Change-Id: Ib11affd6df27ce7d2100980d2b8decdee36876e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2026029
Reviewed-by: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
b91acdcf
|
2020-01-21T11:02:26
|
|
Vulkan: Cleanup glslang wrapper
There are no longer @@ QUALIFIER and or @@ LAYOUT markers. Only @@
XFB-DECL @@ and @@ XFB-OUT @@ markers remain, which are now replaced
with simple string manipulation.
Bug: angleproject:3394
Change-Id: I9c1883458d9de3ea59ac08aae57a7c8985e7afbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012741
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
cb2b5136
|
2020-01-10T11:04:38
|
|
Vulkan: Simplify format table generation
Remove the "override" table. That gets in the way of some solutions.
If a format cannot be supported by a native Vulkan format as indicated
in the "map" table, then check fallbacks.
Also add support for native RGBA4 and R5G5B5A1 support. Previously
those formats would be emulated with RGBA8 due to the override, but
now code will check if the native format is available and use it.
Bug: angleproject:4282
Change-Id: Ib33ea40543d91a2c2a95075b277f825a8822037c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994538
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
f1f082e1
|
2020-01-17T14:53:38
|
|
Vulkan: Set varying location & xfb decorations in SPIR-V
The shader translator outputs arbitrary location indices. Once compiled
by glslang, the SPIR-V transformer modifies these decorations. If the
transform feedback extension is used, it will also add the relevant
decorations to the varyings that are captured.
Bug: angleproject:3394
Change-Id: I5ecafd0536408612a5d4b920dbabbfabe650657c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008468
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
05e08edf
|
2019-12-26T20:58:48
|
|
Disable skipValidation when context is lost.
Lost no-error contexts should gracefully handle GetProgramiv, etc.
Includes test that a lost no-error context doesn't crash on getProgramiv.
Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1601703
Bug: angleproject:4244
Change-Id: I8c37df37e83308ab85ad958df6dab46b0ab348e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003239
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5ca050d1
|
2020-01-20T14:59:41
|
|
Vulkan: Set fragment output locations in SPIR-V
The shader translator outputs arbitrary location indices for fragment
outputs. Once compiled by glslang, the SPIR-V transformer modifies
these decorations.
Bug: angleproject:3394
Change-Id: Ib9d8336bccc392e789e4d93031fdcce9c466b7a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011214
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bef8ca7d
|
2020-01-20T14:19:05
|
|
Vulkan: Set vertex attribute locations in SPIR-V
The shader translator outputs arbitrary location indices for vertex
attributes. Once compiled by glslang, the SPIR-V transformer modifies
these decorations.
Bug: angleproject:3394
Change-Id: I88453b44e3a8770f51e79228148233ff308f1885
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011212
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
71e6afb1
|
2020-01-14T14:12:31
|
|
Vulkan: Set set/binding in SPIR-V
This change introduces a SPIR-V transformer that modifies shader
interface variable decorations directly in SPIR-V instead of
manipulating the input GLSL. Currently, descriptor set and binding
indices are set by the transformer.
The shader translator outputs arbitrary set and binding indices. Once
compiled by glslang, the SPIR-V transformer modifies these decorations.
The ultimate goal is to be able to modify the SPIR-V again when program
pipeline objects decide a different set/binding is necessary.
Bug: angleproject:3394
Change-Id: If358265a72bf1fe9f5676562b39a632cb2e05dc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2bc9cc12
|
2020-01-24T16:40:46
|
|
Fuchsia: Blacklist swiftshader on Fuchsia
This doesn't work and is highly misleading as the tests run with the real
GPU.
Bug: angleproject:4353
Change-Id: Id9139436e39d5e8e063bcc679b7c63f589d3b748
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023912
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44c75073
|
2020-01-20T19:59:55
|
|
Fuchsia: Disable GLES3 testing on Fuchsia ARM
The vulkan driver is missing required extensions so these tests are all
failing.
Bug: angleproject:4352
Change-Id: Id1af7c40798d8844fbf832c6066260fe3a8bfeda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023911
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e28883de
|
2020-01-25T23:25:43
|
|
Vulkan: Fix handling of inactive fragment outputs
These were never assigned a location. They are now removed by the
translator similar to other inactive variables.
Bug: angleproject:4313
Change-Id: I3398d06e1dea3f43b84f206cca07cde5b44b21a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021734
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bab2b3de
|
2020-01-22T14:52:31
|
|
Vulkan: Disable global merge for volk
This optimization pass breaks the build by exporting volk's internal
binding symbols from libGLESv2.so. Since the test binary also links volk,
this causes a SEGV as the wrong (uninitialized) function pointer is
called.
This is an LLVM bug and will be fixed upstream:
https://reviews.llvm.org/D73235
Bug: angleproject:4351
Change-Id: Iebe0eabd975f8109231df30eef8c9074af8190e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023910
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
|
|
b630bf9e
|
2020-01-24T17:27:01
|
|
Fuchsia: Implement SystemInfo on Fuchsia
The Android vulkan code is reusable, so move that to a new file
SystemInfo_vulkan.cpp and call it in the Android & Fuchsia
implementations. This is necessary to skip tests based on GPU.
Bug: angleproject:4349, angleproject:4352
Change-Id: I8330cfcdbd41f4d51391bd5ed7f0820c55e02801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023909
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e3ba0d7d
|
2020-01-28T13:46:13
|
|
Disable 'nodiscard' warning on MSVC for dEQP.
Bug: angleproject:4358
Change-Id: I774b4ba442e27935a676f2ce82356e8c77a0db27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024334
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4a8fa19f
|
2020-01-27T17:19:57
|
|
Fuchsia: Switch to gfx_tests sandbox configuration
The default sandbox config for tests built in chromium doesn't allow
access to the GPU or display. Switch to the gfx_tests sandbox config
to allow the tests to run.
Bug: angleproject:4350
Change-Id: Ib80db196ef55df694369cfc7a3cf18327ce7c952
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023908
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
571ceb5f
|
2020-01-24T13:11:54
|
|
Turn on clampArrayAccess globally but off for compute shaders
out-of-bounds-uniform-array-access.html could fail on Linux Nvidia
OpenGL even if GL_KHR_robust_buffer_access_behavior is available.
Turning clampArrayAccess on globally but turn it off for Compute Shader,
which is not used by WebGL so should be okay.
FYI: The failures when turning this on globally are all in compute shaders.
One could be fixed by using int cast instead of float for the clamp
modifier. The other is due to array.length() couldn't return correct
result for array in SSBO.
Bug: chromium:1042252
Change-Id: Ic6f7adae4600d35207646881b18990a0c25a889a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2020463
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
cc414d57
|
2020-01-28T12:58:30
|
|
D3D11: Fix uninitialized BufferEx SRV.
This was causing an unrelated error that was complicating diagnosing
test failures with the command graph refactor.
Bug: angleproject:4029
Change-Id: I31df76e7ea1c7fb731b49e97ac8a527a165efd48
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2024331
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a6dfa11f
|
2020-01-28T09:09:47
|
|
Vulkan: SwiftShader now getting correct sample positions
This was fixed in SwiftShader and I verified it
Bug: angleproject:4213
Change-Id: I6f591b81a62ec4c586d4abb7e6a2345794602833
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2025066
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
7488a096
|
2020-01-27T22:17:59
|
|
Add a test to expose location'ed varying link bug
Bug: angleproject:4355
Change-Id: I2b914d3e6bf74ccf5d3f42d7bd010e44e45645ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
086aded3
|
2020-01-26T13:40:02
|
|
Return the correct location count for matrices in structs
GetLocationCount() returned secondary size for fields of a struct. For
matrices however, the correct value would be the primary size.
This is a similar fix to 6423b7fc7ded02a702d24feb0730731ab9f6c061.
Bug: angleproject:4200
Change-Id: I2c69b9454729993010766fcde0cabec986b7429d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021738
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d0b4eaf6
|
2020-01-16T09:38:28
|
|
Vulkan: Allow user to specify preferred device
On a platform with multiple graphics devices (e.g. laptop with
integrated and descrete devices) it's handy to be able
to specify the specific device we want ANGLE to use.
Setting the environment variable ANGLE_PREFERRED_DEVICE to the device
name as returned by VkPhysicalDeviceProperties.deviceName will select
that device.
Bug: angleproject:4305
Change-Id: Ib16895add2c36a59135942b52401ceb7b6bc0895
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2002737
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2d1d9d35
|
2020-01-27T12:09:41
|
|
Fix atomicAdd validation w.r.t to swizzles
Bug: angleproject:4150
Change-Id: I22c0c0382a2b208dd983fa1981ffc75f1b1945e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022359
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1a1a1427
|
2020-01-23T13:57:21
|
|
Expose eglGetMscRateCHROMIUM from EGL_CHROMIUM_sync_control
When ANGLE is using the GL backend on GLX, we can expose
eglGetMscRateCHROMIUM via glXGetMscRateOML. Otherwise, this function
should return false.
Bug: chromium:1042393
Change-Id: Id9b308c2217e07ee9860e2869be0e23b7a0c7411
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2017048
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a1f1cce6
|
2020-01-27T11:34:58
|
|
Vulkan: updateActiveImages: process each image once
There are two issues with processing the images multiple times:
- The graph trips up because on the first addWriteDependency, the
current writer pointer of the image will be set to the recorder, and
which on the next addWriteDependency creates a self-dependency.
- We transition the layout of the whole of the image, so doing that
multiple times is inefficient.
Bug: angleproject:4312
Change-Id: Ibae72e8698edf5db97139f48d68624d3e9a1d5db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2022355
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
52ef28dc
|
2020-01-24T09:55:01
|
|
Vulkan: Update active textures before setupDraw().
The linear command graph prohibits rendering outside the render pass
*after* we begin a renderpass. The prior code would render outside a
render pass (changing image layouts) even after a RenderPass was
started in setupDraw(). The new code changes the image layouts in
ContextVk::syncState so we no longer need to "prepend" image layout
changes after we started a RenderPass. Now we record layout changes
followed by the draw calls or other renderpass ops.
Bug: angleproject:4029
Bug: angleproject:3539
Change-Id: I420858907ac38f995400c1b566c856d966a4e979
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015940
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
564eb6f2
|
2019-11-22T16:46:02
|
|
Implement EGL_IMG_context_priority
Change RendererVk to have 3 VkQueues instead of one.
Each queue has a priority. To match extension: Low, Med, High.
gl::Context contains priority.
ContextVk contains a reference to one of the queues.
Every call to vulkan that uses queue, uses the associated context queue.
Bug: angleproject:3962
Change-Id: Ibd913a07a81c77bd975921d6dbae6a222842e88b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1978154
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
080d711b
|
2020-01-08T13:04:44
|
|
Tests: Add a perf test using traces
This test will load traces and cycle through a set of frames.
The new tests are:
TracePerfTest.Run/gl_trex_200_210
TracePerfTest.Run/gl_trex_800_810
TracePerfTest.Run/gl_trex_900_910
TracePerfTest.Run/gl_trex_1300_1310
To download the traces, you must be granted access and authenticate
with the cloud. See the steps in RestrictedTraces.md for this.
Then add the following to the end of your .gclient file:
"custom_vars": {
"checkout_angle_internal":"True"
},
And run `glcient runhooks`.
To enable building the test, add the following GN arg:
build_angle_trace_perf_tests = true
See the new markdown document for ways to execute the tests.
Bug: angleproject:3630
Change-Id: Ic25cd94fb36b35fcf187e88d3bf9548c65f59755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949605
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3712b2e4
|
2020-01-24T17:08:30
|
|
Vulkan: Command graph linearization (Step 1).
This initial prototype introduces a new feature to the Vulkan back-end
that disables the deferred command recording. The intent is to have a
lower CPU overhead during submission calls which currently walk a DAG.
The feature is not complete. Currently it only passes the ANGLE
SimpleOperationTests. Moreover it is extremely simple and only allows
use of one command buffer at a time. In the future we'll allow open
command buffers for recording outside and inside render pass commands
at the same time. We'll also support collapsing RenderPasses together
for some use cases.
Currently the prototype only passes "SimpleOperationTest". There are
quite a few unimplemented features like queries, XFB, etc.
Bug: angleproject:4029
Change-Id: I82760986683f55e37ac4ea559de6f4cffb6ef84e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1953485
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
d5d8ffa8
|
2020-01-17T14:59:34
|
|
Disable ANGLE GL and Vulkan on Windows on ARM
Currently Windows on ARM doesn't support OpenGL but it is enabled in ANGLE by default.
Vulkan is only supported via Swiftshader so we should not test native Vulkan.
Therefore it causes crashes and fails on Windows on ARM when running angle_end2end_tests.
Bug: angleproject:4318
Change-Id: I70349ed53a2248df2dc8e7a0c0b3a6a5537a1110
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007414
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
23521ca3
|
2020-01-22T18:42:56
|
|
Validate `context` before use in ValidateStreamConsumerGLTextureExternalAttribsNV.
Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1608235
Bug: angleproject:4333
Change-Id: I957b6412f7c744e4bbaa7d8084b3c81ee58d45ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015838
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e93a438b
|
2020-01-10T01:48:24
|
|
GL_OVR_multiview shouldn't be defined for WebGL spec'ed shaders
According to the latest change in WebGL's OVR_multiview2 spec, the GL_OVR_multiview should NOT be defined. Refer to https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/
I.e. this shader should NOT fail compilation:
#version 300 es
#extension GL_OVR_multiview2 : require
#ifdef GL_OVR_multiview
#error legacy GL_OVR_multiview support must be forbidden
#endif
....
Bug: angleproject:4279
Change-Id: Ic94cba6785ea3a1fa14d5131dc0960214aa574be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1994830
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
512abe85
|
2020-01-23T13:28:01
|
|
Clamp array accesses when robust buffer access not available
Apple doesn't support GL_KHR_robust_buffer_access_behavior, so we don't
know if we can trust the driver to be safe with out of bounds array
accesses. It's not currently failing the out of bounds access tests, but
this may be coincidental. In general it makes sense to always clamp
array accesses when GL_KHR_robust_buffer_access_behavior is not
supported.
The validating command decoder actually enables this workaround
unconditionally, but that seems unnecessary.
Bug: angleproject:2978
Change-Id: Ib061dd4db10e044ced0dff95d0aac6a91f15b100
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2018182
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
|
|
0a3f58f1
|
2020-01-24T09:54:31
|
|
Fix undefined behaviour in ClearTest.
We were expecting an uninitialized texture to contain black. However
the contents of the texture data may be undefined.
Discovered when working with the Vulkan command stream refactor.
Bug: angleproject:4029
Change-Id: Ia5d24707746819b116ac0053fabb48033574569a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2017978
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
453926f5
|
2020-01-19T14:49:32
|
|
Vulkan: Remove inactive shader inputs in the translator
Inactive vertex attributes are harmless to remove. Between two
consecutive stages, the input varyings must be a subset of the previous
stage's output varyings. This means removing inactive input varyings is
also harmless.
Removing inactive output varyings is not possible though. GLSL allows a
varying to not be written by the previous stage even if it's used in the
current stage (values will be undefined, but it's not an error). This
means that an inactive output varying may still need to exist as part of
the shader interface in case the following stage has that varying as
input (and is active).
Bug: angleproject:3394
Change-Id: I7302973d2b8356d9f54a66f8259c32f245a99904
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2009986
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1d480fcc
|
2020-01-23T16:08:53
|
|
Fix image linking not verifying same format
Bug: angleproject:4316
Change-Id: I7508c0f9b0546bf3a23f819de49e7a91a74b6bc9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2018046
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f3b4e6c3
|
2020-01-13T17:07:13
|
|
Vulkan: No inactive samplers left to cleanup in glslang wrapper
Loose inactive samplers are already removed in
RemoveInactiveInterfaceVariables. In-struct samplers are always marked
active by CollectVariables if the uniform is active. If the uniform is
inactive, it is removed entirely by the translator. Thus no inactive
samplers are left for glslang wrapper to clean up.
Bug: angleproject:3394
Change-Id: Ic0fef052afa992bd612fd22ffa1e5b9aa72a17bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1999488
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8dfe472c
|
2020-01-13T15:20:51
|
|
Vulkan: Output qualifiers in the translator
With the exception of varyings, every other qualifier can be directly
output by the translator. This simplifies and optimizes glslang
wrapper.
Varyings' in/out qualifiers are still placed in @@ QUALIFIER macros so
glslang wrapper can remove them, if inactive, not by commenting them
out, but by turning them into global variables.
Bug: angleproject:3394
Change-Id: I9a3d18df2cfd36a38308bf8f71ac12f1e1513ece
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998839
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
24627fa4
|
2020-01-21T11:39:56
|
|
Row-major test: switch to compute
Based on Nvidia's recommendation that the following:
all(lessThan(gl_FragCoord.xy, vec2(1.0, 1.0)))
isn't necessarily true for only a single FS invocation, even when not
multisampling. The tests that do the above are changed to compute
instead.
Bug: angleproject:3831
Change-Id: I22d935f797c2e385218bc6af31e98a7f672a7707
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012743
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
135f8fcb
|
2020-01-13T16:18:41
|
|
Vulkan: Remove inactive uniforms in the translator
By removing inactive uniforms in the translator, glslang wrapper doesn't
need to comment them out. Additionally, inactive uniforms don't find
their way in the default uniform block, reducing its size if there's a
mix of active and inactive uniforms.
As collateral, it also fixes a bug where inactive uniforms of struct
type were not correctly removed by glslang wrapper.
Bug: angleproject:3394
Bug: angleproject:4211
Bug: angleproject:4248
Change-Id: I874747070e875fe24bf59d39d1322e319e280a16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1999278
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
abaeb415
|
2020-01-20T20:33:23
|
|
Vulkan: Fix setupDraw when VK_EXT_transform_feedback is not enabled
There's no dirty bit handler if VK_EXT_transform_feedback disabled, but
we're setting that dirty bit in syncState. This results in calling a null
method pointer. Skip the invalidate if the extension is not enabled.
gl::LogMessage::~LogMessage() at ./../../third_party/angle/src/common/debug.cpp:0
rx::ContextVk::setupDraw(gl::Context const*, gl::PrimitiveMode, int, int, int, gl::DrawElementsType, void const*, angle::BitSetT<11ul, unsigned long, unsigned long>, rx::vk::priv::SecondaryCommandBuffer**) at ./../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp:844
rx::ContextVk::drawArrays(gl::Context const*, gl::PrimitiveMode, int, int) at ./../../third_party/angle/src/libANGLE/renderer/vulkan/ContextVk.cpp:1698
gl::Context::drawArrays(gl::PrimitiveMode, int, int) at ./../../third_party/angle/src/libANGLE/Context.inl.h:112
gl::DrawArrays(unsigned int, int, int) at ./../../third_party/angle/src/libGLESv2/entry_points_gles_2_0_autogen.cpp:926
(anonymous namespace)::AttributeLayoutNonIndexed::Draw(int, unsigned int, unsigned short const*) at ./../../third_party/angle/src/tests/gl_tests/AttributeLayoutTest.cpp:431
(anonymous namespace)::AttributeLayoutTest::Run(bool) at ./../../third_party/angle/src/tests/gl_tests/AttributeLayoutTest.cpp:305
[This stack is from the added assert; calling a null function pointer
crashes without producing a useful stack trace.]
Bug: angleproject:4326
Change-Id: I036ae322bddc4865229fa3fe7ea72a4344b99f83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011408
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
13881af3
|
2020-01-21T12:52:56
|
|
Vulkan: Fix cast of float to unsigned int for ARM
ARM devices cast float to unsigned int differently than Intel devices.
Need to do additional work to ensure consistent behavior.
This was causing negative API tests to fail because the invalid
parameter was being turned into a 0 which is valid, but not what was
intended (should have been 0xffffffff).
Bug: angleproject:4323
Change-Id: I7447842d0f56362d9eb2db4d04b5416c78e51d27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012746
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b36e46ab
|
2020-01-08T15:49:18
|
|
Vulkan: Line raster emulation through specialization constant
In preparation for compiling shaders early at link time, this change
reworks line raster emulation such that it uses specialization constants
instead of a preprocessor condition. This means drawing both triangles
and lines with this program will still result in a one-time shader
compilation.
The compilation is still done at draw time in this change.
Bug: angleproject:3394
Change-Id: I0bf91398868d7f7147456533b728906b505192b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1992365
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6d6b91a6
|
2020-01-21T15:58:19
|
|
Enable GL_NV_fence with Vulkan backend
Implemented FenceNVVk, based on the existing vk::SyncHelper class.
Bug: angleproject:4295
Change-Id: I3f44a66e27ce3bd24461894dae4757b25321a6a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2013880
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
230e14dd
|
2020-01-21T23:32:06
|
|
Add support for layout(early_fragment_tests) in;
Bug: angleproject:4314
Change-Id: I37b228f37201cc4188834e68459cd7294727c3ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2014240
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01e28144
|
2020-01-21T13:15:18
|
|
Row-major test: Clarify std140's stride calculation
Bug: angleproject:3830
Change-Id: I5fa213927b609ef33c729ded5d42add8f148dcb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012622
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|