|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
5a7356ae
|
2020-01-16T23:22:31
|
|
Add support for non-float mix
The non-float variations of the mix builtin were conditioned to desktop
GLSL, but they are present in ESSL 3.1+. This change also implements
constant folding of these builtins as exercised by dEQP.
Bug: angleproject:4300
Change-Id: Iec34de4cf370e00d67fd605148cd7848f9e122f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006809
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a8614528
|
2020-01-17T15:48:19
|
|
Update expectations after dEQP test fixes
Latest dEQP roll included some test fixes for GLES 3.1
Remove those exclusions from expectations file.
Bug: angleproject:3590
Bug: angleproject:4323
Change-Id: If08c474490c24f63d2f8cc198ee7e3dc85d7f999
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008128
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
f6506799
|
2020-01-22T11:50:08
|
|
Reduce fail expectations dEQP-GLES31.functional.program_interface_query.buffer_variable.*
There are still a subset of failing tests, but the failures mentioned in angle
bug 2277 are no longer expected.
Bug: angleproject:2277
Change-Id: I6c55283911bb7be4208b41e9bcd1a4960ed5fc5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012948
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
681c707e
|
2020-01-21T10:48:31
|
|
Reduce D3D11 skips in dEQP-GLES31.functional.program_interface_query.buffer_variable.*
There is still a failing subset, which is partially investigated in angle bugs
4329 and 4330.
Bug: angleproject:4329
Bug: angleproject:4330
Change-Id: I286bb42f521e00b3687bf327feaed47444deafc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2010114
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f8b6e3f
|
2020-01-20T13:59:32
|
|
Vulkan: Add support for GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
For some reason, this wasn't implemented when texture image load and
store was implemented.
Bug: angleproject:4311
Change-Id: I24c508660ad7eb3aa944601175803751b54ce0ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011324
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
845a09b8
|
2020-01-20T12:57:18
|
|
Vulkan: glDeleteTexture unbind all image texture units
The old code only unbound one image unit when a texture was deleted.
The GLES specification is clear that the texture should be unbound from
all units:
If a texture object bound to one or more image units is deleted by
DeleteTextures, it is detached from each such image unit, as though
BindImageTexture were called with unit identifying the image unit and
texture set to zero.
Bug: angleproject:4310
Change-Id: I24c508660ad7eb3aa944601175803751b54ce0dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2011322
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
62475e95
|
2020-01-20T11:16:24
|
|
Allow tests to pick ANGLE features.
This uses the EGL_ANGLE_feature_control extension through the test
harness to control feature selection via a test config. This obviates
the need for the hacky platform methods table override.
Also adds a command graph feature that will be used to prototype the
command graph linearization for Vulkan.
Bug: angleproject:4029
Change-Id: Id37fadd5d2c317c9d9dd90dfab1fdc8e4ac3701f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007612
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3cbeaba4
|
2020-01-17T12:28:45
|
|
Remove suppression of passing test
Fixed in
https://chromium-review.googlesource.com/c/angle/angle/+/2006813, but
suppression was not removed.
Bug: angleproject:4309
Change-Id: I430501c0d977a8c5999390f2ad895290e2301dc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2008129
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
33a2c43d
|
2020-01-16T15:24:47
|
|
Sort GLES 3.1 expectations to show conformance blockers
Sorted by group (i.e. blocking conformance, desktop, general Vulkan, Android).
Bug: angleproject:3520
Change-Id: I6f7c702460b3d1908838796d88e5448d4f83b242
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006018
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
5860f84a
|
2020-01-17T00:58:48
|
|
Vulkan: Narrow KHR-GLES31 image failures
Bug: angleproject:4309
Bug: angleproject:4310
Bug: angleproject:4311
Bug: angleproject:4312
Bug: angleproject:4313
Bug: angleproject:4314
Bug: angleproject:4315
Bug: angleproject:4316
Change-Id: Ibda4eac6a49ad7a8fcf0ec68b6dd199a3f66ebb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2006812
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9689725
|
2020-01-16T14:46:46
|
|
Suppress UniformsBenchmark perftest on Win/NVIDIA/Vulkan
Started failing on Jan 11, 2020
Bug: chromium:1041672
Change-Id: Ie51c0d363b49025c607c32a1858cdaf8c38ebf87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003013
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
df0203a9
|
2020-01-15T14:05:33
|
|
EGL: Add support for EGL_EXT_pixel_format_float extension
Add support for floating point configs. On backends that
support rendering to floating point formats, add them to
EGL's frambuffer config list
Bug: angleproject:3958
Tests: dEQP-EGL.functional.wide_color.*fp16*
angle_end2end_tests --gtest_filter=EGLFloatSurfaceTest*
Change-Id: Ie65f63013483267985c2b308567bf5025acf750e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993686
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a7b91502
|
2020-01-15T13:35:08
|
|
Vulkan: Updated expectations after recent fixes
Bug: angleproject:3569
Bug: angleproject:3596
Bug: angleproject:4106
Bug: angleproject:4108
Bug: angleproject:4300
Change-Id: Iab88bf5db19af802ad41ef8bf68f643420857989
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2003233
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ffdd58f5
|
2019-12-28T15:34:41
|
|
Fixing OVR_multiview and OVR_multiview2 issues
Found two issues when native OVR_multiview and OVR_multiview2 extensions are generated.
1. OVR_multiview got replaced by the OVR_multiview2 in the translated shader (ESSL & GLSL)
2. Duplicate #extension OVR_multiview2 (for Fragment & Vertex) and 'layout (num_views=x)' (for Vertex) got generated into the translated shader.
Bug: angleproject:4247
Change-Id: I9a550883eeb326d95af4557578f8202a9493f4ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1983802
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2e1beb40
|
2020-01-14T12:08:02
|
|
Add a test to expose translator bug w.r.t short circuiting
Bug: angleproject:3829
Change-Id: I872118f145886eecaed1680268e95419385b9d9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2001237
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
feb3b6cc
|
2020-01-13T22:58:59
|
|
Vulkan: Remove row->col major shader transformation
This was done based on the incorrect assumption that Vulkan GLSL doesn't
allow layout qualifiers on interface block fields. This was due to
glslang compile failures in some shaders that included mixed row- and
column-major fields in interface blocks.
However, the failures were only in the case the interface block is
inactive, in which case glslang wrapper previously replaced the
layout/qualifier of the interface block with |struct|, which left the
shader with an unused struct definition with fields that have layout
qualifiers; an invalid shader.
The change introduced in
https://chromium-review.googlesource.com/c/angle/angle/+/1951523
removes inactive shader interface declarations. The above scenario thus
never occurs, rendering the row- to column-major transformation
unnecessary.
Bug: angleproject:3443
Change-Id: Ice34a0fc6e047b79a4d44f04b730ec59bdfafe33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1961098
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b09d46cc
|
2020-01-13T10:56:46
|
|
Add P010 stream test
Makes sure P010 stream can work correctly.
Bug: chromium:1033416
Change-Id: I1b49568cd667697337335a0eca74504bd0e36f5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1996912
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
740c4ea7
|
2020-01-13T17:21:54
|
|
Invoke the standalone test harness runner.
Previously we were still calling GoogleTest directly. This change
switches the test main funtions to call the standalone harness. Only
affects standalone and shouldn't affect the tests in Chromium or on
the current test setup.
Bug: angleproject:3162
Change-Id: Ia5a5a73d47c0b47b4df8f54cd6df71da2d878847
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998661
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
238adb7a
|
2020-01-13T17:21:53
|
|
Fix test harness running disabled tests.
Adds special handling for the DISABLED_ GTest test name. Fixes the test
for the test suite harness itself when run with the new "--bot-mode"
flag.
Bug: angleproject:3162
Change-Id: Idf34098d2d6bcb78263773be7b01c55df9ec624b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998660
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
680a7d3b
|
2019-12-09T16:07:43
|
|
Vulkan: Add test that exposes sampler refactor bug
Bug: angleproject:4211
Change-Id: I9e9cdacd4f24131101029d17932625e2e3c7d7e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1957836
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
683dd1d6
|
2020-01-13T17:21:52
|
|
GN: Move util build code into util/BUILD.gn.
Prepratory clean up for WinUWP support.
Bug: angleproject:4182
Change-Id: I97cc6cb42a50c6b57ca7d375d1e0a6b3da7aa9d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998673
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8b3a0fa8
|
2020-01-13T15:57:27
|
|
Vulkan: Update expectations SwS change fixes 2 tests
Changing SwiftShader to return:
VK_SAMPLE_COUNT_1_BIT | VK_SAMPLE_COUNT_4_BIT for
for VkPhysicalDeviceLimits::sampledImageIntegerSampleCounts fixes two
tests that were failing with SwS.
This also fixes the expectations file for another test.
Bug: angleproject:4260
Bug: angleproject:4259
Bug: angleproject:3565
Change-Id: I698468ff8421b1c8556c8671b173e1cfde6b7f6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1999484
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ed074852
|
2020-01-07T13:26:27
|
|
Add a perf test for drawing with alternating programs
The programs have a different shader interface, to force rebinding
descriptor sets in the Vulkan backend.
Bug: angleproject:4261
Change-Id: I7a18a441483dfe34bd40b5a30ca34b7fd0dc3219
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1990085
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0be7c81
|
2019-12-02T15:42:33
|
|
Fix GLSLTest_ES3.MixedRowAndColumnMajorMatrices_ReadSideEffect
The test had two array sizes swapped, causing failure on vendors that
statically verified index-out-of-bound accesses.
Bug: angleproject:3831
Change-Id: I8ec32e9c11b38b69f03b1a22e60dfb6c6e82c2a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1947123
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6b275406
|
2020-01-09T11:14:47
|
|
Vulkan: Workaround vertex attributes vs stride issue on AMD
Under robustBufferAccess, Vulkan states that:
Vertex input attributes are considered out of bounds if the offset of
the attribute in the bound vertex buffer range plus the size of the
attribute is greater than either:
- vertexBufferRangeSize, if bindingStride == 0; or
- (vertexBufferRangeSize - (vertexBufferRangeSize % bindingStride))
The latter implies that if the buffer size is not a multiple of the
vertex attribute stride, what lies beyond the last multiple of stride is
considered out of bounds.
It also says:
Out-of-bounds buffer loads will return any of the following values:
- Values from anywhere within the memory range(s) bound to the buffer
(possibly including bytes of memory past the end of the buffer, up to
the end of the bound range).
- Zero values, or (0,0,0,x) vectors for vector reads where x is a valid
value represented in the type of the vector components and may be any
of ...
The first bullet point indicates that the driver is allowed to load the
attribute values from the buffer if its range still lies within the
buffer size.
Take the following example:
- Buffer size = 12
- Attribute stride = 8
- Attribute offset = 0
- Attribute size = 4
Basically the buffer is thus laid out as follows:
attr stride
_________/\_________
/ \
+----------+----------+----------+
| vertex 0 | padding | vertex 1 |
+----------+----------+----------+
\___ ____/
V
attr size
In the above example, the attribute for vertex 1 is considered out of
bounds, but the driver is allowed to either read it correctly, or return
(0, 0, 0, 1) for it.
Most drivers implement the former, while AMD implements the latter.
This change introduces a workaround for AMD where
GL_MAX_VERTEX_ATTRIB_STRIDE is limited to 2048 (the common value for it
according to gpuinfo.org) and conservatively rounds up every buffer
allocation to that size.
While technically, this workaround should be applied on any device with
the robustBufferAccess feature enabled, it is currently limited to AMD
to avoid the inefficiency. A possible future revision of Vulkan may
relax the above restrictions.
Bug: angleproject:2848
Change-Id: Ida5ae5d777da10f22ce8be5a09a7644b5bbd778e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1991709
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8fde1151
|
2020-01-09T14:22:35
|
|
Vulkan: fix default uniform descriptor rebind on program change
When the program binding changes, we set the descriptor sets binding
dirty bit if the program had any textures, UBOs, SSBOs, images or atomic
counters. The check for default uniforms was missing. So if the two
programs had no resources and were only using default uniforms, then
drawing with one after the other didn't update the descriptor set
binding of the default uniforms for the second draw.
Bug: angleproject:4277
Change-Id: I631a1619658ee713484cfaee99fe1e39987e16e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1993408
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
4ffc254e
|
2020-01-08T09:58:24
|
|
Only initialize the timestamp query pools if the extension is available.
Also added a few assertions to ensure that timestamp queries aren't attempted
when support is missing.
Bug: angleproject:4114
Change-Id: Ie6d7d5face59f9bc137aebd86c9d0e965773e6e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1992184
Commit-Queue: Eric Binet <ericbinet@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7a37d3ac
|
2020-01-05T13:52:03
|
|
Work around Intel driver bug with CopyTex{Sub}Image2D/DeleteTextures.
Dependencies seem to be incorrectly tracked in some Intel OpenGL
drivers (on macOS specifically), causing crashes in glDeleteTextures
if a GL command buffer is being constructed where those textures are
destinations of CopyTexImage2D/CopyTexSubImage2D. Work around this bug
by flushing before texture deletion if CopyTex{Sub}Image have been
called recently. The tracking is only done on a per-context rather
than a per-device basis, but seems sufficient to work around the
problem as identified.
Tested both with new ANGLE test on affected hardware, and in WebKit's
ANGLE backend for WebGL. Works around the crash reported in
https://bugs.webkit.org/show_bug.cgi?id=205707 .
Bug: angleproject:4267
Change-Id: I2266a5590759f6a3f19080def08710ef4b66d463
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987932
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b84cdffe
|
2020-01-06T14:59:44
|
|
Fix colored indexed point tests not using color in vertex buffer.
In the previous version, the IndexedPointsTestUInt tests named
VertexWithColorUnsignedIntOffset* were redundant with UnsignedIntOffset*.
Bug: angleproject:3923
Change-Id: I6b9b8f2bd78882bcac7c3b89e798291ee94eea70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1988998
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c8d7f047
|
2020-01-07T10:06:07
|
|
Vulkan: Update number of samples when changing draw framebuffer
This fixes a crash (preceeded by Vulkan validation errors) when running
the following test:
--gtest_filter=dEQP.KHR_GLES31/core_texture_storage_multisample_FunctionalTests_blitting_multisampled_depth_attachment* --use-angle=vulkan
The problem is that GraphicsPipelineDesc::updateRasterizationSamples()
is rarely called (e.g. glBindFramebuffer). The above dEQP test changes
between draw attachments that do and don't have multisampling enabled.
The number of samples is set (the first time) to have multisampling
enabled, and never changed, even though other attachments don't have
multisampling.
FramebufferVk::syncState() now calls updateRasterizationSamples(). That
fix uncovered a latent problem: when an application destroys all
framebuffers (including the draw framebuffer), the ContextVk still
points at the old draw framebuffer's FramebufferVk (now freed). This
is fixed with new plubming to clean-up ContextVk::mDrawFramebuffer.
Bug: angleproject:4240
Change-Id: I151ec40ab821efc07c26323c34275c9165ad2ed5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1983393
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
cbbb3aaf
|
2020-01-07T15:03:20
|
|
Suppress VertexAttributeTest.DrawArraysWithBufferOffset on Mac NVIDIA
The test fails with the following at a very low flake rate:
../../third_party/angle/src/tests/gl_tests/VertexAttributeTest.cpp:230: Failure
Expected equality of these values:
angle::MakeGLColor(255, 255, 255, 255)
Which is: White
angle::ReadColor((midPixelX + viewportSize[2]) / 2, midPixelY)
Which is: Transparent Black
TBR=jmadill@chromium.org
Bug: angleproject:4269
Change-Id: I82752acfbcb2a067ccb35a7a456def03299c359f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1987258
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
806d812e
|
2020-01-03T13:48:30
|
|
Vulkan: Reorder descriptor sets
This change moves driver uniforms to a set with a lower id than the one
that includes (emulation) transform feedback buffers. Imagine the
following:
- Program 1 with xfb: UniformsSet: 1 VS uniforms buffer, 1 FS uniforms
buffer, 1 xfb buffer
- Program 2 without xfb: UniformsSet: 1 VS uniforms bufer, 1 FS uniforms
buffer.
Previously, UniformsSet was index 0, and DriverUniformsSet was index 3.
When switching from Program 1 to Program 2, the layout of UniformsSet
changes, which means every subsequent set needs to be rebound. This is
a Vulkan pipeline layout compatibility rule. This is done with
invalidateCurrentTextures() and invalidateCurrentShaderResources()
already when handling gl::State::DIRTY_BIT_PROGRAM_EXECUTABLE. The bug
is that the driver uniforms are not invalidated.
This is normally not an issue, because usually when switching from
Program 1 to Program 2, transform feedback is paused, and this state
change does invalidate driver uniforms. However, the following scenario
doesn't do this:
- Begin Xfb
- Pause Xfb
- Use Program 1
- Draw
- Use Program 2
- Draw
- End Xfb
There is no driver state change between the two draw calls, which means
the second draw will attempt to draw using the driver uniforms bound for
the first draw call. There is a Vulkan validation error here due to the
above pipeline layout validation rule.
The issue manifests itself only when the second draw call actually uses
driver uniforms, as otherwise that set is inactive and not validated;
i.e. when line raster emulation is used.
In summary, the validation error manifests itself when:
- Transform feedback and line raster both use emulation
- Transform feedback is paused
- A draw with an xfb program is followed by a non-xfb program
- The second draw is a line draw
A test is added for this.
The solution is to reorder the sets so that DriverUniformsSet is placed
before UniformsSet. This way, changes to the layout of UniformsSet
don't invalidate DriverUniformsSet.
In fact, based on the above, any change in the layout of the program
should have required an invalidation of the driver uniforms. This bug
is probably masked by the fact that
ContextVk::handleDirtyDescriptorSetsImpl() always rebinds the graphics
driver every time any descriptor set needs rebinding. That should be
removed in a follow up change.
Bug: angleproject:4261
Change-Id: I21ad4152b454a1fe70554be02e18a9c94fb3e7a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1986927
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
51e653f0
|
2020-01-02T13:53:03
|
|
Suppress flaky failure with MacOS/NVIDIA/OPENGL
Seeing intermittent failure on this test only on MacOS/NVIDIA/OPENGL.
Suppress for now.
Bug: angleproject:4258
Change-Id: Ibda30954019410e3b6d069986b2cd0ad26533c00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984850
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
8c0bbfbb
|
2019-11-25T14:48:11
|
|
EGL: Implement EGL_ANDROID_framebuffer_target
Add attribute to configs.
Add attribute matching logic.
Does not set attribute in Vulkan configs, need solution to
query Android for which formats are valid. anglebug.com/4208
New end2end test.
Bug: angleproject:3961
Test: angle_end2end_tests --gtest_filter=EGLAndroidFramebufferTargetTest*
Change-Id: I7e14c47b39e9539f6181c3c1d75c76fe63ca0f8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1960508
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
7dfc99e5
|
2019-12-18T16:37:20
|
|
Vulkan: Update dEQP source for test fixes
Also fix scripts/gen_vk_gl_cts_build.py to always use '/' as file
separator. Otherwise, running the script on Windows uses '\' which
Linux doesn't like.
Test:
angle_deqp_gles31_tests --use-angle=swiftshader --gtest_filter=dEQP.GLES31/functional_debug_negative_coverage_get_error_vertex_array_draw_range_elements
Bug: angleproject:2324
Bug: angleproject:4234
Change-Id: I3b212e0d0ba97996f1d86f7fc81e58c3b03a9cbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1975020
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ab42afa6
|
2019-11-21T10:13:44
|
|
Metal: fix vertex attribute's conversion lost after changing buffer binding.
After vertex buffer's attribute is converted and stored in conversion
buffer. Binding the same attribute to another buffer, then binding it
back to previous buffer will result in previous conversion
information lost. The conversion method would skip the conversion due to
buffer's content hadn't been changed, however it didn't reuse the old
conversion result.
This CL also changed the way binding offset is used in Metal backend.
- Previous, the offset would be assigned to the offset field of
MTLVertexAttributeDescriptor, then the buffer would simply be bound to
the command encoder with offset=0
i.e. setVertexBuffer(buffer, index, 0)
- However this approach has several disadvantages. Since Metal doesn't
allow MTLVertexAttributeDescriptor's offset to be larger than the
vertex attribute's stride, the old approach would force the back-end
to convert the attribute and store in conversion buffer.
New approach:
- MTLVertexAttributeDescriptor's offset will be zero. The offset will be
used to bind the buffer itself to the render command encoder.
i.e. setVertexBuffer(buffer, index, offset)
This way the "offset <= stride" restriction no longer exists. The only
restriction is the offset must be multiple of attribute's size.
Added 3 new tests:
- SimpleStateChangeTest.RebindTranslatedAttribute
- VertexAttributeTest.DrawWithLargeBufferOffset
- VertexAttributeTest.DrawWithLargeBufferOffsetAndLessComponents
Bug: angleproject:2634
Change-Id: I6c2fa8091436e4a24405d791f86d17d97df02d64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940009
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
81ee4d29
|
2019-12-04T17:05:11
|
|
Workaround EXT_texture_norm16 for OpenGL ES drivers
Implement a workaround for widespread bugs calling glReadPixels with
RGBA/UNSIGNED_SHORT against R16/RG16 color attachments. Read back the
data using the GL_IMPLEMENTATION_COLOR_READ_FORMAT, and then rearrange
the read back pixels to fit the RGBA layout.
Also skip RGB16/RGB16_SNORM texture sample test on Nexus 5X/Nexus 6P
due to a another driver bug.
Bug: chromium:1000354, angleproject:4214, angleproject:4215, angleproject:4245
Change-Id: Iedea6f4136878cac5ad0dec3757c77b73502e1cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952166
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
1fdf6ca5
|
2019-12-31T14:25:35
|
|
D3D11: Restrict to translate uniform block to StructuredBuffer
Only translate uniform block to StructuredBuffer when system is
Windows 10 and later.
Bug: angleproject:3682
Change-Id: I27e3f4503392791883a44e1d486ffe9512e04bd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1984863
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
942d9152
|
2019-12-23T15:31:52
|
|
EGL: Add support for EGL_KHR_gl_colorspace extension
If the Vulkan backend supports VK_EXT_swapchain_colorspace extension,
enable the option for applications to create surfaces with non-linear
formats. Not all formats have non-linear versions and is platform
specific.
Tests: dEQP-EGL.functional.wide_color.*
angle_deqp_egl_tests --use-angle=vulkan --deqp-gl-context-type=egl --deqp-case=dEQP-EGL.functional.wide_color.*
Bug: angleproject:2514
Change-Id: I441ee797cceef92c84473bfa18605c4fd8180de1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1951963
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a35aa03a
|
2019-12-20T16:15:53
|
|
Vulkan: EXT_gpu_shader5: textureGatherOffsets
The validation of the offsets parameter is added in this change.
Bug: angleproject:3569
Change-Id: Ide2ea4b9e88b28ca5ef34d5f3f5203f6e48d5f74
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1979133
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
beb33691
|
2019-12-20T16:15:20
|
|
Vulkan: EXT_gpu_shader5: Fix textureGatherOffsets builtin
This function is the only builtin with arrays as parameter. A new
constexpr constructor is added to TType to support this, and
gen_builtin_symbols is changed to emit the correct type for offsets
parameter of this function.
Bug: angleproject:3569
Change-Id: I55af58b43f24cd605c622ee685b359535e11ef85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1975431
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
86d9c93a
|
2019-12-16T16:07:04
|
|
Use TSpan for TType's array sizes
Until C++20, std::vector doesn't have a constexpr constructor, which
means TType cannot use a `TVector` for `mArraySizes` if an arrayed type
needs to be created constexpr. This is needed for the upcoming
textureGatherOffsets implementation.
A new TSpan class is introduced, based on std::span (from C++20) that
holds the pointer/size allocated from a TVector without owning it.
Since TVector's allocation are made from a pool, the allocated memory
will live beyond the vector's destruction. `TType::mArraySizes` is
changed to this type.
This change will allow a new constexpr constructor to be added to TType
that takes a TSpan as array directly, a value which is constexpr
initialized from a static array (instead of TVector).
Bug: angleproject:3569
Change-Id: I78793b0f4c64519e0ebe30cf6e0de995ba70035d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968260
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c713abfd
|
2019-12-23T12:03:02
|
|
Vulkan:Transform/feedback instanced draw support
These fixes allow dEQP 3.1 KHR-GLES31.core.vertex_attrib_binding.basic-input*
test cases to pass.
This fixes a bug in instanced drawing with transform feedback buffers
where we were overwriting the initial transform feedback output as new
instances were drawn. To fix this, the vertices in each draw are passed
into a uniform value and the output is offset based on the current instance
and the number of vertices in the draw.
It also fixes a validation error where transform feedback descriptor
was sometimes setting a buffer range of 0. This is not allowed, so in
the 0 case we pull the actual buffer size from the bufferHelper object.
Bug: angleproject:4236
Change-Id: Ib72898a0e6caab96c446c1e996a6124d2c001193
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1979600
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
67d8b63a
|
2019-12-23T11:35:52
|
|
Vulkan:Update Vulkan Vertex Attribute Offsets
This fixes most of the test for
dEQP 3.1 KHR-GLES31.core.vertex_attrib_binding.basic-input*
The bug fixes is that we were not correctly setting the vertex attribute
offset for vertex attribs that were converted into their own buffer.
We kept the attrib offset from the frontend as if the converted attribs
were in the original buffer, but converted vtx attrib buffers in the VK
backend are tightly packed from the start of the buffer so when converting
the actual offset should be 0.
Also, in order to avoid a VK validation error, this change includes a tmp
workaround to make sure transform feedback output buffer range is never 0,
but sets VK_WHOLE_SIZE in that case. A follow-on fix that focuses on
transform feedback fixes will address this validation error more fully.
Bug: angleproject:4145
Bug: angleproject:4236
Change-Id: I8c218954725945414a8f18beb4f964b90da7062a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1980906
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
87607526
|
2019-12-23T22:48:06
|
|
Disable flaky test on Metal
Bug: chromium:1037665
Bug: angleproject:4177
Change-Id: I38f05f1567803e7ac0c631d94056f26dc122a4f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1980278
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c41f2e56
|
2019-12-23T13:33:58
|
|
Disable UniformBufferTests on Windows 7 / D3D11 / NVIDIA.
Bug: chromium:1037644
Change-Id: Ic8bf76bb0c1b8bdcf36f6af5a8d91ac815334917
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1981070
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
07f0f019
|
2019-12-19T14:47:46
|
|
Translator: Memory qualifiers on SSBO fields
These were not output prior to this CL. Of these qualifiers, readonly
and writeonly are unnecessary as ANGLE already does the appropriate
validation, but the rest (coherent, volatile, restrict) are necessary,
even though the tests pass on the bots by coincidence of driver
behavior/test simplicity.
Bug: angleproject:3602
Change-Id: Ie75fee0f004944b50ef21124ba25c4315e082b85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1976499
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0af8b596
|
2019-09-03T16:24:45
|
|
D3D11: Translate uniform blocks to StructuredBuffer when necessary
fxc exhibits slow compile performance with dynamic cbuffer indexing.
So when a uniform block contains only one large array member, which is
an array of structures, translate this uniform block to
a StructuredBuffer instead.
Bug: angleproject:3682
TEST=angle_end2end_tests.UniformBufferTest.*
Change-Id: Ife80dba8aae65b761737e095895e00a570230f88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1782046
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
abc8f277
|
2019-12-19T10:47:31
|
|
Vulkan: Disallow multisampling with a sample count of 1
GLES uses a sample count of 0 to indicate non-multisampling, and a
sample count of 1 or greater to indicate multisampling. While the
Vulkan specification seems to support multisampling with a sample count
of 1, the following spec language effectively disallows it (even when
the underlying Vulkan driver supports it):
If the image was created with VkImageCreateInfo::samples equal to
VK_SAMPLE_COUNT_1_BIT, the instruction must have MS = 0.
The following GLES 3.1 dEQP tests use shaders that look for the sample
position, with a sample count of 1:
dEQP-GLES31.functional.texture.multisample.samples_1.*
For Vulkan drivers that fully support multisampling with a sample count
of 1, these tests pass, but get Vulkan validation errors because of the
above spec language.
This was discussed in the Khronos-private issue tracker (see:
https://gitlab.khronos.org/vulkan/vulkan/issues/1925). The Vulkan
working group wondered if ANGLE could live with not supporting a sample
count of 1 (but upgrading such requests to the next-largest supported
sample count, per the GLES specification). This change implements that
approach.
Bug: angleproject:4197
Bug: angleproject:4212
Change-Id: I009ba47b48efe5af464011c7c15022fc01f45e76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1974842
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
9d03c297
|
2019-12-20T11:53:32
|
|
Skip all Metal dEQP tests
First step in running dEQP tests on the Metal backend on the bots
Bug: angleproject:4235
Change-Id: Ib191205179d98bc907cc7d48340744ea719a0bc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1978577
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
816132a3
|
2019-12-17T15:47:09
|
|
Do not send attribute data for built-ins
Built-ins (e.g. gl_VertexID or gl_InstanceID) were settings dirty bits
in the driver's ActiveAttribLocationsMask which would later cause
the Vulkan back-end to issue bind commands on these built-in attributes
that don't have / need anything bound.
Test:
angle_deqp_khr_gles31_tests --use-angle=swiftshader --gtest_filter=dEQP.KHR_GLES31/core_shader_storage_buffer_object_advancedswitchBuffersvs
Bug: angleproject:4107
Change-Id: Id1f1c6699d512d0726b22d9bb0c16abad179950d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972200
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4b80fbc8
|
2019-12-18T23:40:15
|
|
Fix textureGatherOffsets classification
sampler2DRect was placed under ESSL while sampler2DArrayShadow was
placed under desktop GLSL. They are swapped.
Bug: angleproject:3569
Change-Id: Ibf39868d4cd702d9d1da7fc286171bb70b80d6df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1975430
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6423b7fc
|
2019-12-04T18:45:24
|
|
Return the correct location count for Matrices
GetLocationCount() is currently returning the number of rows in the
matrix, rather than the columns, which leads to shader validation
errors (and test failures). This fix returns the number of columns
in a matrix.
Bug: angleproject:4200
Test: dEQP-GLES31.functional.separate_shader.random.63
Change-Id: I8d25eb3733c2ddbe53ff54794f480c1d43e22a88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1952173
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
20432bf3
|
2019-12-18T08:51:34
|
|
Vulkan: Update GLES 3.1 expectations for now-passing tests.
Bug: angleproject:4099
Bug: angleproject:4100
Bug: angleproject:4102
Change-Id: I975485baea3ff6ec8247cbb5c92efdb907974ebc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1974271
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
cd129d17
|
2019-12-16T15:08:11
|
|
Reset binding offset & size when unbinding
Bug: angleproject:4147
Change-Id: I4ace1221d32631cdb14a95c71ee9a1617837a5ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1970495
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
17b3c2f3
|
2019-10-14T14:13:59
|
|
Implement SamplerVideoWEBGL for WEBGL_video_texture extension on desktop
WEBGL_video_texture is an extension that will improve uploading video frame to WebGL performance.
(https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/)
This extension introduced a new texture type TEXTURE_VIDEO_IMAGE_WEBGL and a new sampler type
samplerVideoWEBGL to sample it.
In chromium implementation, TEXTURE_VIDEO_IMAGE_WEBGL maps to different native texture type
based on platform. On desktop, it maps to GL_TEXTURE2D(Currently supported). On Android, it
should map to GL_TEXTURE_EXTERNAL(TODO). SamplerVideoWEBGL needs to be mapped to sampler2D or
samplerExternalOES according to TEXTURE_VIDEO_IMAGE_WEBGL implementation.
This patch implements samplerVideoWEBGL in Angle to support WEBGL_video_texture on desktop. In
this case, samplerVideoWEBGL should map to sampler2D.
Bug: chromium:776222, angleproject:3889
Change-Id: Idb0a5fcde37ca75ccc1181226b91f257212e7500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866274
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c3f833f3
|
2019-12-17T16:06:59
|
|
Vulkan: Update expectations for newly-passing tests
Bug: angleproject:4101
Bug: angleproject:4105
Change-Id: Ida462f69660a55e13b48ebea22ffc2a6b6bfe867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972202
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
17217c6e
|
2019-12-17T17:31:17
|
|
Vulkan: Fix layers being disabled in tests.
The ANGLE_ENABLE_VULKAN_VALIDATION_LAYERS_BY_DEFAULT define shouldn't
be being checked in tests. Enable the debug layers by default.
Bug: angleproject:4227
Bug: angleproject:4229
Change-Id: I9717cb1c611ebd585a5c03ba2057036e1b086001
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972497
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
d50151d3
|
2019-12-17T13:57:12
|
|
Move Serial utils to their own file.
This will let the front-end access them without pulling in the rest
of renderer_utils. The Serial class in particular will be useful for
capture/replay.
Also adds a very minimal unit test.
Bug: angleproject:4223
Change-Id: I9e63b8a8227a245b20a8f024b960fcf60c7840db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954611
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
44722daa
|
2019-12-06T22:31:08
|
|
Vulkan: Enable inactive SSBO with unsized array tests
The change introduced in
https://chromium-review.googlesource.com/c/angle/angle/+/1951523
removes inactive shader interface declarations. That automatically
resolves an issue where glslang wrapper doesn't handle inactive SSBO
declarations with unsized arrays, by removing those declarations at
translation time altogether.
Bug: angleproject:3714
Change-Id: I710d59546d716bfb5bc0112b5152fed20a810a52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1954615
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d674e1e5
|
2019-12-12T14:47:24
|
|
Vulkan: EXT_gpu_shader5: non-const offset in textureGatherOffset
This change includes preparatory work for textureGatherOffsets as well,
though that requires special handling which is addressed in a follow-up
change. This special handling is due to the fact that this family of
functions is the only built-in with an array parameter, and our built-in
table generation doesn't handle it correctly.
Bug: angleproject:3569
Change-Id: Ic1c8dd03878a184be00f578ab9fc42af8f6e47ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965435
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a5dd3888
|
2019-12-04T14:31:57
|
|
Vulkan: fix handling of inactive atomic counters
The translator emulates atomic counters with a storage buffer array
during translation to Vulkan GLSL. Glslang wrapper then should assign
set/binding to this buffer. However, if the atomic counters are
actually unused in the shader, this assignment is never done.
This change adds a small tree transformation for Vulkan that removes any
uniform or interface block declaration that's not active. In
particular, this makes atomic counter emulation a no-op if no atomic
counters are used. It also has the benefit of not requiring glslang
wrapper to remove such inactive resources.
Bug: angleproject:4190
Change-Id: I286c199854ec2379558ad1ec48b4d2c4bf5544d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1951523
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
5407aaa0
|
2019-12-16T15:50:12
|
|
Re-land "Add new test runner harness." (#2)
Re-land #2 changes:
* export labels are fixed for the CFI build
* crash test disabled because of flakiness and issues with asan
Re-land changes:
* Unit test is suppressed in ASAN
* --deqp-case is fixed
* Debug layer errors should correctly work with failure expectations
Original message:
The ANGLE test harness is a harness around GoogleTest that provides
functionality similar to the Chromium test harness. It supports:
* splitting a test set into shards
* catching and reporting crashes and timeouts
* outputting to the Chromium JSON test results format
* multi-process execution
Unit tests are added in test_utils_unittest.cpp.
Bug: angleproject:3162
Bug: chromium:1030192
Change-Id: I71d66a407ea0e53d73cbe75b5b4bfb9e73791534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965091
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
5cfab195
|
2019-10-28T09:12:53
|
|
Vulkan: Add test that logs supported texture formats
Add a whitebox test to log all supported GLES formats
for the active Vulkan ICD. The test object is
dependent on libANGLE's gl_enum_util.* files as
we need it to print out human readable values in
the PrintAllFormatSupport test.
Test: angle_white_box_tests --gtest_filter=*PrintAllSupportedFormats*
Bug: angleproject:4093
Change-Id: I99d74935b705b2984f6320ed80a0e977c8fcd4be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1930607
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9190f49c
|
2019-12-16T16:03:57
|
|
GN: Make new angle_test_utils target.
This source set target lets other targets import the test utils without
needing to export them. They get built into angle_util. They also get
compiled into the various tests and samples. The change also fixes
export issues.
Moves some of the GN logic into the util/ subfolder.
Bug: angleproject:3162
Bug: chromium:1030192
Change-Id: If99d201092ad8541c0de60b3bd893ac9b5875270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968259
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ce41a43c
|
2019-12-16T09:49:05
|
|
Vulkan: Fix failed assert when unbinding texture
We were hitting onImageStateChange with no texture active and hitting
the assert in that function for needing a texture.
There are times when we call onImageStateChange where there is no
texture bound, early exit in those cases.
Test:
angle_deqp_khr_gles31_tests --user-angle=swiftshader --gtest_filter=dEQP.KHR_GLES31/core_layout_binding_image2D_layout_binding_imageLoad_*
also:
--gtest_filter=dEQP.KHR_GLES31/core_layout_binding_atomic_uint_layout_binding_atomic_ComputeShader
--gtest_filter=dEQP.KHR_GLES31/core_layout_binding_buffer_layout_binding_atomicAdd_ComputeShader
--gtest_filter=dEQP.KHR_GLES31/core_layout_binding_block_layout_binding_block_ComputeShader
--gtest_filter=dEQP.KHR_GLES31/core_layout_binding_sampler2D_layout_binding_texture_ComputeShader
Bug: angleproject:4124
Change-Id: I027cf4ecb6a5d6aea874c306bf3e67b95a75af62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965027
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|