This updates the test harness to handle slow test based on the TIMEOUT
test expectation. It removes the "registerSlowTests" API in favor of
using the test expectation files.
Also updates some of the timeout handling for various angle tests,
including on SwiftShader for multithreading tests.
Increases the timeout for tests in a batch to attempt to fix the
problem of the first test being much slower.
Bug: angleproject:6261
Change-Id: I7427344da5a0c1ea26d8c2d6eb0e9be2557b56e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104007
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
This fixes a problem with capture/replay where using pixelBytes was
returning a 3 byte stride for this 4 byte format. Note this format
is a bit odd, because it forces the alpha to 1.0, but the format
is specified as using 4 byte upload width, with 2 bits unused.
Also adds compile and run-time checking to ensure our bits are always
multiples of 8. This flushed out an issue with 565 formats which were
using an extra 1 bit for alpha.
Test: TexureUploadFormatTest
Bug: angleproject:5133
Change-Id: Ia41e86a4980fc041bb1a19b548c32329fa486d03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104686
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
The last row of pixels is treated specially because we don't need
to round up to the unpack alignment. This fixes an ASAN error with
some 1x1 texture tests with small-sized formats.
Test: TextureUploadFormatTest
Bug: angleproject:5133
Change-Id: I4c56958b83406aff380bda56b90d3258020a1f99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104685
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Otherwise the output map will seperate the hash from the raw data
when multiple layers are written for the same mip-map level.
Bug: angleproject:5133
Change-Id: I7636b6dc66f7ec31958e6eb44591c0a9b9280b00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093814
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Attributes are written in MSL as
type nameOfAttrib __unassigned_attribute__
and then at link time a string substitution
replaces __unassigned_attribute__
The test had these attributes
metal::float4 floatInput __unassigned_attribute__;
metal::uint4 uintInput __unassigned_attribute__;
metal::int4 intInput __unassigned_attribute__;
and was searching for "intInput __unassigned_attribute__"
which matching "uintInput __unassigned_attribute__".
Adding a space in front of the search string fixes the issue.
This fixes this test:
WebGL2CompatibilityTest.VertexShaderAttributeTypeMismatch/ES3_Metal
Bug: angleproject:5505
Change-Id: Ide07e5120e88927b1fdeb3cc32b456a661092802
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3108339
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
Using new Python APIs for multiprocessing logging. Also updates
some logging to be simpler / more consistent. Also a few other
small fixes.
Bug: angleproject:5133
Change-Id: I4acbc9173a3891989f409cc499c8e6431e712c0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104006
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
A prior CL erroneously removed the -1 from the trigger frame count.
Restore this to ensure we capture the right number of frames.
Bug: angleproject:5133
Change-Id: Ic24404fbfeb8578badd6204db8316f081eafaa53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104693
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
- Uses more common toString methods instead of custom ones.
- Uses enum to string in more places intsead of numeric enums.
- Adds missing group scopes in several places.
- Skips serializing empty image levels.
Bug: angleproject:5133
Change-Id: I2c9523981aba4ec0afb5f0623cb34154db263e6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097805
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
All of the subtests of these previously-asserting tests are passing
with --bot-mode:
ProgramBinaryES3Test
UniformTest
WebGLGLSLTest
so start running them on ANGLE's CQ.
Bug: angleproject:5505
Change-Id: Ibdaa814cec846379e2c073117efa816fc871be33
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105442
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The workaround replaces glTexStorage3D with a series
of glCompressedTexImage3D calls.
Bug: chromium:1060012
Change-Id: I08e026e68dd697654cc4ab8feb190a35e56ea133
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103070
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
This CL fixes a number of issues: fixes the calls to texture
size query, fixes an uninitialized memory read, fixes some
incomplete texture cases, and fixes an out-of-bounds with the
color array. It also cleans up the test logic, and splits the
test into four sub-tests so it runs more smoothly in CI.
Noticed while working on the capture/replay harness with ASAN.
Bug: angleproject:5982
Change-Id: I15459381b92332db5adad2bd91c0b9eb0f8b5961
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104005
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Fixes a few very small bugs in MEC. The current program wasn't always
captured correctly. Also texture bindings were not always left in the
right state. Fixes this by tracking the currently bound GL state
between the "shared" and "aux" MEC capture functions. Also updates the
vertex array capture to detect when to use ES 2.0 semantics. ES 3.1
is left unimplemented as it was before.
Bug: angleproject:5133
Change-Id: I5f03b8ffbdccec2664fda4698581b166a36fabdd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097809
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Recent changes made it so it was impossible to trigger MEC *after*
the first frame and *before* the second frame. Instead it was only
possible to capture *before* the first frame or *after* the second
frame. Makes it possible for the retracing script to do identical
captures.
Also includes a number of refactorings to make it simpler to follow
the code, including renaming methods, and removing some extra
output files.
Bug: angleproject:5133
Change-Id: Ice6a189eb9f4d53e8ee1ba39beb537af2ef5fd9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097807
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
This is a reland of 81bee2e7f6
Changes for the reland:
Do not attempt to use Xcb if DISPLAY is not defined - for headless ozone.
Original change's description:
> Properly report xcb_connect failures in DisplayVkXcb
>
> Bug: chromium:1223431
> Change-Id: Iaefddbda3fef283eed365fe010ee003a3b3beca8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3083383
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: chromium:1223431
Change-Id: I19be7d10cbd3692e1de6458bc0e2db5996a755af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3099674
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
When running the replay in valgrind the use of an undefined
value in the JsonSerializer::endGroup shows that 'name' value
on the stack is handled in an unexpected fashion, i.e
the pop seems to invalidate the values that should have
already been moved.
Using the reference of the top() values and doing pop() only
after the new group entry has been created avoids this.
Bug: angleproject:6180
Change-Id: I8e5f8dd3d14928d4763faabe236379b40a4f6f4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093815
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
This is popping up with a new roll of the VVL. Instead of fixing it,
we can disable it for now.
Bug: angleproject:6293
Change-Id: I6cd12a24b26a4f536db16631e198317e8c4d9fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103505
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Removes a couple duplicated cached members in gl::State. Also a few
other small refactorings.
Bug: angleproject:5133
Change-Id: I0c6cd4c6544ef1690a4ce95d40dac70c688c7092
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097808
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Previously, several linking functions were reliant on the
HasAttachedShaders interface. The information stored there has been
moved to ProgramExecutable.
Linking information such as uniforms and uniform blocks from
attached shaders is now also stored in temporary pending variables
inside ProgramExecutable.
Bug: angleproject:5506
Test: ProgramPipelineTest31.VaryingLocationMismatch*
Test: GeometryShaderTest.RecompileSeparableVSWithVaryings*
Test: ProgramBinaryES31Test.SeparableProgramLinkedUniforms*
Change-Id: I93591431959c1c4c547ada92ec358369a3417723
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909760
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
The test shards right now are taking 20-30+ minutes. Sometimes they
time out on the test infra. Increase sharding because the overhead
from sharding is very small relative to the test time used by shards.
Bug: angleproject:6090
Change-Id: I45c7bf077da7242743559d68b45d45dbea18355e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100586
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The test was already marked flaky on Windows. Mark it TIMEOUT everywhere
since likely the root causes are the same.
KHR-GLES31.core.arrays_of_arrays.SizedDeclarationsPrimitive
Bug: angleproject:5755
Change-Id: Ief208a5a2cb533e5ba4b88ef65e82a2a14dcf0b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100585
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The prior method was emitting 5 histograms per test. The new script
method merges the 5 histogram samples together and recomputes the
running statistics.
Should improve reporting on the dashboard.
Bug: angleproject:6090
Change-Id: I58a5e020f3a3257a8545df2785bc3eaa811ee38e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3096550
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Prior to this change, the following sequence:
* eglMakeCurrent(..., draw=surface1, read=surface1, ...);
* glClear(...);
* eglMakeCurrent(..., draw=surface2, read=surface1, ...);
* glBlitFramebuffer(...);
* eglMakeCurrent(..., draw=surface1, read=surface1, ...);
* glReadPixels(...);
would end up with the `vkCmdClearColorImage()` on surface1
occuring after the `vkCmdBlitImage()`.
This CL updates flushColorAttachmentUpdates() to flush any staged
updates to both the read and draw attachments, since they can be
different if different read and draw surfaces are bound.
Adds a test which is a small repro of
android.opengl.cts.FramebufferTest#testBlitFramebuffer failure.
Bug: b/192327017
Test: EGLSurfaceTest.BlitBetweenSurfaces/*
Change-Id: Iabad26dfcd8633e9dcfcee2fb16ba352bc3931d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078980
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
The problem ist that there is a mix on how the captured shader
source is written out, in some cases one string is written, e.g.
with the test ZeroShaderLength, and in others case an array if
strings is written, a with MixedShaderLengths.
Be constistent about it and capture the shader source always as
one string and handle it like this, and override the count to be 1
to reflect this and set the length to {-1} to use the new
accumulated shader strings automatically.
Bug: angleproject:6268
Change-Id: Ide927db1a6e4facdbab4d35c023b9bce4b6c30d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087448
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
This fixes an issue with retracing where textures that are never
used or only used once may have different init states on re-tracing.
Bug: angleproject:5133
Change-Id: I29fdc477e3522582c8e2eece0b4b86384ecf6d9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081762
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
When gathering in a uniform block, the precision of default uniforms was
dropped.
Bug: angleproject:4889
Bug: angleproject:6132
Change-Id: Ie6a8e2e7cef7cd3808cee08d20f886fc4e762cd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076124
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Enforce that if a mipmap level > 0 is specified for a compressed
texture, that it implies that the size of the base level of the
texture is a multiple of the format's block size.
Makes the test changes in
https://github.com/KhronosGroup/WebGL/pull/3304 largely pass. There
are some needed follow-on fixes to that PR, and this CL changes a
sub-test result in the existing S3TC and S3TC-sRGB tests which will
need to be suppressed Chromium-side first.
Bug: angleproject:6245
Change-Id: I7723d7882091b78a353d8d273e80b819dd384021
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072568
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>