This CL gets capture/replay working on Android again.
* Updates where Android frame captures are written
* Uses debug system properties to prime Android environment variables
* Adds a configurable target Context to the capture_replay sample
* Updates capture/replay documentation for Android
Bug: angleproject:4036
Test: Captured TRex on Android, replayed on Linux
Change-Id: I94b4f6dc77468cd179b9d884b4dcd4afa56bd28c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1928056
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
The prior method was only checking for a PID's existance. We should
also check for zombie process states. This allows our child process
launcher to correctly determine when a process is done on Linux and
other Posix systems.
Also starts the test timer on Posix LaunchProcess implementations.
Also removes the need to end command line arg lists with nullptr.
Also removes some Fuchsia-specific preprocessor checks.
Also adds a regression test.
Bug: angleproject:3162
Change-Id: I5725a8a0e8c5151f2d3e06df0a36dd64c0e0ee69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1928873
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Adding validation logic for RGBA16 readpixels.
Change readPixels format from UNSIGNED_BYTE to UNSIGNED_SHORT in the
test.
FYI:
According to https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_norm16.txt
ReadPixels format and type used during CopyTex* are limited to RGBA
Bug: 1024387, 1000354, angleproject:1365, angleproject:4089
Change-Id: I70517f255fe335f60e55bdf15f7ebf82e3de0800
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914127
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
Seeing intermittent failure on this test only on Win7/NVIDIA/D3D11.
Suppress for now.
Bug: angleproject:4163
Change-Id: Idfa44516a194dcd5710622d11801ce089c1e829d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1931338
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
According to Table 20.45 and Chapter 17 in the ES 3.1 spec, MAX_COMPUTE_WORK_GROUP_COUNT
is get as a GLint by using GetIntegeri_v. However, it is an unsigned integer
in the Vulkan. It needs to set limitation on maxComputeWorkGroupCount[] during
translating.
1. Change the data type to GLint stored in Caps.
2. Ensure that the limitation is set during initialization.
3. Add workaround for angleproject:4120
Bug: angleproject:4066
Change-Id: I1659ba1d560e30b9599cace0feeab8a18890c3ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Compute shader inputs were not being tracked in the Shader or Program
states, causing program interface queries to fail. This change treats
compute shader inputs (all built-ins) as Attributes and pipes them
through from the Compiler to the Program to enable input queries. While
compute shader inputs are not technically attributes (or varyings),
the ANGLE code understands and handles attributes and a program
can never have both a vertex and compute shader, so there can't be any
conflicts.
The naming of these variable lists should probabaly be revisited at some
point to better handle these different use-cases.
Bug: angleproject:3596
Test: dEQP-GLES31.functional.program_interface_query.program_input.resource_list.compute.empty
Change-Id: Ie52cd59041868cfdb5d3d759bb4ec53c8d5b38d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919557
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
The function is turned into a template to avoid the reinterpret_cast at
call sites. Additionally, uses Vulkan's own VkBaseOutStructure instead
of a bespoke definition.
Bug: angleproject:4027
Change-Id: Ib236d44a12c0363e7e89b9bf2ed5ab8166252730
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924992
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
The //build/config/gcc:symbol_visibility_hidden config was removed in an
attempt to improve stack traces on Linux. However, this resulted in the
in-class-inline-functions in glslang to be weak symbols. The KHR dEQP
tests link against glslang as well as libGLESv2.so, resulting in
angle_deqp_khr_gles*_tests to link those weak symbols. Due to glslang's
usage of a global variable in InitializeDll.cpp, a bug is created where
ANGLE sometimes calls into its own copy of glslang and sometimes the KHR
dEQP's version, with the two copies of the global variable being
inconsistent.
Bug: angleproject:4123
Change-Id: I0cfe3236117b1219db4fea4495e1583334c04fbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926887
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Due to late verification, ContextMtl might call onFinishedDrawingToFrameBuffer()
on a deleted framebuffer object inside syncState()
Fix:
- Switch to call onStartedDrawingToFrameBuffer() on new FBO instead of
calling onFinishedDrawingToFrameBuffer() on old (and possibly deleted)
FBO.
- Also discard framebuffer only takes effect per render pass. The
discard flag will be reset when render pass starts.
Bug: angleproject:4144
Change-Id: I7c6c96862892f1c241ce4af3b61862fa4b710a94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924101
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Partial revert of f06076396a
Address test failures
Guard context reset in DisplayWGL::makeCurrent with !mUseDXGISwapChains
BUG=chromium:1004117
Change-Id: I9b6eb7bc83a6e4b1a21fa0703404e41c6090730d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1913314
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
These two test groups are now passing so removing from exceptions file:
dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples*
dEQP-GLES31.functional.state_query.integer.max_uniform_locations*
Bug: angleproject:3520
Change-Id: I47634a52d3306202f944dc9548ba44c3dda8fc91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924993
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
Logs information listed at:
https://opengles.gpuinfo.org/listcapabilities.php
in CSV format
The list from gpuinfo doesn't include capabilities
introduced by extensions
Test: angle_end2end_tests.exe --gtest_filter=*PrintGLESCapabilities*
Bug: angleproject:4093
Change-Id: I59c82879ee2e3486269aa0cb40e2ee6c6e646ec5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917443
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
dEQP was inadvertendly requiring the presence of these extensions to
even run the tests. There's a WIP fix to the dEQP tests and this CL
implements that fix as a temporary workaround until we can update dEQP.
Fixes several tests in KHR-GLES31.core.constant_expressions and
KHR-GLES31.core.shader_macros. They now correctly return unsupported.
Bug: angleproject:4143
Change-Id: I110beb2f18fd29f8f02b2ab166cfcfcfae80c2c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924620
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This removes the hard link dependency on ANGLE. Allows us to use ANGLE
dEQP tests with msan. Otherwise they were complaining about missing
shared libraries. Also would eventually let us test ANGLE dEQP tests
against a native driver.
Was done as a part of investigating SwapBuffers crashes on SwiftShader.
Bug: angleproject:4060
Change-Id: I569de15573c8eb7808bd7783f1a514655d1c6422
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1898207
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This workaround is ported from chrome's
dont_use_loops_to_initialize_variables workaround, which is enabled on
Qualcomm Adreno devices. Better to check for Qualcomm than !NVIDIA
Bug: 784817
Change-Id: I2f8314ca97aeca7fdcea60ef9d2fb9e64f075a32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924625
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
If the format of the image and the PBO match,
use a vkCmdCopyBufferToImage transfer operation.
Test: angle_end2end_tests --gtest_filter=*PBOCompressedSubImage*
angle_end2end_tests --gtest_filter=*PBOWithMultipleDraws*
dEQP-GLES3.functional.texture.specification.tex*image*d_pbo*
Bug: angleproject:3777
Change-Id: I3f271024a635be113202a16f8893a199c194172d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906203
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Chrome has a --disable-gpu-driver-bug-workarounds flag that needs to be
able to be forwarded to ANGLE
Bug: 1016377
Change-Id: Ied6c8656742e25c32d508b8bfe76a902d82bcf93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925249
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tests that depend on Program Pipeline that had generic bug IDs
have been collected under anglebug.com/3570 as the program pipeline
work tracker.
Bug: angleproject:3570
Change-Id: Ifefd445376f16c48d872eb5abf63bad7d6e4c99a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1925531
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This patch ports all the Intel-related shader workarounds defined in
gpu_driver_bug_list.json used by Chromium validating command buffer
into ANGLE so that they can also take effect in Chromium passthrough
command buffer.
Bug: 1020467
Bug: 642605
Bug: 403957
Change-Id: I8e4866fc34d5e8f1b2f4dbfa8e526b80249ba166
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1889386
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
These tests were incorrectly turned on for Vulkan during the recent
test macro refactor.
Bug: angleproject:4125
Change-Id: I36940209e4223182e4810c30b0d0098d4abf0222
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922591
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
GLES 3.1 requires that the maximum framebuffer width & height be
at least as large as the maximum texture size. Vulkan doesn't have
that requirement and for SwiftShader the values are different
(4096 for FB, 8192 for texture). Use the smaller of the two to
keep things consistent.
Test:
angle_deqp_gles31_tests --use-angle=swiftshader --gtest_filter=dEQP-GLES31.functional.state_query.integer.max_framebuffer_*
Bug: angleproject:4102
Change-Id: Ie04a5272084c5f6a19ac06d952281b7df9fe9a06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917130
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
1) Added new Multisampled Image Index. For the upcoming
multisampled array case, we cannot automatically create the same
MS image index during resolve. So the correct MS image index is created and
saved during the initial creation of the MS Texture. It seems to be more
streamlined as well, only creating the MS image index once, and not using
hardcoded values to get the subresourceIndex.
2) reordering resolveTextureHelper to remove duplicated code.
Bug: angleproject:3107
Change-Id: Ifd91136a64efb5e7bd296e09cd876a6e6eb8e77e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1919555
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tests were previously disabled on Nvidia, but this was erroneously
narrowed to Linux.
Bug: angleproject:4128
Change-Id: I9b96e84341c7c3352eaefbba73fdc5b2c67a921e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924791
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Added HelperInvocation to builtin_variables.json, regenerate the codegen
portions of compiler, and plumb support for HelperInvocation through the
rest of the compiler.
Skipping some fails on Android and Swiftshader for this initial change and
will debug/fix those issues in a follow-on.
Bug: angleproject:4110
Change-Id: I781a2782ace84200bc615a2cc26b908a62e2aa26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922061
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
The refactor to angle_end2end_tests added tests to OpenGL ES and
some of these tests are failing on Intel/Linux. Skip those tests
for now.
Bug: angleproject:4121
Change-Id: I7a56099faac558a4e18d98eb5f0b25522d656e61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1924061
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>