|
fa74421d
|
2021-08-06T18:30:57
|
|
Capture/Replay: Add LoadEGL()
Add LoadEGL() to gen_restricted_traces.py. This is a pre-requisite to
frame capture being able to generate EGL calls, which is required for
multi-context support.
Bug: angleproject:5878
Change-Id: I210035aecad42173626834588bae51019deaa076
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078994
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
62cac8b5
|
2021-08-06T18:24:52
|
|
Capture/Replay: Add EGL support to generate_entry_points.py
Add EGL support to generate_entry_points.py. This is a pre-requisite to
frame capture being able to generate EGL calls, which is required for
multi-context support.
Bug: angleproject:5878
Bug: angleproject:4035
Change-Id: I3b8e9c91f9e2820b5207fc02d858e8109921f581
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078993
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff64d2c7
|
2021-08-06T21:24:09
|
|
Choose direct-to-Metal translator through a feature.
Define directMetalGeneration in FeaturesMtl.h. If
ANGLE_ENABLE_METAL_SPIRV is defined to 1 (still the default),
directMetalGeneration defaults to false. It can be overridden via the
standard ANGLE mechanism:
ANGLE_FEATURE_OVERRIDES_ENABLED=directMetalGeneration
It can also be overridden by instantiating angle_end2end_tests with
the directives:
WithDirectMetalGeneration(ES2_METAL())
WithDirectMetalGeneration(ES3_METAL())
These directives aren't working properly yet though. The
direct-to-Metal compiler is instantiated, but the _DirectMetalGen
versions of the tests fail. They pass when switching the Metal
backend's default behavior using the above environment variable. This
will be debugged in follow-on CLs.
Thanks to syoussefi@ for the prototype of this CL:
https://chromium-review.googlesource.com/3076129
Bug: angleproject:5505
Change-Id: I188ab89abc75bf89c5ed2d90102af311feaa1960
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3079083
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
331be08f
|
2021-08-11T11:28:29
|
|
Tests: Add Sonic The Hedgehog trace.
Test: angle_perftests --gtest_filter="*sonic_the_hedgehog*"
Bug: angleproject:6181
Change-Id: I40a5affe804a747445ef620c4f78e842c1eed1ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087444
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d3031c65
|
2021-08-11T12:30:01
|
|
Capture/Replay: Update expectations with bug IDs
In addition, update two tests that are just failing and no longer
crashing.
Bug: angleproject:6166
Change-Id: I9f19bf411c79c39f4f1f3156a9f8682609d6b3d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087445
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
392ba63f
|
2021-08-10T19:20:47
|
|
Suppress 2 dEQP GLES3 tests on Win SwANGLE
functional.shaders.operator.unary_operator.minus.lowp_uvec3_vertex
functional.shaders.operator.unary_operator.minus.mediump_uvec3_vertex
Fails on x86 when llvmorg-13-init-15561-gf98ed74f Clang rolled.
Unfortunately, expectation file doesn't support architecture,
so suppressing on both x86 and x64 Windows, keeping the test running on
x64 Linux.
Bug: angleproject:6265
Change-Id: I15f8955eaf38c95d0d3036378d97afdb1871d44e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3088016
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
6136620b
|
2021-03-25T15:43:06
|
|
Reland "EGL: GLES: Implement GL_EXT_protected_textures"
This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa
This removes changes in gl backend.
Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0bd5cac2
|
2021-08-06T17:56:58
|
|
Allow BufferSubData with persistently mapped buffers
Per the GL_EXT_buffer_storage extension:
What commands are affected by the relaxed errors for persistently
mapped buffers?
RESOLVED: In GL 4.5 the following commands have the relaxed
language BufferSubData, ClearBufferSubData, CopyBufferSubData,
GetBufferSubData and InvalidateBufferSubData. Of these commands
the only ones that apply to ES 3.1 are BufferSubData and
CopyBufferSubData. However, if additional extensions add any of
the other commands and EXT_buffer_storage is supported, they
would have the same behavior in ES.
Therefore we need to allow BufferSubData and CopyBufferSubData on
persistently mapped buffers.
Current we fail these scenarios in validation. This was detected when
running Fortnite on Android using the game's GLES backend.
Also added two tests:
- StorageCopyBufferSubDataMapped to recreate the exact Fortnite
scenario using glCopyBufferSubData.
- StorageBufferSubDataMapped is a contrived case to cover
glBufferSubData
Test: BufferStorageTestES3.StorageCopyBufferSubDataMapped/*
Test: BufferStorageTestES3.StorageBufferSubDataMapped/*
Bug: b/180418810
Bug: angleproject:5658
Change-Id: Ib678e84f367934656ec10f0f4ad0d35ac687f0b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078316
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8f214193
|
2021-08-10T20:40:36
|
|
Revert "Properly report xcb_connect failures in DisplayVkXcb"
This reverts commit 81bee2e7f6deeda15691dd0b7fca90626b66bfb8.
Reason for revert: fails on
https://ci.chromium.org/ui/p/chromium/builders/try/linux-ozone-rel/918054/overview
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: I1da24861375a29f448e61771a609396e777c2e29
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087555
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0b651e42
|
2021-07-20T11:48:38
|
|
Vulkan/D3D11/Metal: Expose GL_NV_framebuffer_blit
GL_NV_framebuffer_blit is equivalent to ES3 blit which these backends
support.
Bug: chromium:1220246
Change-Id: I6ef0b80f9e9ba7828d6720cdbe19c83c4abdc4cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041878
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
81bee2e7
|
2021-08-04T19:31:54
|
|
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>
|
|
97c21277
|
2021-08-03T15:06:37
|
|
FrameCapture: Don't capture default drawbuffers state.
When capturing framebuffers during mid-execution-capture the
drawbuffers state is now compared with the default one and skipped
when equal.
This prevents capturing the unavailable glDrawBuffers call when using
OES_framebuffer_object on GLES 1 contexts.
Bug: angleproject:6181
Change-Id: Id2076223067dc5f89df88fe6a3a48b09fa9a3f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068957
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
856228b0
|
2021-08-05T23:10:25
|
|
D3D9: Expose EXT_sRGB and EXT_texture_compression_s3tc_srgb
sRGB reads are supported on D3D9 via SetSamplerState.
sRGB writes are supported on D3D9 via SetRenderState.
Bug: angleproject:6258
Change-Id: I841c25ce66486e93ae2122b370e910f383fed774
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076359
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
595ce2b8
|
2021-08-03T15:06:14
|
|
FrameCapture: Use OES suffixes for framebuffer functions on ES1.
Functions using the GL_OES_framebuffer_object extension on GLES 1.1
require the OES suffix or will otherwise crash on certain native OpenGL
drivers.
The framebuffer capture functions are stored in a struct.
This patch makes replay of Sonic The Hedgehog possible on Pixel 4 XL
native GL.
Bug: angleproject:6181
Change-Id: I689267b024824818bfcf28e652b835e075208415
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068956
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
d25c9d7f
|
2021-07-07T12:15:12
|
|
Add perf tests runner script.
This script will be responsible for running the perf tests
multiple times to try and stabilize measurements. We'll use it on
the bots instead of just running the perf tests directly.
Because the script invokes the binary multiple times, this slows
down execution. Most significantly on Android, where we now need
to use 20 shards, up from 6.
Also marks one test as flaky on OpenGL.
Bug: angleproject:6090
Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
b1b760e7
|
2021-08-09T13:37:10
|
|
Ignore VUID-vkCmdClearAttachments-baseArrayLayer-00018
New message added in
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3133
Blocks vulkan-deps rolls.
Bug: angleproject:6262
Change-Id: Iaaafe7539092cbe7eadd01e47b67071d60779929
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081376
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
23a50a7c
|
2021-08-06T18:15:30
|
|
Serialization: Fix groups & ensure compile resolution.
This change has two fixes:
1) Some texture groups had multiple duplicate keys. Namely image
descs and image contents.
2) Programs and Shaders would serialize non-deterministically
because we would not ensure the compile/link was resolved. Fix
this by explicitly ensuring the shaders/programs are done.
Bug: angleproject:5133
Change-Id: I2f7f7768c76f90275f81e032ac08e3f2bc828ea2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076134
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
06b19ed8
|
2021-08-06T17:02:36
|
|
Framecapture: Update file naming
Update the file naming to add "shared" and remove the unnecessary frame
numbering:
angle.angledata.gz
angle_capture_context1.cpp
angle_capture_context1.h
angle_capture_context1_files.txt
angle_capture_context1_frame001.cpp
angle_capture_shared.cpp
angle_capture_shared.h
Bug: angleproject:6256
Change-Id: I6454a3dc412896557f29faee1269dfa55146d43b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078908
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
4686da27
|
2021-08-06T18:13:14
|
|
Add GetImage test with RGB.
This test covers a case in T-Rex with an unused RGB texture that
was tripping up serialization. It isn't currently possible to make
the test fail but it does cover some new code paths.
Bug: angleproject:5133
Change-Id: I87c066779f270752bed3c1c1882951c71f16d378
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076133
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
6c415487
|
2021-07-26T13:08:46
|
|
Capture/Replay: Add option to override test disabling
In order to be able to easily run disabled tests, add a flag
--force-run-capture
that makes it possible to ignore the SKIP_FOR_CAPTURE designation.
Bug: angleproject:6166
Change-Id: I195248045d5c928d965f16b5ae17681d78686374
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053363
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
af35fd22
|
2021-07-12T14:58:01
|
|
Capture/Replay: rework test runner to use expectations
This CL changes the test runner to use a expectation
file for all the tests including failing tests.
The expectation file is also used to disable running certain
tests. e.g. because they are known to crash or result in
compilation failures, which then take down all the test
in the corresponding batch.
The capture_replay_tests.py script will report failure if the
test result doesn't meet the expectation. In order to keep
the current behaviour to run subsets of tests in tact, the
test filter is also applied to the expectation.
In addition to the "normal" expectations, FLAKY was added to
tag tests that can be captured and compiled correctly but have
unstable results.
This CL also adds the expectation for ES2_Vulkan_SwiftShader
and ES2_Vulkan
Bug: angleproject:6166
Change-Id: Ica05303e6ae3b7c6d2b6749c2c9c6593b659cc1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024209
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>
|
|
1654537d
|
2021-08-06T17:49:52
|
|
Fix default and driver uniforms' binding indices.
These abstractions were introduced in the SymbolTable during
upstreaming of the direct-to-Metal compiler and were accidentally
swapped, leading to widespread test failures.
Fix the comment reference in ContextMtl's DriverUniforms struct. Add
missing emulatedInstance field, and add a TODO about its missing
support in direct-to-Metal translator. Define it in SPIR-V Metal
translator; the driver uniforms for the two must match.
Bug: angleproject:6259
Change-Id: I0330ab4efca5b64a749b9cca90564fdbc84d7a80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078998
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e70a1444
|
2021-08-05T12:49:21
|
|
Vulkan: Fix draw FBO1 followed by resolve FBO2
When syncing the framebuffer for blit/resolve, the render pass was not
closed. This would be done later when necessary, except that
onFramebufferChange called from FramebufferVk::syncState attempted to
adjust the render area of the render pass (as it considered it open). If
FBO2 is larger than FBO1, this would cause the render area of the
previous render pass to become larger than the framebuffer size.
This change makes sure that onFramebufferChange considers the render
pass closed no matter what.
Test is based on patch from steven@valvesoftware.com
Bug: angleproject:6244
Change-Id: Iaec04232cfd2af04ba2564fd2de1dd5f08a40df6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076620
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c664601d
|
2021-04-26T17:08:06
|
|
Allow drawing if a fragment shader isn't present
According to the OpenGL ES 3.1 spec:
7.3 PROGRAM OBJECTS
If there is no active program for the vertex or fragment shader
stages, the results of vertex and fragment shader execution will
respectively be undefined.
If there isn't an active program for only one of these shader
stages, the results of the other shader stage are still defined.
To handle this, we no longer no-op the draw call if one of these
is missing. We only no-op the draw if there's no vs.
This allows for transform feedback to be captured when there's only
a geometry and vertex shader.
Tests: KHR-GLES32.core.geometry_shader.api.program_pipeline_vs_gs_capture
Tests: KHR-GLES32.core.separable_programs_tf.geometry_active
Tests: ProgramPipelineTest31.PipelineWithoutVertexShader*
Tests: ProgramPipelineTest31.PipelineWithoutShaders*
Bug: angleproject:5579
Change-Id: If9849cc398c307232435b167ab12431fa4258201
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906723
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cf090996
|
2021-08-05T16:20:39
|
|
Vulkan: Call onFramebufferChange from a single place
When sRGB control mode was dirty, onFramebufferChange was called which
may not have been necessary if the actualy state hadn't changed. This
removes a call to onFramebufferChange() in this path, and leaves it to
be naturally called if the framebuffer desc actually changes.
Bug: angleproject:5075
Change-Id: I177572a3cb819d7e1ecd589f46e03da4b967529e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076619
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d191bc32
|
2021-08-06T12:59:39
|
|
Reintroduce TType::isRank0.
This concept was used in the direct-to-Metal compiler, and its
replacement with isScalar wasn't completely correct. Fixes several
assertion failures in tests.
Bug: angleproject:4889
Bug: angleproject:5505
Change-Id: I9b8800ed50591560c8e53faa81eca581c4f07a02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078474
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
934ffac6
|
2021-08-05T15:43:32
|
|
Vulkan: Propagate BufferData changes to shader storage buffer binding
This CL adds context to the observer list of shader storage buffer. When
BufferData is called on the current bound shader storage buffer, context
gets notified and DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING gets set.
Bug: b/195678877
Change-Id: Id8a5266942e33f0a834d7c57fdde75f57e93d347
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076177
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
63248e7f
|
2021-08-05T23:49:23
|
|
Translator: Fix dead-code-elimination corner case
The DCE code had a corner case bug where a switch case containing
multiple DCE'ed `break`s followed by another case would cause some of
the DCE'ed statements in the first case to be doubly pruned, failing on
an assertion.
This was due to the fact that visitBlock() was asking traversal to
continue if a new case was visited while pruning nodes, but the
traversal does not take into account that some statements need to be
skipped and so would also visit the pruned statements. If the pruned
statements contain a branch instruction, they get re-pruned.
The visitBlock() function that does the pruning is reworked so that it
more clearly traverses the statements.
Bug: chromium:1237200
Change-Id: Ib078c2ea73ade756c7d7ef5a5c489fa53c39f352
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3077659
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
07c21bcc
|
2021-08-06T01:54:58
|
|
Add run-time switch for direct-to-Metal compiler.
Setting the environment variable:
ANGLE_USE_MSL_COMPILER=1
will switch from the SPIR-V Metal to the direct-to-Metal compiler.
This makes it easier to diagnose regressions as the direct-to-Metal
compiler is upstreamed.
Bug: angleproject:5505
Change-Id: I78593e8ddc4e483bb0795960c432bcfa17e0a5b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076332
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
0cd99779
|
2021-08-05T10:35:10
|
|
Translator: Propagate precision to children nodes
Similarly to glslang, when the precision of a node is determined,
propagate that precision to any of its children that doesn't already
have a precision. Ultimately these should only include
TIntermConstantUnion nodes.
Bug: angleproject:4889
Bug: angleproject:6132
Change-Id: I121231d04c7cf92fc3f07716019ffe88eca48b88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075126
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8387f10f
|
2021-08-06T21:46:02
|
|
D3D9: Mark destination images dirty after CPU-copy path
Fixes WebGL CTS failures for L and LA formats in:
conformance/textures/image_bitmap_from_canvas
conformance/textures/webgl_canvas
Bug: angleproject:2192
Change-Id: If3a9bd81298c76320ed029617fd4965efe4e8ef0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076720
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
16a61bbb
|
2021-08-05T23:06:22
|
|
D3D: Fix not notifying RenderTarget release in TextureD3D
This could lead to use-after-free for the RenderTarget object.
Bug: chromium:1234829
Change-Id: I73d4547b8f09f2f2cf3f7f8394f7f573fe5a4ef5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063858
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5fa9a44
|
2021-08-05T15:27:47
|
|
Vulkan: Add test for BufferData change is propagated to SSBO properly
When BufferData is called while previous reference is still pending,
ANGLE may allocate a new storage. When this happened, we need to ensure
context gets notified so that it can pick up new buffer storage.
Bug: b/195678877
Change-Id: Idb591ed49e7d2c9e2dc5803f65d00894687ae1d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076820
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e28fb127
|
2021-08-05T14:32:16
|
|
Vulkan: Propagate BufferData changes to atomic counter binding
This CL adds context to the observer list of atomic counter buffer
so that it gets notified when BufferData is called on atomic counter
buffer and set dirty bit accordingly.
Bug: b/195678877
Change-Id: I924cf12ef54b5986d5c56b9e3b71584039490206
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076170
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
52aae056
|
2021-08-05T14:22:26
|
|
Vulkan: Test for buffer storage propagate to AtomicCounter properly
When BufferData call result in storage change, it should propagate the
change to atomic counter buffer binding properly. This CL adds a test to
call BufferData on the same buffer while the previous usage of buffer is
still pending (thus may trigger reallocation of buffer storage) and see
if shader reads correct atomic counter buffer data.
Bug: b/195678877
Change-Id: Iac94c3bd0a73573da0bfc814d33b5cd43475772d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076819
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4a841e6a
|
2021-07-27T13:30:26
|
|
PerfTests: Replay EGL color spaces.
Add EGL_GL_COLORSPACE_KHR to the EGLWindow's surface attributes if
EGL_KHR_gl_colorspace is available.
Require the extension to be available if the color space differs from
the default EGL_COLORSPACE_LINEAR value.
Bug: angleproject:5857
Change-Id: Ib33cbed7d4b115979bd847418cb5cd2b96f4f173
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056374
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
89dbbb2a
|
2021-08-05T13:14:12
|
|
Skip validation of stderr in TestSuiteTest.RunFlakyTests
There is a bug (crbug.com/1234124) causing the profile runtime to print
errors about failing to write the profraw file. Don't validate stderr in
these builds until that is fixed.
Bug: chromium:1234124
Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9b646c13
|
2021-08-04T17:24:18
|
|
Tests: Add Final Fantasy trace
Test: angle_perftests --gtest_filter="*final_fantasy*"
Bug: b/195607411
Bug: angleproject:6246
Change-Id: Ie0f02d082d408a6eb18555741ab01cccc446d01f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073380
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
ab19e742
|
2021-08-04T18:41:51
|
|
Match DebugAnnotator::{begin|end}Event() calls
The tests for whether ScopedPerfEventHelper::~ScopedPerfEventHelper()
should call DebugAnnotator::endEvent() were not valid:
- The test in ScopedPerfEventHelper::begin() simply checks whether a
DebugAnnotator has been initialized.
- In addition, ScopedPerfEventHelper::~ScopedPerfEventHelper() also
checks whether DebugAnnotator::getStatus() returns true, which will
always be false when the generic LoggingAnnotator is pluged in.
- The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() must
take into account whether EGL_Initialize() or EGL_Terminate()
changed g_debugAnnotator, and whether ScopedPerfEventHelper::begin()
called DebugAnnotator::beginEvent(), and so a matching endEvent()
should be called.
The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() is now
simplified.
Bug: angleproject:6158
Change-Id: I7fbd19cd0a372ef3ce3600c5d3fc50234b53ca38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072564
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e8a2d3c
|
2021-08-04T11:04:44
|
|
Translator: Helpers to derive precision
Bug: angleproject:4889
Bug: angleproject:6132
Change-Id: I75e2084c76139ccb24b266f262d5e5597d8aa4ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071599
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
3fd572c4
|
2021-08-04T12:45:09
|
|
FrameCapture: Fix setCaptureActive() and MEC timing
Frame capture is currently off by one when calling setCaptureActive()
and collecting the mid-execution capture state. The MEC state is
collected at frame N, but setCaptureActive() isn't called until frame
N+1, meaning all of the maybeCapturePreCallUpdates() and
maybeCapturePostCallUpdates() calls are not tracking resources correctly
for frame N.
This CL fixes when setCaptureActive() is called relative to when
setupSharedAndAuxReplay() is called, so the trace is active for the
first frame and all of the resources are correctly tracked.
Additionally, setCaptureActive() during the FrameCaptureShared() ctor if
frame capture starts with the first frame.
Bug: angleproject:6225
Change-Id: Id07e78b2da9c9d33779e20ab6a42f63cd103a6a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071940
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
061188a7
|
2021-08-04T10:07:47
|
|
Translator: General clean up
General clean up done as part of other changes, split to simplify
review.
Bug: angleproject:4889
Bug: angleproject:6132
Change-Id: Iade9954d187a759be9edd0e3754be007f4133c56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9c287f0
|
2021-08-04T17:24:02
|
|
Capture/Replay: Fix reset for immutable textures
Before this CL, we were including TexStorage in the calls to reset an
immutable texture. This throws an error in GL, as you can only call
TexStorage once on a texture.
Example from ResetReplay():
glBindTexture(GL_TEXTURE_2D, gTextureMap[52]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9729);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, 6403);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512); // <== ERROR
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 512,
GL_RED, GL_UNSIGNED_BYTE, ...);
To fix this, move TexStorage into the calls used to regen the
texture rather than restore its contents. This means ResetReplay will
only call TexStorage again if the texture was actually deleted.
Example new regen sequence, if the texture had been deleted:
const GLuint deleteTexturesPacked[] = { gTextureMap[52] };
glDeleteTextures(1, deleteTexturesPacked);
glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateTextureID(52, 0);
glBindTexture(GL_TEXTURE_2D, gTextureMap[52]);
glTexStorage2D(GL_TEXTURE_2D, 1, GL_R8, 256, 512);
Also rename texCalls to texSetupCalls to more easily distinguish
from texGenCalls, now that they intermingle.
Test: Final Fantasy MEC
Bug: b/195607411
Bug: angleproject:6246
Change-Id: I37daaeb6ea4337969cb241a20256fec07dce514e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
6fe91881
|
2021-08-02T11:13:13
|
|
Translator: Simplify RecordConstantPrecision
Just before ESSL output, this transformation made some constants
specified through temp variables such that their precision can be
specified. This was done in cases where the precision actually affected
the expression being evaluated.
This transformation is simplified by declaring constants more
conservatively as variables, and not stringently attempting to identify
whether that's necessary. This is still not done in trivial cases.
This change is in preparation for another change that overhauls
precision propagation through the nodes. This change removes all
references to TIntermTyped::getPrecision() outside the precision
promotion code itself.
Bug: angleproject:4889
Change-Id: I135b2b3241aa2f76219b209241c3844f1d09ccd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067948
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
798c5200
|
2021-07-31T22:17:48
|
|
Translator: Make precise-ness a property of AST nodes
Instead of creating a "set of precise nodes", the nodes themselves are
marked precise. This change is preparation for another change that
overhauls precision propagation through the nodes, and which would also
be storing the promoted precision in the nodes.
Bug: angleproject:4889
Change-Id: Ieec8864be5cd2e95ed6fb4d90b367946d9f33fa1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065569
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9da4e52b
|
2021-08-04T09:13:33
|
|
Tests: Add PUBG Mobile battle royale trace
Test: angle_perftests --gtest_filter="*pubg_mobile_battle_royale"
Bug: b/180418573
Bug: angleproject:6087
Bug: angleproject:6240
Change-Id: I722f249a7aafdd52be96f214d56b7cfa650ae778
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071662
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1ce78397
|
2021-07-30T16:51:45
|
|
Remove support for WEBGL_debug_shader_precision
This extension was rejected, and the implementation was hacky. This
clean up is part of an ongoing work to improve precision handling.
Bug: angleproject:6059
Change-Id: If08581ec6f19cf1698ffa3dd6d248dc5e68a1d31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064303
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7c072f7e
|
2021-08-04T09:02:30
|
|
Tests: Add PUBG Mobile skydive trace
Test: angle_perftests --gtest_filter="*pubg_mobile_skydive"
Tbr: jmadill@google.com, timvp@google.com
Bug: b/180418573
Bug: angleproject:6087
Bug: angleproject:6240
Change-Id: Ibcc7a5e84676d7e7e0df3fdad7aada0e23482bf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071661
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
091fb9b9
|
2021-07-23T10:44:35
|
|
Reland "Reland "GL: Fix GPU detection""
This is a reland of a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1
It was assumed that getting the GPU info from the system will always
yield a valid Device ID, but this seems to be incorrect on some
platforms (e.g. Apple M1). Reland reverts to the old logic of silently
accepting 0 as Device ID.
Original change's description:
> Reland "GL: Fix GPU detection"
>
> This is a reland of 30dea869a7dc939f94048de23d70705247905c51
>
> Original change's description:
> > GL: Fix GPU detection
> >
> > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this
> > ensures that the correct GPU is used to determine workarounds.
> > GetSystemInfo is still broken in that it assumes the discrete GPU to be
> > active, but with this change it will only affect the test infrastructure
> > (and not users).
> >
> > Bug: chromium:1187475
> > Bug: angleproject:6174
> > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: chromium:1187475
> Bug: angleproject:6174
> Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: Ie13854da314d8963c33f61f1fd1628a674fae434
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067768
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09d5047b
|
2021-08-03T01:31:03
|
|
GL: Remove the rewriteVectorScalarArithmetic workaround
This workaround was implemented for a bug in Nvidia driver 387 which is
end-of-life. More recent driver branches (390 and 4XX) are fixed, and
so this workaround is no longer required. The implementation of the
workaround itself could introduce bugs.
Bug: chromium:772651
Bug: chromium:1201084
Change-Id: I3db179eb90d9124235bdad2daacc712302906d8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
10d50f64
|
2021-08-04T14:17:17
|
|
Revert "Reland "GL: Fix GPU detection""
This reverts commit a8f9b79a14b923e925d4aecb5eb5d973f92ae4e1.
Reason for revert: assertion failure on mac ARM bots: anglebug.com/6242
Original change's description:
> Reland "GL: Fix GPU detection"
>
> This is a reland of 30dea869a7dc939f94048de23d70705247905c51
>
> Original change's description:
> > GL: Fix GPU detection
> >
> > Always use GL_VENDOR to determine vendor. On multi-GPU systems, this
> > ensures that the correct GPU is used to determine workarounds.
> > GetSystemInfo is still broken in that it assumes the discrete GPU to be
> > active, but with this change it will only affect the test infrastructure
> > (and not users).
> >
> > Bug: chromium:1187475
> > Bug: angleproject:6174
> > Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: chromium:1187475
> Bug: angleproject:6174
> Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: Ice7a1246cb7ad0c257e685b1da4424aba8eaf406
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067767
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
215d00b1
|
2021-08-03T23:34:02
|
|
D3D11: Add validation for storages size in updateBufferStorage
The source/dest BufferStorage used by the updateBufferStorage
may have a raw buffer ptr value of null.
Add size validation to prevent null crashes.
Bug: angleproject:6235
Change-Id: I57ed1ae0e558bd2f61273c64ed067958a1603425
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069000
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
217acac2
|
2021-07-21T12:42:56
|
|
Vulkan: Add support for EXT_primitive_bounding_box
1. Added support for EXT_primitive_bounding_box extension
2. Renamed shader variable gl_BoundingBoxEXT[] to ANGLEBoundingBox[]
Bug: angleproject:3576
Test: dEQP-GLES31.functional.primitive_bounding_box.*
Change-Id: I15fa9af50c6fd8e86d225670ddd8eb39f6e65d35
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053618
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
35bdaf8d
|
2021-08-03T08:12:26
|
|
Capture/Replay: Minor cleanups.
Removes a duplicate assignment to the enabled variable. In the cpp
it's set to true, and in the header it was false. Also updates a
few variable names to be consistent with the group.
Bug: angleproject:5133
Change-Id: I3fb00ecc474191bea7c3a650ce23805b6f02d667
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066007
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5bbaa2c5
|
2021-08-02T15:50:11
|
|
Capture/Replay: Track arrayed uniform locations
Arrayed uniform values consume multiple locations. Until now we've
only tracked the starting location in our lookup table. This breaks
down when applications update uniforms in the middle of an array.
We don't have a location to provide. We need to start tracking a
location per entry.
To support this, pass in the uniform count to UpdateUniformLocation
and track a location for each array entry. Do it with an overload to
preserve functionality with existing traces.
Test: PUBG Mobile MEC
Bug: b/180418573
Bug: angleproject:6087
Bug: angleproject:6234
Change-Id: I74fbe201cb37273d1a5f361ef0c951e00ca89a88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3068199
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f9942640
|
2021-08-03T11:45:31
|
|
Translator: Fix fuzzer crashing on assertion
An assertion was triggered by the fuzzer when generating an invalid
shader that redeclared a built-in. The assertion itself was unnecessary
and the parser would appropriately generate an error if that assertion
would have fired.
Bug: angleproject:4889
Bug: chromium:1235229
Change-Id: I294b2e329491c75d4e87622b602570252555869f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063910
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a8f9b79a
|
2021-07-23T10:44:35
|
|
Reland "GL: Fix GPU detection"
This is a reland of 30dea869a7dc939f94048de23d70705247905c51
Original change's description:
> GL: Fix GPU detection
>
> Always use GL_VENDOR to determine vendor. On multi-GPU systems, this
> ensures that the correct GPU is used to determine workarounds.
> GetSystemInfo is still broken in that it assumes the discrete GPU to be
> active, but with this change it will only affect the test infrastructure
> (and not users).
>
> Bug: chromium:1187475
> Bug: angleproject:6174
> Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: Id0e5bae23f60e87d3de384e84dc5b8059013926d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067801
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a65b4056
|
2021-07-30T23:00:57
|
|
Reland "Translator: Clean up type cloning"
This is a reland of f016c4352f5203c10511df078b1ed5359afc1b35
Original change's description:
> Translator: Clean up type cloning
>
> TType has a constructor that aids cloning + helpers to convert between
> types. A number of places where a type is constructed from the
> information gathered from another type is changed to clone the type and
> then use one of these helpers.
>
> This clean up is part of an ongoing work to improve precision handling.
> This change removes many references to TType::getPrecision().
>
> Bug: angleproject:4889
> Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
Bug: angleproject:4889
Change-Id: I35772f178eb4f6cf2b64bfeb37a4a144acdb4daf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067802
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c5c8a25a
|
2021-08-03T14:40:33
|
|
Revert "Translator: Clean up type cloning"
This reverts commit f016c4352f5203c10511df078b1ed5359afc1b35.
Reason for revert: Suspect for crbug.com/1236060
Original change's description:
> Translator: Clean up type cloning
>
> TType has a constructor that aids cloning + helpers to convert between
> types. A number of places where a type is constructed from the
> information gathered from another type is changed to clone the type and
> then use one of these helpers.
>
> This clean up is part of an ongoing work to improve precision handling.
> This change removes many references to TType::getPrecision().
>
> Bug: angleproject:4889
> Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
Bug: angleproject:4889
Change-Id: I9b5ecacc410b41be382232292ceae2f7ea7906c7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064393
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
1f0e2916
|
2021-08-03T13:42:28
|
|
Revert "GL: Fix GPU detection"
This reverts commit 30dea869a7dc939f94048de23d70705247905c51.
Reason for revert: Breaking roll into Chrome, see bug.
Original change's description:
> GL: Fix GPU detection
>
> Always use GL_VENDOR to determine vendor. On multi-GPU systems, this
> ensures that the correct GPU is used to determine workarounds.
> GetSystemInfo is still broken in that it assumes the discrete GPU to be
> active, but with this change it will only affect the test infrastructure
> (and not users).
>
> Bug: chromium:1187475
> Bug: angleproject:6174
> Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: I815c456b0e9775115ae6d2577b40399818b5bff5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067800
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
747d5323
|
2021-07-27T13:30:59
|
|
gen_restricted_traces: Add kReplayDrawSurfaceColorSpace.
Use default color space if the trace doesn't specify one.
Use Python 3.6 f-strings for the possibility to have default
values at all positions and remove the now redundant defaults string.
This breaks Python 2 compatibility for gen_restricted_traces.py.
See PEP 498: https://www.python.org/dev/peps/pep-0498/
Bug: angleproject:5857
Change-Id: I532014e8e64ea792604a96a42ad998564882d801
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056372
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ac5bcdb3
|
2021-08-02T18:04:49
|
|
Vulkan: Use custom volk init function.
This should ensure we're using ANGLE's version of the loader.
Bug: chromium:1235314
Change-Id: Ia7318a922e192ce669a8cece070ab518ea421fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067511
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
262dc97c
|
2021-07-27T11:13:59
|
|
FrameCapture: Capture the EGL color space.
Add a SurfaceParams struct containing extents and color space so
a single map can be used for all draw surface parameters.
Persist the color space in the trace's header.
Bug: angleproject:5857
Change-Id: I327da8c8870f2d76d057954af57d977a10ebb59f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056371
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
30dea869
|
2021-07-23T10:44:35
|
|
GL: Fix GPU detection
Always use GL_VENDOR to determine vendor. On multi-GPU systems, this
ensures that the correct GPU is used to determine workarounds.
GetSystemInfo is still broken in that it assumes the discrete GPU to be
active, but with this change it will only affect the test infrastructure
(and not users).
Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: I4dffadf0e28c73e01d6b4bf49ab708c0714cdc7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049350
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f016c435
|
2021-07-30T23:00:57
|
|
Translator: Clean up type cloning
TType has a constructor that aids cloning + helpers to convert between
types. A number of places where a type is constructed from the
information gathered from another type is changed to clone the type and
then use one of these helpers.
This clean up is part of an ongoing work to improve precision handling.
This change removes many references to TType::getPrecision().
Bug: angleproject:4889
Change-Id: Ib85659ab5363b56ad298f8648fca856edc1ebf8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063944
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
61517a16
|
2021-08-02T16:49:32
|
|
Remove extra angle:: uses from ANGLEPestTest.cpp.
Bug: None
Change-Id: I7101398504c547b97b9184c56b252bef5198cecb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067510
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fc6ce9ba
|
2021-08-02T13:47:36
|
|
Fix unreachable case in test instantiate.
This error would only trigger when the "null" back-end was
disabled. This would happen on official builds of Chrome.
Bug: chromium:1235656
Change-Id: Icd516513fe28b2b6d6a451503fc690093371acb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067759
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
26329cb9
|
2021-07-30T09:55:24
|
|
Test Runner: Allow listing tests on Android.
Because of quirks with the Chromium-provided Android test runner,
we need to use a few tricks to get the test list output. We add
placeholder output for a single test to trick the test runner into
thinking it ran the tests successfully. We also add an end marker
for the tests list so we can parse the list from the more spammy
Android stdout log.
Will enable a Python wrapper script to list and run performance
tests outside of the GTest harness.
Bug: angleproject:6090
Change-Id: I810d4722e9a6efa03ef94208e516401890af1c37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062240
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0ce5f85f
|
2021-08-02T12:05:17
|
|
Capture/Replay Tests: Skip crashing test.
PBOCompressedTextureTest.PBOCompressedSubImageWithUnpackRowLength/*
Was added in a CL that didn't test win-trace-rel.
Bug: None
Change-Id: I91b056b50b53a302816564d6f12a0ef0f765e675
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aca9f2e2
|
2021-07-29T17:49:26
|
|
Vulkan: SPIR-V Gen: Fix constructors with uniform parameters
When the constructor contains parameters from interface blocks, they may
have SPIR-V type specializations that was not previously accounted for.
The code is made more robust by retrieving the column/component types
when generating constructors through TTypes instead of modifying
SpirvTypes directly.
Bug was caught by the WebGL CTS.
Bug: angleproject:4889
Change-Id: I6c9df17a97fac8622dea55ed67c7bae1ce16d1bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061640
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3a6a0e91
|
2021-08-02T08:01:33
|
|
Remove ASSERT in computeRowPitch about row length.
Compressed texture image uploads ignore unpack parameters. So it's
not an error if these parameters have non-default values. We just
ignore them anyway. This ASSERT was causing a crash in some edge
cases in debug and dcheck builds.
ASSERT introduced in https://crrev.com/c/348064
Bug: chromium:1235031
Change-Id: I1db6ebc9f5572a92ab16bb13da4c236f6fcb8ce2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064986
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d4d6c23c
|
2021-07-31T11:41:29
|
|
Fix a recently-introduced case of -Wunreachable-code-aggressive.
Also enable this and -Wunused-but-set-variable to avoid regressing them.
Bug: chromium:1066980
Change-Id: I1fd7a57c2bf14513d657b69b70e35ad727c75ffd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065355
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae8ef039
|
2021-07-30T00:43:14
|
|
Translator: Correctly respect precision of gl_FragColor/Data
These builtins are declared with a mediump precision. However, during
translation to Vulkan GLSL, the precision was not output and as such
glslang treated them as highp.
Discovered through comparison with SPIR-V output from ANGLE which
included more RelaxedPrecision operations.
Bug: angleproject:4889
Change-Id: I7974478e87ad20115345d679f8f035492be1f349
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062204
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
246e95a5
|
2021-07-30T21:40:48
|
|
Disable Precise unittests without SPIR-V gen enabled
Half the tests fail with glslang, which have the expectations set
appropriately. When SPIR-V gen is disabled in build, when the unittest
attempts to run the SPIR-V gen path it will use glslang instead and
cause test failures. The whole suite is disabled temporarily when
SPIR-V gen is disabled (i.e. non-dcheck builds).
Bug: angleproject:4889
Change-Id: I8686eafef6821c6207c94f991cd8af2fb65a87ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063943
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
8fb5c2f2
|
2021-07-29T23:41:08
|
|
Vulkan: SPIR-V Gen: Fix OpImage* on multisampled images
Lod should not be implicitly specified on multisampled images per spec.
This change fixes a crash on Intel/Mesa with the
TextureSampleShadingTest.Basic/ES3_1_Vulkan test.
Old spirv-val catches this bug, but ToT has regressed this:
https://github.com/KhronosGroup/SPIRV-Tools/issues/4424
Bug: angleproject:4889
Change-Id: Ic2a661ce5264beb1f47f4e52706fe6556176628d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062203
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebe943e2
|
2021-07-29T11:19:33
|
|
Vulkan: SPIR-V Gen: Fix gl_Clip/CullDistance
These built-ins can be redeclared in the shader. The translator took
these redeclarations (and gl_LastFragData) as UserDefined symbols.
There were a number of hacks such as in name generation and
CollectVariables, to special-case these redeclarations.
This change instead makes sure that these variables continue to be
considered built-ins with the appropriate qualifiers. A number of fixes
are made accordingly:
- Hacks are removed.
- In fragment shaders, ANGLEClipDistance was initialized with
gl_ClipDistance for further use by the shader. The code generation
however mistakenly produced `gl_ClipDistance[0] =
ANGLEClipDistance[0];`, which caused compilation failures by glslang,
but passed the tests accidentally because they expected link failures
(see next item).
- CollectVariables is fixed to correctly collect gl_Clip/CullDistance
in fragment shaders; previously they were collected as output
varyings, and therefore the aforementioned link error was not produced
in the tests after the compilation error was fixed.
Additional fixes:
- The transformation of gl_Clip/CullDistance was always ever done on one
of them due to misplaced breaks in the loop that detected their
presence.
- The transformation of gl_CullDistance was skipped when it was not
redeclared.
Validation is added to make sure these built-ins always have the correct
qualifier even when redeclared. SPIR-V gen support for these variables
have been fixed as well.
Bug: angleproject:4889
Change-Id: Ic8bf2c508357035cb937ef41a28ae22ffc533ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059921
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a83c9108
|
2021-07-29T17:13:41
|
|
Vulkan: SPIR-V Gen: Fix nested ternary operators
The OpPhi instruction used to implement ternaries referenced to the
blocks pregenerated for the true and false cases. However, if there
were other code nested inside that could generate blocks (other
ternary expressions or short-circuits), that would be wrong.
Instead, the last block id is taken every time the true or false case is
entirely visited (similar to how it's done in the short-circuit
implementation).
Bug was caught by the WebGL CTS.
Bug: angleproject:4899
Change-Id: I71be86989dfe9596a13940ce657a7e67849e86bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061639
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b23aae4
|
2021-07-29T16:39:28
|
|
Vulkan: SPIR-V Gen: Support vec(..., mat)
Matrices specified in vector constructor arguments were not correctly
handled w.r.t to casting (caught by the WebGL CTS).
Bug: angleproject:4889
Change-Id: I70253f049a651fc5f439b56d1e4d8f785813b605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061638
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
aec5e65c
|
2021-07-28T00:36:12
|
|
Get direct-to-Metal backend to run angle_end2end_tests.
Cherry-pick nameless struct fix from Apple in
https://bugs.webkit.org/show_bug.cgi?id=227482 .
Fix SeparateCompoundStructDeclarations pass to stop generating
multiple declarations; thanks syoussefi@ for advice.
Incorporate additional passes from TranslatorVulkan
(MonomorphizeUnsupportedFunctionsInVulkanGLSL,
RewriteArrayOfArrayOfOpaqueUniforms,
SeparateStructFromUniformDeclarations) needed by RewriteStructSamplers
pass in TranslatorMetalDirect. Fixes many assertion failures in GLSL
tests. Moved these passes out of tree_ops/vulkan. Thanks again to
syoussefi@ for advice and help.
Disable a validation check related to the RewritePipelines pass. Skip
two tests that were failing for other reasons.
With these changes, angle_end2end_tests runs to completion when the
direct-to-Metal backend is turned on. There are still ~1300 failures
of the ~4000 tests which will be investigated next.
Bug: angleproject:5505
Change-Id: Ibca77822543e8e8e8d2a8c862e92cdf74bfa3545
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058524
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
22ae4ce0
|
2021-07-28T16:06:49
|
|
Revert "Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout"
This reverts commit f4f866ce289423d691a0edc0d44d13f4de16f897.
Reason for revert: These tests should not be disabled. The culprit is
fixed per crbug.com/1233361
Original change's description:
> Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout
>
> The tests are blocking the CQ due to flakiness.
>
> Bug: chromium:1233361
> Change-Id: Ib0283e201c271379364a177bea130d63322eee53
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058233
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1233361
Change-Id: I24682f74d790d40f58a9526aaaaa842c3df23ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058502
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
96ccf3f4
|
2021-07-29T12:38:21
|
|
Translator: Consolidate EvqFragDepth and EvqFragDepthEXT
They were the same thing. Fixes SPIR-V generation which only handled
EvqFragDepth.
Bug: angleproject:4889
Change-Id: Id2c35f4c5a26e43ad16a420cc0306756a1add082
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059922
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
014460d8
|
2021-07-30T09:19:50
|
|
Rename WebSwapLayerCGL to WebSwapCGLLayer
Renaming WebSwapLayerCGL to fix the following MacOS warning:
Class WebSwapLayerCGL is implemented in both
/System/Library/Frameworks/WebKit.framework/Versions/A/
Frameworks/WebCore.framework/Versions/A/WebCore
and
.../chromium/src/out/.../Chromium.app/Contents/Frameworks/
Chromium Framework.framework/Versions/.../Libraries/
libGLESv2.dylib
One of the two will be used. Which one is undefined.
Bug: angleproject:5253
Change-Id: I016e7467994d3ecf7b22750af2606314593dd516
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062212
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
cad2bcb8
|
2021-07-27T11:40:25
|
|
packed_egl_enums: Add ColorSpace.
Add EGL ColorSpace enum consisting of sRGB and Linear entries.
Bug: angleproject:5857
Change-Id: I1e30db6fca6ad65db17a6369a26eae886468a85d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056370
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3036e090
|
2021-07-29T15:55:39
|
|
Vulkan: Direct SPIR-V Gen: Support the precise keyword
The precise keyword is different in GLSL in that it defines what
arithmetic operations _that have led to the value being assigned to a
variable_ should be done precisely (i.e. not "contracted").
A tree traverser is implemented that detects precise access chains and
applies precise-ness to the right hand side of assignment expressions to
said access chains. This is only done if the shader uses the precise
keyword in the first place. The algorithm for this is inspired by the
implementation in glslang.
This change additionally:
- Fixes parser to allow precise on function parameters
- Fixes GLSL code generation to output precise on struct members and
function parameters.
Bug: angleproject:4889
Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8f77e0bc
|
2021-07-29T15:54:26
|
|
Define angle::HashSet potentially using abseil
Split change from CL using it for simplicity.
Bug: angleproject:4889
Change-Id: Ie3e621dee624020581e9fd7679639332718948f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061439
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e74638fe
|
2021-07-28T19:03:43
|
|
Disable Metal shader cache again in angle_end2end_tests.
This hooking was removed in
https://chromium-review.googlesource.com/3010486 and sped up local
test runs, but seems to have reintroduced flakiness on the Mac AMD
Retina bots.
Bug: chromium:1233864
Bug: angleproject:5505
Change-Id: I46d95545fbbedc0e881e3a2832a5ac5d5384f405
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057823
Commit-Queue: ccameron <ccameron@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
|
|
ae24c9d3
|
2021-07-19T12:11:41
|
|
Remove space from internal debug name strings.
This changes will reduce the amount of memory used by labels by
removing the in between spaces from internal debug name strings.
Bug: chromium:1164111
Change-Id: I0ec657789dade2c3c053966ffccfbd673186fdad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3039119
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
b8e8c822
|
2021-07-27T11:19:59
|
|
Suppress Mac 11.4 failures
Suppresses several Mac 11.4 AMD failures that were found after we
started testing the configuration.
Bug: angleproject:6222, angleproject:6223
Change-Id: I4f0f5ac0ab14d2645bb76def3e4ec55d999940fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056839
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
|
|
8593e0a2
|
2021-07-28T13:52:06
|
|
TestSuite tests: Don't validate stderr until fixed
Bug: chromium:1233361
Change-Id: Ibcd66520d7b842211eafb26f9188298c281cbe64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058503
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7c6da493
|
2021-07-26T21:24:25
|
|
Translator: Make sure built-in variables are consistent
Some transformations left the tree in an inconsistent state, for example
if it used gl_SampleMask from ES3.1+OES_sample_variables and the
transformation added a usage of gl_SampleMask from ES3.2. The offending
transformations are fixed and AST validation is improved to catch such
errors.
Bug: angleproject:4889
Change-Id: I9d9ea5bb43a9408dd4c6dc3e89ec20d60dfeff73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054613
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0d06c3cf
|
2021-07-26T04:30:39
|
|
Fix some instances of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I144165ae5ec47aba88658030a6ba3e371bf31ee7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053616
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c8c9e15b
|
2021-07-26T22:51:49
|
|
Translator: Fix sizing of tessellation shader arrays
If layout(vertices=N) is specified after implicitly sized array
declarations, the correct size was not being specified on them.
Bug: angleproject:4889
Change-Id: I86ccf45a7f264b493a137b87316eff744079ed6c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3054614
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
bd19620f
|
2021-07-27T23:45:11
|
|
Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension."
This reverts commit 4222d5e5a03f85ca07253d54f3087684fe9447b3.
Reason for revert: errors on multiple builders when rolling into Chromium
https://chromium-review.googlesource.com/c/chromium/src/+/3057227
e.g.
https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/924126/overview
Original change's description:
> VulkanExternalHelper: Use VK_KHR_image_format_list extension.
>
> To retrieve correct size requirements when the VK_KHR_image_format_list
> extension is enabled, it must be used to match VkImages created in
> vk_helpers.
>
> RendererVk: Fully enable VK_KHR_image_format_list.
> Enable the extension on non-AMD and non-ARM platforms.
>
> Bug: angleproject:5281
> Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:5281, chromium:1233561
Change-Id: I3b15bb2fc2fb779adac8bbf5d805727a25b5795c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057071
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5bda5f91
|
2021-07-26T20:37:52
|
|
Fix some instances of -Wunreachable-code-aggressive.
Bug: chromium:1066980
Change-Id: I1e769b78c51d939067e8855beab32ec7c006c00e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3055794
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
4222d5e5
|
2021-07-16T16:26:17
|
|
VulkanExternalHelper: Use VK_KHR_image_format_list extension.
To retrieve correct size requirements when the VK_KHR_image_format_list
extension is enabled, it must be used to match VkImages created in
vk_helpers.
RendererVk: Fully enable VK_KHR_image_format_list.
Enable the extension on non-AMD and non-ARM platforms.
Bug: angleproject:5281
Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
ef406f1b
|
2021-07-16T12:19:23
|
|
FrameCapture: Capture GLES1 matrix stack.
Capture the modelview and projection matrix stack. This is required for
GLES1 applications that do not reset the stack every frame.
Bug: angleproject:6181
Change-Id: I71befc15ca287cf91fcebf9d972c7badaeb23605
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035050
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
edb4a7a8
|
2021-07-16T12:19:06
|
|
GLES1State: Add getMatrixStack function.
FrameCapture requires access to the whole matrix stack. This function
also exposes stacks that are not currently set.
Bug: angleproject:6181
Change-Id: I595feaa0cbd3e5a62e398aa7a0578ecf6425ffe6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035049
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
b8d6f8aa
|
2021-07-22T22:31:29
|
|
Translator: Facilitate integration in FireFox
Instead of relying on is_apple to build workarounds applied on apple
hardware, a new build argument is added for this purpose. This allows
FireFox to more easily include these files in their build system (which
builds every workaround on every platform).
The workarounds are reorganized too and moved from tree_ops/gl/mac to
tree_ops/apple. RewriteRowMajorMatrices is moved there too as it's now
used by both gl and metal. This workaround is large, and removing it
from non-apple builds improves binary size (~40KB on Linux).
Bug: angleproject:6188
Change-Id: I8e1dab44d0235bb6b8341d53721bdd0d157d46c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047385
Reviewed-by: Jeff Gilbert <jgilbert@mozilla.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dbe986d7
|
2021-07-26T01:43:44
|
|
Vulkan: SPIR-V Gen: Fixes to tessellation shader support
- TCS barrier() built-in is correctly looked up
- Patch decorations are fixed
Bug: angleproject:4889
Change-Id: I1befcaca85a965c9d46b1b41ec74597de44bf2b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052687
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
acfd63a4
|
2021-07-26T01:02:11
|
|
Translator: Remove GLSL rules from the ESSL-only symbol table
Shaves ~36KB off of ANGLE's binary size on Android.
Bug: chromium:1084580
Change-Id: I4711c6bd28437a43b7dc63be4cfcdaed7ae11ba2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052686
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|