|
a01a566c
|
2023-06-09T00:31:06
|
|
extension xmls: fix incorrect use of <ptype> tags
I was having trouble using some GL/EGL loader generators because of some
errors in the XML definitions for ANGLE.
The first major problem is the content of the <ptype> tags. Let's refer
to the Khronos registry XML schema (which is annoyingly a PDF rather
than an xsd that we can test against, though I don't know if an xsd
would catch this anyway):
https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/readme.pdf
In section 12.4.2, "Contents of <param> tags" it states:
The <ptype> tag is optional, and contains text which is a valid type
name found in <type> tag, and indicates that this type must be
previously defined for the definition of the command to succeed.
Builtin C types, and any derived types which are expected to be
found in other header files, should not be wrapped in <ptype> tags
Note that the above is repeated for the contents of <proto> tags as
well.
The extension XML files currently have a bunch of <ptype> tags which
don't meet the expectations described above. The correct transformation
for them would be, for example:
<ptype>GLfloat *</ptype> -> <ptype>GLfloat</ptype> *
<ptype>void *</ptype> -> void *
<ptype>const char *</ptype> -> const char *
<ptype>EGLAttrib *</ptype> -> <ptype>EGLAttrib</ptype> *
The next issue is that some tags have some typos, such as "<pytpe>"
instead of "<ptype>". (Now *that* is something an .xsd would catch...)
The last issue is the use of the typename "GLvoid" which is not as
serious a problem. It is still defined in Khronos' gl.xml <types> block,
but Khronos no longer uses it in their XML registries. The comment for
the "GLvoid" type in their <types> block states:
<type comment="Not an actual GL type, though used in headers in the past">typedef void <name>GLvoid</name>;</type>
So we might as well replace those with just plain "void".
Anyway, long story short: to apply these transformations, I used Perl
regular expressions, and applied these expressions in order:
- Fix the tag misspellings:
s#<(/?)pytpe>#<\1ptype>#g
- Move the const qualifiers (if present) and pointer asterisk(s) (if
any) outside the <ptype> tag itself:
s#<ptype>(const )?([A-Za-z0-9]+)[ ]?(\*\*?)</ptype> #\1<ptype>\2</ptype> \3#g
- Replace "GLvoid", "char", and "void" inside ptype tags to normal
C types outside tags:
s#<ptype>(GLvoid|void|char)</ptype>#\1#g
Bug: angleproject:8190
Change-Id: Ib0bea79fecb7e714910b6e92124bb9f52994d0fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d8339e78
|
2023-05-25T08:40:48
|
|
FrameCapture: Support EGLSync in MEC
This CL starts treating EGLSync as a tracked resource, such
that we can detect when they need to be created in Setup, or
regenerated in Reset.
Test: MEC of infinity_ops trace
Test: Replay new kentucky_route_zero trace without error
Bug: angleproject:8176
Change-Id: I130212f6edb78d9df29dd6e572843df25493ae09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566949
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
9e47cbd3
|
2023-05-18T14:40:37
|
|
Capture/Replay: Rework trace EGLDisplay handling
Refactor the trace-replay EGLDisplay handling to allow
initializing the global EGLDisplay handle in the
InitializeReplay4() body. This included adding
support for eglGetCurrentDisplay() to the EGL-on-
WGL shim.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I2319fd9a35f8fb9c0a7f10547ca39f49ce402b8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546267
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
8fdb164b
|
2023-05-11T10:03:57
|
|
Capture/Replay: Get and use actual EGLDisplay in trace
ANGLE traces were using ANGLE_NO_DISPLAY for EGLDisplay args
in traces. After the EGLSyncMap was added this caused error
messages in Android and Linux playback of some traces. Added
a global EGLDisplay to traces and initialized it with the
proper value.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I1e6522cd4fdfee136c1e296805dac9d9f71256f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534096
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c687078a
|
2023-05-01T16:45:19
|
|
FrameCapture: Add GLES1 case for BlendFunc state init/reset
A recent frame capture change added state init/reset for
glBlendFunc/glBlendFuncSeparate calls and combined them to
avoid complexity, but this caused crashes in GLES1 native
trace playback. This CL separates handling of the two calls.
Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce
Bug: b/280329971
Change-Id: I34d674e2fc051f5af70a60a24e5b65c5ce54fd49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4494261
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
fbff065c
|
2023-05-03T22:19:07
|
|
Replace GetResourceFromHashSet with map lookup
Function GetResourceFromHashSet had linear time complexity
because it was sweeping through the set until a resource with a
matching ID was found. This change replaces hash sets with hash
maps to get constant time lookup. This solves, among other things,
O(N^2) time complexity for rendering scenes containing a large
number of surfaces.
Function GetResourceFromHashSet was consuming over 50% of all CPU time
on the main thread of Chrome's GPU process while running the MotionMark
1.2 Images test. With this change, the benchmark score increases by
70% on an M1 MacBook running a PGO official build of Chrome.
Bug: chromium:1435066
Change-Id: I895ac0141a91d324c63adec2c0efb8e030d9675b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505950
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
|
|
73f9cf00
|
2023-03-31T00:00:00
|
|
GL: Implement polygon mode extensions
* Implemented polygon mode extensions
on the OpenGL backend
* Supported capture and serialization
of the new commands and state
* Added PolygonModeTest end2end tests
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I3bc08546a02f110dd739950129bee25ccc507bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492683
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cd6a58f2
|
2023-04-18T12:45:10
|
|
Vulkan: Make eglPrepareSwapBuffersANGLE less special
This function now uses the UnlockedTailCall mechanism so it doesn't
require as much special-case code generation.
This change does not fix the bug that this function is doing too much
work without holding any locks. That will be done in a follow up.
Bug: angleproject:6851
Bug: angleproject:8133
Change-Id: I77f4d514ff4aeef85bc1cc59214f7caa23aca7df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4443186
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7a5714f
|
2023-03-31T00:00:00
|
|
Add polygon mode extension stubs
* Added NV_polygon_mode
* Specified a portable polygon mode extension
implementable on all ANGLE backends
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I018aaaf1fb43ec16910859b152049e02169ede91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1810995c
|
2023-04-25T13:09:27
|
|
Capture/Replay: Initialize MEC alpha test state
Fixes Street Fighter IV CE rendering issues when capturing.
Test: angle_trace_tests --gtest_filter="*street_figher_iv_ce*"
Bug: b/278606770
Change-Id: Ifb44c45b19514e4cabed1e81be99bce5706ac4d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4475732
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
b5fa8728
|
2023-04-20T14:59:28
|
|
Add extension to skip texture renderability validation in ANGLE.
Add a new extension to skip the texture renderability
validation in ANGLE.
Bug: angleproject:0000
Change-Id: Ia9e5a1eff233f5aced4706b7d3c183058d474c41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455549
Auto-Submit: vikas soni <vikassoni@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: vikas soni <vikassoni@chromium.org>
|
|
e975f9dc
|
2022-11-09T06:44:06
|
|
Capture/Replay: handle paletted textures
Add a method for recompressing paletted textures on
capture.
Bug: angleproject:7710
Change-Id: I11af0c1cd7c3b63850c5daf96eafcd3efce65f16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178311
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a491bbe3
|
2023-03-18T19:05:08
|
|
Add PLS utilities for interrupting a rendering pass
Adds two more simple commands to ANGLE_shader_pixel_local_storage that
allow WebGL and the command buffer to interrupt rendering passes without
having to either (1) make expensive queries, or (2) track lots of
complex state for validation that they are not currently equipped to
track.
Bug: chromium:1421437
Change-Id: I80eaef3ae6b0b4bbbecb9cd2268ac90b43675d1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4355032
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
e809e7bd
|
2023-03-13T00:00:00
|
|
Reland "Implement EXT_depth_clamp"
This is a reland of commit f8c1418319ac2aef4b3101e322005b1d0f73120f
Host GPU bugs are observable in iOS Simulator
Original change's description:
> Implement EXT_depth_clamp
>
> * Added depthClamp to the RasterizerState
> * Added DepthWriteTest end2end tests covering
> both clipped and clamped depth writes
>
> Capture
> * Updated serialized rasterizer state
> * Updated CaptureMidExecutionSetup
>
> OpenGL
> * Requires GL 3.2 or ARB_depth_clamp
> on desktop contexts
> * Maps to EXT_depth_clamp on ES
>
> D3D11
> * Maps to the opposite of
> D3D11_RASTERIZER_DESC.DepthClipEnable
> * The new tests uncover several edge cases where
> a workaround is needed to implement unextended
> OpenGL semantics on top of D3D
>
> Metal
> * Maps to the setDepthClipMode command
>
> Bug: angleproject:8047
> Bug: angleproject:8077
> Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I8c5f8304276c97c51b2c3382cd2764592ee0c3fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4349938
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4a77b0f5
|
2023-03-18T00:16:24
|
|
Revert "Implement EXT_depth_clamp"
This reverts commit f8c1418319ac2aef4b3101e322005b1d0f73120f.
Reason for revert: This change breaks angle_end2end_tests on Metal backend: https://ci.chromium.org/ui/p/chromium/builders/ci/ios-angle-intel/26035/overview
Original change's description:
> Implement EXT_depth_clamp
>
> * Added depthClamp to the RasterizerState
> * Added DepthWriteTest end2end tests covering
> both clipped and clamped depth writes
>
> Capture
> * Updated serialized rasterizer state
> * Updated CaptureMidExecutionSetup
>
> OpenGL
> * Requires GL 3.2 or ARB_depth_clamp
> on desktop contexts
> * Maps to EXT_depth_clamp on ES
>
> D3D11
> * Maps to the opposite of
> D3D11_RASTERIZER_DESC.DepthClipEnable
> * The new tests uncover several edge cases where
> a workaround is needed to implement unextended
> OpenGL semantics on top of D3D
>
> Metal
> * Maps to the setDepthClipMode command
>
> Bug: angleproject:8047
> Bug: angleproject:8077
> Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I829add68c006c72b7b4acf03aee3efa8a9a16fac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350876
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
f8c14183
|
2023-03-13T00:00:00
|
|
Implement EXT_depth_clamp
* Added depthClamp to the RasterizerState
* Added DepthWriteTest end2end tests covering
both clipped and clamped depth writes
Capture
* Updated serialized rasterizer state
* Updated CaptureMidExecutionSetup
OpenGL
* Requires GL 3.2 or ARB_depth_clamp
on desktop contexts
* Maps to EXT_depth_clamp on ES
D3D11
* Maps to the opposite of
D3D11_RASTERIZER_DESC.DepthClipEnable
* The new tests uncover several edge cases where
a workaround is needed to implement unextended
OpenGL semantics on top of D3D
Metal
* Maps to the setDepthClipMode command
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
bf5e9dbc
|
2023-03-09T00:00:00
|
|
GL: Reset clip origin before scissored clears
Clip origin must not affect scissor box but
some drivers flip it for clear operations.
Added capture/replay support for ClipControl.
Bug: angleproject:8066
Change-Id: I9292cb4945b49c56c80da4c5813e89df3453b6b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4328267
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b468e4dd
|
2023-03-08T14:21:47
|
|
Add back "non-robust" PLS queries
Chrome doesn't have a codegen template for queries that model the
"robust" signature, so support both types.
Specify that the robust variants are only supported if
ANGLE_robust_client_memory is supported, so Chrome and other
implementations don't have to support them.
Bug: chromium:1421437
Change-Id: Icc69b69ce9ce0a2cfad0dbeed1f3b29bcfa92d20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4321867
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
52ba6071
|
2023-03-06T00:00:00
|
|
Add EXT_texture_filter_minmax stubs
Bug: angleproject:8072
Change-Id: Idfc2f2ff0eff7b0f6c131c37aeb53fb04019257d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4315865
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a65f6a9d
|
2023-03-07T16:11:44
|
|
Make PLS queries robust
There's no reason not to mirror the ANGLE_robust_client_memory API here.
Bug: chromium:1421437
Change-Id: Ifb8b1a9675abe2ceb35272dc905f3c38f29dceda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4317485
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
bd08c309
|
2023-02-20T08:17:31
|
|
Capture/Replay: Don't serialize shader refcount with context
The shader and program reference count is not an OpenGL state,
it is only an implementation dependent value and should,
therefore, not be part of the context serialization. In fact,
it is actually misleading, because for shared contexts its
value depends on the state of all contexts and not just the
current one. Especially with MEC this may lead to validation
errors, because a sequence
Context 1 (shared):
create program A
Context 2:
use program A
-> start MEC
will result in a refcount of "1" when the state of context 1
is serialized during MEC startup, because at this time context 2
already holds a reference. However, when the valiation
checkpoint at the end of the setup for context 1 is executed
during replay, then the setup for context 2 has not yet been
run and the refcount will be "0".
Bug: angleproject:8029
Change-Id: Ia7236e5f35634ba1506117abc19efa94b816e572
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4270930
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1174582a
|
2023-03-06T00:00:00
|
|
GL: Implement EXT_clip_control
The extension is trivially exposed
if the current context supports it.
* Added packed clip control enums
* Removed unused state query code
* Aligned symbol names with the specs
Bug: angleproject:8066
Change-Id: I9d106f39800658ecc75f4525ee93cb534dc49f9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4306770
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a8ba5112
|
2023-02-10T10:04:41
|
|
Capture/Replay: Deal with swap called in different contexts
Move recording the context setup of the main context to the
same location where all other context setups are recorded and
drop the assertion that checks that swap is always called from
the same context.
Invoke the context setup at the time the secondary contexts are set
up, and make sure the main context is correctly mapped.
Bug: angleproject:7911
Change-Id: I327bce318b1a0e26ffdbf096343f99cedd78c116
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236541
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
0e9b8f36
|
2023-02-08T13:39:09
|
|
Capture/Replay: Drop context ID from file and frame func names
This is needed when we want to be able to deal with swap called
from different contexts.
Bug: angleproject:7911
Change-Id: I83023308109852179f434be2290b33b7844ddcda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236540
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a2efea13
|
2023-03-01T00:00:00
|
|
Add ANGLE_stencil_texturing
This extension allows texturing of the stencil
component of a packed depth stencil texture on
OpenGL ES 3.0 contexts.
Trivially exposed on backends that support
OpenGL ES 3.1, which requires this feature.
Adjusted the tests to check for the new
extension string instead of the context
version.
Bug: angleproject:8051
Change-Id: I4d833acbc72e7374bde91d4c861598a0fdaf9b90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4295312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1ca860ac
|
2023-02-22T00:00:00
|
|
Add extension stubs
* GL_EXT_conservative_depth
* GL_EXT_depth_clamp
* GL_EXT_render_snorm
Bug: angleproject:8046
Bug: angleproject:8047
Bug: angleproject:8048
Change-Id: I7deb4f25f76008103c2754747db2d90be880b6ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4296803
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e2cf65ed
|
2023-02-22T00:00:00
|
|
Implement QCOM_render_shared_exponent
Fixed: angleproject:8043
Change-Id: Ia76b8e4b60a640180bae77cba523142749051398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4289140
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
dd1cf777
|
2023-02-16T00:00:00
|
|
Add EXT_texture_mirror_clamp_to_edge entry points
Bug: angleproject:7968
Change-Id: I04b0c5d7b5148fbaca24d77a2c8688ea7a96cb64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262073
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a52c0a6c
|
2023-02-06T16:01:27
|
|
Capture/Replay: Add and handle new resource type for EGLSync
So far calls involving EGLSync were not tracking the actual
sync objects, and this may lead to race conditions in
multi-threaded and multi-context scenarios.
This CL adds the type EGLSyncID and some specialized code
handling of egl::Sync to distinguish EGLSync from the already
existing GLSync objects in order to track them separately.
Bug: angleproject:7911
Change-Id: I91b188a41069bc0620f51c55ee516d23b55bdd38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4200095
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
111aca40
|
2023-02-15T14:06:15
|
|
Capture/Replay: Emit NULL instead of nullptr in trace
When created C traces the value "nullptr" is not defined, so
emit NULL instead, because this is supported in both, C and C++.
Bug: angleproject:8018
Change-Id: I77584c462b1b02df39871929c1979d7ee7624361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4254388
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
91bd7e6e
|
2023-01-09T15:57:35
|
|
Capture/Replay: VertexArrayState: also track binding index too
We have to capture the case when only the binding index is not
at the default value.
Bug: angleproject:7912
Change-Id: Id08b20788422694db60f38c6e0b8b4a9191890c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4143841
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
a77e8e3a
|
2023-02-06T16:24:06
|
|
Limit logging when invalid calls are not captured.
An app was crashing during capture due to a huge volume of such calls:
% adb logcat -d | grep 'Not capturing invalid call' | wc -l
20609
There are a couple of cases where validation silently ignores "benign"
invalid calls, such as glUniform*(-1, ...):
https://crsrc.org/c/third_party/angle/src/libANGLE/validationES.cpp;drc=0c4306fc554c80506eb0f9b833a5d2a5fdd452d5;l=2815
Limit to (separately for active and inactive capture so that we still
see these after triggering mid-execution capture).
Example log after this CL:
02-07 11:54:45.869 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f
02-07 11:54:45.874 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f
02-07 11:54:45.882 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point)
... (then I triggered capture) ...
02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f
02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f
02-07 11:55:13.050 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point)
Bug: b/267795212
Change-Id: I2f150cfa5b4c74fc1ebe5abeb1201cc4caad80e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224875
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
0931b679
|
2023-01-26T13:20:22
|
|
FrameCapture: Update shader capture for CRLF
Shaders with CRLF were breaking the way we capture strings after the
move to C format, causing compile failures.
To fix, strip out carriage returns ("\r") before splitting the string.
See previous patchsets on this CL to see other approaches we tried.
Test: LIMBO and Pokemon Masters EX traces
Bug: angleproject:7945
Bug: angleproject:7953
Change-Id: Ia15d3a098cb4fcad85a7d7dbd365acdbff8346ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4159055
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ef0fe638
|
2023-01-16T00:00:00
|
|
Implement EXT_polygon_offset_clamp
* Added polygonOffsetClamp to the RasterizerState
* Adjusted State::setPolygonOffsetParams
* Added PolygonOffsetClampTest end2end tests
* Added StateChangeTestES3.PolygonOffsetClamp test
* Suppressed the affected dEQP test as it has a bug
Capture
* Updated serialized rasterizer state
* Updated CaptureMidExecutionSetup
OpenGL
* Rely on the EXT extension defined both
for desktop and ES contexts
* On desktops, might as well use the ARB extension
or GL 4.6 once ANGLE supports them
D3D11
* Requires FL10_0 or higher
* Maps to D3D11_RASTERIZER_DESC.DepthBiasClamp
* Drive-by cleanup of extensions init code
Vulkan
* Requires depthBiasClamp physical device feature
* Maps to the depthBiasClamp parameter
of the vkCmdSetDepthBias command
Metal
* Maps to the clamp parameter
of the setDepthBias command
Bug: angleproject:7957
Change-Id: If6b28df4084f0a81db29f75fb434e75d394c8730
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169945
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
0133b6f1
|
2023-01-20T16:02:27
|
|
Add GL_ARM_shader_framebuffer_fetch builtins
Bug: b/242419750
Bug: angleproject:7882
Change-Id: I85582ad21e58e448b740789ec88f783c8b95ee01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4189028
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Sean Risser <srisser@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dfcdae3b
|
2023-01-23T15:59:49
|
|
FrameCapture: Add blend state updates to resetCalls.
Adds calls to ResetReplay if modified during capture, for example:
glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD);
glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_SRC_ALPHA, GL_ONE);
glBlendFunc and glBlendFuncSeparate need to be "merged" into a single
path to avoid both being tracked while using the same underlying state,
so I mapped them both to glBlendFuncSeparate.
Also handling glBlendEquation the same way, previously only
glBlendEquationSeparate calls were tracked.
Test: Bubble Shooter with Friends MEC
Bug: b/266244734
Change-Id: I02c4a0da46f35aa496308bf9df6ac15f3297de27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4189035
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
2c582dcb
|
2023-01-03T10:27:03
|
|
Trace Interpreter: Support Manhattan trace.
Adds the following fixes and features:
- support transform feedback varying strings
- support infinity and NaN constants
- support for sampler and query resources
Bug: angleproject:7887
Change-Id: Ib01afe66e4fda9bc77d0cb5eed52fa83a694a7d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4126885
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f7b5d5d1
|
2022-12-15T10:52:07
|
|
Capture/Replay: Remove inline variable declarations.
This makes parsing easier for the "simplified C" interpreter.
We introduce a resource ID buffer as a way to manage a list
of resource IDs to replace the inline resource lists.
Turns on the Among Us trace in the interpreter tests.
Bug: angleproject:7775
Change-Id: I1bb9c0e9b087965a18691bc99b2e9947610b9eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4128719
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fdada9ee
|
2022-12-13T14:52:53
|
|
Re-land: "Make SyncIDs a packed type."
This re-land fixes the sync map size tracking.
This prepares syncs to use a simple resource map like other
types, which will make life easier in the trace interpreter.
Bug: angleproject:7775
Change-Id: If2114c51d5b68503890eacbf549182823667fedc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178012
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8971a592
|
2023-01-18T14:35:09
|
|
Revert "Make SyncIDs a packed type."
This reverts commit 9de913077a5fcc3d2f2e327b56bbe30efe2fde96.
Reason for revert: Fails win-trace, somewhat flakily.
Original change's description:
> Make SyncIDs a packed type.
>
> This prepares syncs to use a simple resource map like other
> types, which will make life easier in the trace interpreter.
>
> Bug: angleproject:7775
> Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:7775
Change-Id: I29534b14c973fa34a4cb7457d534cd6156f33cd2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178010
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
9de91307
|
2022-12-13T14:52:53
|
|
Make SyncIDs a packed type.
This prepares syncs to use a simple resource map like other
types, which will make life easier in the trace interpreter.
Bug: angleproject:7775
Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
56eb961f
|
2023-01-17T17:03:39
|
|
Revert "Capture/Replay: Capture the attr locations as set by the program"
This reverts commit 585d2a9e5c546c7aa59b987da6c70d310cccd3ee.
Reason for revert: glBindAttribLocation calls added by frame capture, even when location was not set explicitly, are currently necessary for replay stability across different platforms. Example from a trace:
glGetAttribLocation(gShaderProgramMap[24], "position");
...
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 112, nullptr);
Note how "0" is hard-coded instead of using the value returned by glGetAttribLocation above, and that can be different on a different platform. This was resolved before this CL by calling glBindAttribLocation to map "position" to 0, and after this CL glBindAttribLocation calls are missing from the trace and we end up with inconsistent native replays (found in Android b/265429003)
Original change's description:
> Capture/Replay: Capture the attr locations as set by the program
>
> Setting the attribute location based on the input declaration
> results in a discrepancy with MEC when recording the context state,
> because if a location was never set explicitely, the captured
> context state will hold no attribute location information, but
> since calls were recorded to set the default attribute locations,
> the context state recorded during replay will contain these extra
> entries.
>
> To avoid this, only record the attribute locations that were
> explicitely set.
>
> Bug: angleproject:7564
> Change-Id: Ib9d6c7b098935d199921e0fe5c0ef985e6187f1b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827345
> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:7564
Bug: angleproject:7964
Bug: b/265429003
Change-Id: I4f97c8162601cc1b749bbc8a06851561654205e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4172756
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
9bd37934
|
2023-01-12T00:00:00
|
|
Add EXT_polygon_offset_clamp entry points
Bug: angleproject:7957
Change-Id: Ida28b852b1db3e6017b6e91a9424381eb8fe29f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169943
Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4194dab4
|
2023-01-09T12:03:47
|
|
Capture/Replay: Test the correct context ID when emitting setup
Fixes: b432c84c2b8cb6d20873e2b33b6684bee76db90d (origin/chromium/5455)
Capture/Replay: Fix collecting the initialized contexts
Bug: angleproject:7805
Bug: angleproject:7938
Change-Id: Ia321179bef8fd33c7968177ffcb4da78103a99fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4143840
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
18950e64
|
2023-01-05T11:33:59
|
|
Capture/Replay: Fix unpack alignment inconsistency.
We were checking the current value of the unpack alignment in
the replay when we should have been comparing vs the set value
in the context.
Bug: angleproject:7816
Change-Id: Ib7e6ed785e07e06a7f55f4b727f640912b75b7a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4139299
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
d0fa9fe2
|
2023-01-04T12:15:02
|
|
Capture/Replay: Fix GetProgramInterfaceiv write location.
This was mistakenly writing to the read-only binary data blob.
Instead properly write to the read buffer.
Bug: angleproject:7887
Change-Id: I039981b0bd03983542f6432d1091651c1d553479
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4135796
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
|
|
b354667e
|
2022-12-24T12:21:17
|
|
FrameCapture: Fix tracking of glCopyImageSubData
When tracking texture updates during glCopyImageSubData, choose
an enum supported by PackedEnum when looking up the textureID.
Also add a test for a common pattern used by the Unreal Engine that
trips up FrameCapture.
Test: CopyImageTestES31.CubeMapCopyImageSubData/*
Bug: angleproject:7913
Change-Id: I6c0fee69064cc6dc81177093ec9461dd5ccc152a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4126449
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
067ace47
|
2022-12-21T00:00:00
|
|
Add ANGLE_clip_cull_distance extension
Added an extension spec.
Trivially exposed it on GL, Vulkan, and D3D11.
Adjusted tests and validation to allow no cull
distance support for this extension string.
Removed extra built-in variable definitions.
Bug: angleproject:7904
Change-Id: Ic60772dfe28132c316eaa29aadc1afd66e3b0fa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4114290
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
be9e8e7b
|
2022-12-14T14:13:39
|
|
Add EGL_ANGLE_wait_until_work_scheduled extension
We're changing eglReleaseTexImage so it calls
flushCommandBuffer(mtl::NoWait) instead of
flushCommandBuffer(mtl::WaitUntilScheduled)
and then adding an extension to allow us to
WaitUntilScheduled.
This is because Chrome calls eglReleaseTexImage for
every canvas and having it WaitUntilScheduled per call
is very slow. So instead we'll call eglWaitUntilWorkScheduledANGLE
once which will effectively wait just once.
Bug: angleproject:7890
Change-Id: I87bc9f9a1a7f4a0f99d93736cc3083799e76afeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4109311
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
7fe33996
|
2022-12-02T00:04:28
|
|
Capture/Replay: Regen/Restore shaders and programs
Add missing functionality that can recreate shaders and programs
that are deleted during the run.
Test: Plants vs. Zombies Heroes MEC
Bug: angleproject:5968
Bug: angleproject:7848
Change-Id: I2d41ebe9df1e2ad1beef831acd72fd3f06f4eb1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4060241
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f7cf3226
|
2022-12-08T10:08:56
|
|
Capture/Replay: Only create active secondary contexts in MEC
This finalized the fix attempted in
b432c84c2b8cb6d20873e2b33b6684bee76db90d
Capture/Replay: Fix collecting the initialized contexts
Bug: angleproject:7858
Change-Id: Ie2bbcdb3f23fe4970ce3a9bb46df6f60fe6c8ab6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4084926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
384ce5cf
|
2022-11-29T14:18:34
|
|
Capture/Replay: Corretly reset the UnpackAlignment at end of MEC
Direcly setting the value doesn't set the relevant dirty state,
use the appropriate setter call instead. This fixes the reported
difference between the UnpackAlignment value stored in the trace
and the one recorded ruring validation for MEC.
Bug: angleproject:7564
Bug: angleproject:7180
Change-Id: Ic931cac9b7e33519e992ae55ee5cab2adb2958ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4063892
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
0790a807
|
2022-12-01T23:58:36
|
|
Capture/Replay: Add ResourcesToDelete
For resources that are deleted but not recreated by the app,
we need to skip the delete call we've been making for
ResourcesToRegen. To support this, track which resources need
to be deleted.
We've gotten by without this for so long because most apps
will immediately recreate a resource after deleting it. When
they simply delete starting resources, we can't try to delete
them again.
Test: MEC of multiple apps
Bug: angleproject:4599
Change-Id: I226ba7887e2b7b31d4ce9a75d6a8d0a24f3f32ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4075486
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
b432c84c
|
2022-12-01T10:40:03
|
|
Capture/Replay: Fix collecting the initialized contexts
The main context initialization function will be emitted as
"Shared" and not based on the context number, so only add the
secondary contexts to the list of contexts that need additional
setup.
Fixes: b301b82235ca686d036a8d29380da22bb2060060
Capture/Replay: emit context setup for pre-MEC contexts only
Bug: angleproject:7805
Change-Id: I4ac770a303ac93a448c9b46bf8c4cd58900ddd54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4068124
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b301b822
|
2022-11-07T09:37:14
|
|
Capture/Replay: emit context setup for pre-MEC contexts only
When a context is made current for the first time it is added to
the shared context set. If this happens after the mid execution
capture has started, then the call to the context setup function
is created, but the according function implementations was not
emitted leading to compilation failure of the so created trace.
Since a context that was never current doesn't actually have any
setup that needs to be done when starting a MEC replay. Hence,
there is no need to emit the calls fot SetupReplayContextXX.
So track which context where actually in the shared context set
when MEC started, and only emit the according calls to the setup
functions.
Bug: angleproject:7805
Change-Id: I83f8714733ead5c0d71560013c360b5671f0822a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008199
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
11de5157
|
2022-11-14T14:48:33
|
|
Capture/Replay: Reset Shaders
We've been resetting Programs correctly, but not Shaders. This hasn't
been a blocker so far, but it has been identified as a performance
problem for traces that compile mid-trace. We're not getting cache
hits because the persistent blob cache is not updated until a shader
is deleted.
Part of the challenge here is ShadersIDs and ProgramIDs share a
ResourceIDType, so separating them requires a bit more tracking.
To fix, start tracking which ShaderProgramIDs are actually
shaders and emit the correct glDelete* command.
Test: diablo_immortal MEC
Bug: angleproject:7823
Change-Id: I934f6eee243ab9681dca5fdebdad33ba31457cf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029226
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
494640e5
|
2022-11-18T12:02:28
|
|
Capture/Replay: Make secondary contexts current during MEC
When replaying, the context is made current at the beginning of
the context setup function, and is still current when we hot the
validation point at the end of the setup function. When a context
is current is has a valid default framebuffer, and hence, during a
replay of the trace the context serialization will contain this
framebuffer. However, during MEC the secondary contexts were not made
current during capture, and hence they dind't have a default
framebuffer which resulted in a validation error.
Therefore, make the secondary contexts current when they are captured
during MEC to make sure we also capture the default framebuffer.
Bug: angleproject:7812
Change-Id: Iaccc4150e8a71a02286e772882fb150bef1d82a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037982
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
27727e50
|
2022-11-21T00:00:00
|
|
Fix ProvokingVertex typos
Aligned the parameter name with the upstream specs
Moved ValidateProvokingVertexANGLE to validationESEXT.cpp
Bug: angleproject:2829
Change-Id: I820a90c20ef0a1873640c933b1de52526cac7e70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4043701
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
2fa255da
|
2022-11-09T16:44:02
|
|
FrameCapture: Don't capture trailing zeros in shader strings.
This prevents C build errors like the following when
applications provide incorrect shader string lengths:
error: null character(s) preserved in string literal
Bug: angleproject:7402
Change-Id: Iac7bab58533d152c4b6ed525f0cbcbcb8a7c35ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4020417
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
66fda678
|
2022-11-14T11:10:54
|
|
Capture/Replay: Delete buffer after test support for coherent
The buffer created to test coherent and persistzent mapping is
not used later, so it should be deleted.
Since this buffer is created and deleted before any VAO is created,
we also have to check whether a VAO exists before the buffer may
be detached from it.
Bug: angleproject:7814
Change-Id: I875f845e592325093dd90b48ba9cd3c7228fad47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023047
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e99e40c9
|
2022-10-11T12:27:18
|
|
FrameCapture: Implement shadow memory for coherent buffers.
On certain devices like the Pixel 6 it is not possible to mprotect
Vulkan allocated memory required for coherent buffer tracking.
To overcome this limitation implement a shadow memory for coherent
buffers when running FrameCapture that is exposed to the app and
syncronized with the Vulkan memory and can be mprotected for coherent
buffer tracking.
Add a test to determine whether memory protection can be used directly
or will require shadow memory. Run this test only on build
configurations with assertions enabled.
Determine the requirement of shadow memory through a deny list of
device manufacturers and models, which is checked against ANGLE's
SystemInfo.
Add ANGLE_CAPTURE_FORCE_SHADOW environment setting and Android
equivalent to force enable shadow memory.
Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*/ES3_Vulkan"
Bug: angleproject:7402
Change-Id: I74b7930259d3bc1846ef96fffa782f8bc553b043
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3945018
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
335b5aba
|
2022-11-07T09:28:10
|
|
Capture/Replay: Make CaptureMidExecutionSetup param constant
There is no need for for the context parameter to be non-constant.
Bug: angleproject:7805
Change-Id: I1d998cf40f61a977ebce6d1160a859e082d99688
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008198
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
109604b8
|
2022-11-07T09:26:05
|
|
Capture/Replay: remove unused context param from scanSetupCalls
Bug: angleproject:7805
Change-Id: I4e00876ad6174c15aaa9503cf9eeaa6ea041c2a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4004416
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9bda9a79
|
2022-10-22T22:05:11
|
|
Add Store Ops to pixel local storage
Browsers will need the ability to pre-empt pixel local storage, which
means every plane will need a backing store to dump to. Store Ops allow
the app to still avoid memory transactions at the end of PLS even if
their plane has a backing texture.
Bug: angleproject:7279
Change-Id: I3a3efa21773f87c03cd346a996e3c638028c68ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3974652
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
7fa69511
|
2022-11-04T10:10:05
|
|
FrameCapture: Skip glGetActiveUniformBlockName calls.
Since moving to plain C traces removed references to uniform block
indices, this call should also be part of the related skip list.
This fixes capturing traces using the call an not hitting UNREACHABLE
when handling TUniformBlockIndex.
Bug: angleproject:7731
Bug: angleproject:7402
Change-Id: I510aceaa0965c2469367212784b504ea251a2541
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003222
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
3605b399
|
2022-10-20T17:00:02
|
|
Move PLS clear values back into context state
The API that required packing raw data into a buffer was un-ergonomic
for developers and difficult to implement for WebGL vendors.
Bug: angleproject:7279
Change-Id: If7c98908c285462c5775e8e2d8811883be139f64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3972376
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
27561f04
|
2022-10-30T09:38:00
|
|
Capture/Replay: Emit always gContextMap2 when capturing traces
Bug: angleproject:7800
Change-Id: I12fc39d709527865a9b248a00c95d281c4e4d743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993317
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ce62d52f
|
2022-10-27T18:41:11
|
|
Fix Mid Execution Capture for External Texture
How we capture eglCreateImage and eglCreateImageKHR
have changed recently. Fix the code that recreate
eglCreateImageKHR calls for external texture type
in Mid Execution Capture.
Bug: angleproject:7758
Change-Id: I2bd35ec3349f1d4f1aef1bf7f76ac50d4abca53d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989645
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
dc62b3ee
|
2022-10-10T21:00:16
|
|
Capture/Replay: Add trace interpreter.
Also adds a self-test using the retrace script.
Bug: angleproject:7752
Change-Id: I1985b47250bef99726d2ca2d90bef859208e357e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3965128
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
06ecc918
|
2022-10-10T20:59:38
|
|
Capture/Replay: Optionally emit C sources.
This adds an option that controls if we can write out simplified C
replays. Once the work is finished we can remove the option and
only allow emitting C instead of both C and CPP.
Required emitting multi-line strings differently, as well as
conditionalizing a few other language differences.
Bug: angleproject:7713
Change-Id: I3303134316ed3fc1b4286bcd32961e8f7ecfbb06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953339
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
596c2acf
|
2022-10-20T18:59:04
|
|
FrameCapture: Fix FenceSync for MEC
Follow up to:
https://chromium-review.googlesource.com/c/angle/angle/+/3957164
Test: MEC for Grimvalor
Bug: angleproject:7758
Change-Id: Ia0895e923d9bee41bcfbff48d15bf9aa86e29d17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3969519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6193274a
|
2022-10-10T21:00:12
|
|
Capture/Replay: Redesign in-memory call capture replay.
This will allow the replay to use the call captures returned
by the interpreter's parser.
Bug: angleproject:7752
Change-Id: If1b281d9ce7ccfbdc23bea615e1e2258c8a029f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963367
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
fd45cec3
|
2022-10-10T20:59:58
|
|
Entry Points: Move enum helper to registry_xml.
This will make it accessible to other generators.
Bug: angleproject:7752
Change-Id: I91bc9a4d6c919266ea329f66d271bf881d99d17a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963364
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d25911de
|
2022-10-10T20:59:53
|
|
Capture/Replay: Move trace fixture into util/
This will allow us to cleanly import the fixture headers
outside of libANGLE. We'll need to call into the trace fixture
in the trace interpreter, which will be in util/.
Bug: angleproject:7752
Change-Id: I3438989db8482924272c69e78d7ac5702e510648
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963363
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4bfb749f
|
2022-10-10T20:59:48
|
|
Capture/Replay: Move shared trace code into src/common.
This will let them be accessible to the test harnesses. The
trace tests interpreter will need direct access to the classes
that we move in this CL.
This CL also moves the GLenum utils into the common folder,
where they were already used by some other tests.
Bug: angleproject:7752
Change-Id: I97ad607938ef29bc316f6d40098478e002ea8128
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963362
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
5ec6f8dd
|
2022-10-10T20:59:42
|
|
Capture/Replay: Only inline strings.
This will simplify the trace code and the parsing logic.
Previously we wrote some integer data in the cpp file, e.g.:
const GLenum glDiscardFramebufferEXT_attachments_0[] = {...};
glDiscardFramebufferEXT(..., glDiscardFramebufferEXT_attachments_0);
Bug: angleproject:7731
Change-Id: If7924b1bf231f584f4677a438232bedc7ea9bd69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953338
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
8403e4c5
|
2022-10-10T20:59:29
|
|
EGL: Resource IDs for Surface, Context and EGL Image.
This will make these classes play nicely with resource maps. As these
objects are used in a lot of places, and simplified C can't handle
unordered_map, it's necessary to index the maps by simple packed IDs
in capture/replay code. This indirection will also have increased
safety as we validate EGL resource ID handle values before accessing
the memory directly.
Also hides some of the other EGL capture methods behind helper methods
to simplify the C code and hide assignments and other complex maps.
Bug: angleproject:7758
Change-Id: Ibc7bb56430d3068bd38877c9dfb011979d4ea234
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957164
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
315b07b2
|
2022-10-19T22:06:44
|
|
FrameCapture: Fix UniformBlockBinding
Follow up to:
https://chromium-review.googlesource.com/c/angle/angle/+/3953334
Test: MEC for Grimvalor and Wild Arena Survivors
Bug: angleproject:7731
Change-Id: I2a246c5701aaf42d77fd45487804f0f21562342e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3967870
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bb420af7
|
2022-10-10T20:59:24
|
|
Capture/Replay: Rewrite map buffer calls.
This wraps the map calls into simple helper functions that
hide the return value assignment, which in turn will simplify
C parsing.
Allows us to remove storing the mapped buffer ID in the params.
Bug: angleproject:7731
Change-Id: I756574cc0fa3d63cce4e0103b8f2861d093de186
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953335
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
4f85f862
|
2022-10-10T20:59:19
|
|
Capture/Replay: Remove references to uniform block indexes.
This removes the references in captured traces to the uniform
block index map. Because uniform block indexes use a double
indirection, we store them in an unordered map. Moving to plain
C precludes all uses for templated types, so we need to funnel
the calls through a custom function.
Bug: angleproject:7731
Change-Id: I35ae010b880ee669df09d750d5fb26d3baf907cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3953334
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2265e37b
|
2022-10-12T09:27:16
|
|
Capture/Replay: Auto-generate EGL capture code.
Replaces the custom code in the EGL stubs. Skips a few "Get"
entry points because this CL doesn't implement pointer capture
like we do for all the GL entry points.
Includes a new state in the AttributeMap that indicates which
type of attribute values we used when initializing the map.
Bug: angleproject:4035
Change-Id: I272eac5e4068602ce710ef66c9a1dce5387943a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949911
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
7c4dc253
|
2022-10-12T08:38:46
|
|
Capture/Replay: Clean up EGL capture.
This switches the EGL capture types to ANGLE-casted pointers since
that's what we receive in the capture layer. Note that even if the
capture layer were used as a pure layer, not an EGL implementation,
we'd still have these types for state tracking.
This also prefixes each EGL class in the entry points with the egl
namespace for consistency and for simplifying the ParamType code.
Required changing to non-const gl::Context * in a few places. Also
changes the gSurfaceMap to be indexed by the raw pointer value,
which cleans up the code somewhat.
Bug: angleproject:4035
Change-Id: Id800c1ba25e5819ac7ea1df8aab806bc393fe192
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3949910
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c22f091d
|
2022-09-29T18:58:33
|
|
Replace Hard-Coded egl image attribs
This change is adapted from https://crrev.com/c/3838866
Added two hash maps to track below information:
EGLImage* --> EGLint* attrib
TextureID --> EGLImage*
During the CaptureShareGroupMidExecutionSetup,
when we iterate through all the textures the app created,
if the texture is bound to External target,
we will refer to the hash map TextureID --> EGLImage*
to find the EGLImage* pointer, and then use the result
as the key to refer to the other hash map
EGLImage* --> EGLint* attrib to find the attributes used
to create that EGLImage object. We can then use the
attributes to populate eglCreateImage or eglCreateImageKHR
calls in the trace calls.
Bug: angleproject:7570
Change-Id: I729de4ddea59242ccbe6243e036451f290545185
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928212
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
135022e4
|
2022-10-11T00:03:11
|
|
Vulkan: Create robust pipelines based on context state
Previously, pipelines were made robust based on whether any context in
the share group has so far been made robust. This means that pipelines
created on non-robust contexts would still be compiled as robust.
Inefficiency aside, this was buggy because robustness was not part of
the pipeline cache key, so if a pipeline was created as non-robust
first, then recreated in a robust context, it would reuse the non-robust
variant.
With VK_EXT_pipeline_protected_access, a similar situation arises for
context protected-ness. However, it is incorrect in that case to create
pipelines as protected unnecessarily.
This change makes pipeline robustness a part of the pipeline cache key,
in preparation for protectedness to be added similarly. Compute
programs may now generate multiple pipelines as a result too.
Bug: angleproject:7629
Change-Id: Ie95f10eff878f8c8b221c1018da44385c7aad15e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3943534
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
f2785e41
|
2022-10-10T08:21:36
|
|
capture/replay: validate after resetting unpack alignment
Otherwise validation will fail, because we try to validate
the temporary set alignment against the alignment that
would be active without MEC.
Bug: angleproject:7564
Bug: angleproject:7180
Change-Id: I40cac84be122c779b9beba39f155567f9edbee75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936631
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
5bafe449
|
2022-10-05T20:09:23
|
|
FrameCapture: Create default context reset calls
Add support for emitting default reset calls for some entrypoints
when recording a capture from the beginning.
Test: Lineage 2 Revolution MEC
Bug: angleproject:7741
Change-Id: I8e4e1184f3e3b68527a65283c459a43d135e95b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3938442
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ad2fbc7d
|
2022-10-07T14:35:49
|
|
Roll third_party/OpenGL-Registry/src/ 11d7b7bae..5bae8738b (5 commits)
Also removes our copy of gl.xml now that upstream patches are merged.
https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+log/11d7b7baebfc..5bae8738b23d
$ git log 11d7b7bae..5bae8738b --date=short --no-merges --format='%ad %ae %s'
2022-09-29 sunserega2 [xml] Fixes for defined but unused enum groups (#520)
2022-09-29 julius_hager Added group PixelType to multiple-enums (#529)
2022-09-29 gnl021 EXT_separate_depth_stencil: Explicit unsupported cases (#531)
2022-09-29 jmadill Add enum groups for ANGLE use cases. (#538)
2022-09-29 syoussefi Clarify that PLS doesn't allow leak from outside framebuffer (#540)
Created with:
roll-dep third_party/OpenGL-Registry/src
Bug: angleproject:6461
Change-Id: I6b7d8471144babe5cdd465c64574804f85c9e4f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937049
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
63c54da3
|
2022-09-29T22:32:54
|
|
FrameCapture: Fix default uniform sampler base loc
Follow up to:
https://chromium-review.googlesource.com/c/angle/angle/+/3928253
Samplers are handled specially above the previous changes.
Test: Darkness Rises MEC
Bug: angleproject:7719
Bug: angleproject:7720
Change-Id: I72848eaced4da379fe724aebf61a75616f614e1c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929328
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
6dc30c00
|
2022-09-29T08:41:53
|
|
FrameCapture: Reset default uniform arrays
If an application has updated a single uniform in the middle of an
array, we need to emit the Reset call for the entire array. We don't
track Reset calls per individual location in an array.
Test: Life is Strange MEC
Bug: angleproject:7711
Change-Id: Idec991ad060eb5e12272713a58aa921c5912f1cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928253
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e82eaff9
|
2022-09-22T16:01:06
|
|
Stubs for paletted images
Bug: angleproject:7599
Change-Id: Idb49f8ba07ebd3b6cad461fa9e90b856af666183
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909396
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
8b2aff28
|
2022-09-12T10:27:28
|
|
Implement the ANGLE_shader_pixel_local_storage API
Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and
adds thorough validation and testing as outlined in the spec. This
feature is still implemented entirely in the frontend, but the extension
now works end-to-end with a passing test suite, and can be used
externally. Over time we can start gradually moving the implementation
into backends as appropriate.
Bug: angleproject:7279
Bug: angleproject:7647
Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
dbb9f38d
|
2022-09-13T12:08:02
|
|
FrameCapture: Capture Texture Environment in MEC.
Persist the state of glTexEnv in mid-execution capture
for OpenGL ES 1.X contexts.
Implement equality operators overload
for the TextureEnvironmentParameters struct.
Test: angle_end2end_tests --gtest_filter="TextureEnvTest.*"
Bug: angleproject:7652
Change-Id: I131eec5c838c9e434e135bd3c6b050fca44c3231
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3892015
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9393fd54
|
2022-09-13T20:06:57
|
|
FrameCapture: Ignore GetActiveAttrib
Similar to how we skip glGetActiveUniform, we also need to skip
glGetActiveAttrib. Attribute active status varies based on the
underlying shader compiler. More aggresive stacks can find ways to
eliminate them. If the application asks about attributes above
GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be
non-portable.
Tested with Eve Echoes and Monster Hunter Stories.
Also added an end2end test that showcases a way apps ask about
attributes, verified we can capture and replay it across multiple
vendors now.
Test: VertexAttributeTestES3.UnusedAttribsMEC
Bug: angleproject:7215
Bug: angleproject:7557
Bug: angleproject:7402
Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8581e5fa
|
2022-08-05T14:52:22
|
|
FrameCapture: Improve renderbuffer reset
Add support for recording calls to regenerate renderbuffers, and
track when renderbuffers are deleted.
Test: Monster Hunter Stories MEC
Bug: angleproject:7557
Bug: angleproject:4599
Change-Id: Ib32abaaf4b5f4767c5c9ede312a29e7f108bd93d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3815224
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
de73f7cd
|
2022-09-14T22:27:28
|
|
Introduce GL_ANGLE_logic_op
This extension exposes the desktop GL glLogicOp function as a GLES
extension. This is supported by Vulkan through the logicOp feature as
well.
The goal is to directly use this extension in GLES1 emulation where the
backend supports it, avoiding a more costly fallback.
Bug: angleproject:3862
Change-Id: I7ed436cdf401437157ca9724168849b4c819b91b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898310
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
04f46f39
|
2022-09-12T10:15:16
|
|
Reland "Generate stubs for ANGLE_shader_pixel_local_storage"
This is a reland of commit 8208e8a234d05b413d79e7a93b6a428adea41b33
In Take 2 we omit the GLenum groups PixelLocalLoadOpANGLE and
PixelLocalInternalFormatANGLE. We can add these back once the extension
is published and we can update Khronos's gl.xml, or else once we figure
out how to make this work without updating the Khronos gl.xml.
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: I02f42c1cfc685ed95164744108e0c185d3a7fefb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
8c45e3c4
|
2022-09-15T01:07:47
|
|
Revert "Generate stubs for ANGLE_shader_pixel_local_storage"
This reverts commit 8208e8a234d05b413d79e7a93b6a428adea41b33.
Reason for revert: Compile failures
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: Ic9a232f9d722b42e615de3827ce118616f3acc71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897425
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Chris Dalton <chris@rive.app>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chris Dalton <chris@rive.app>
|
|
8208e8a2
|
2022-09-12T10:15:16
|
|
Generate stubs for ANGLE_shader_pixel_local_storage
Bug: angleproject:7279
Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
585d2a9e
|
2022-08-11T16:45:54
|
|
Capture/Replay: Capture the attr locations as set by the program
Setting the attribute location based on the input declaration
results in a discrepancy with MEC when recording the context state,
because if a location was never set explicitely, the captured
context state will hold no attribute location information, but
since calls were recorded to set the default attribute locations,
the context state recorded during replay will contain these extra
entries.
To avoid this, only record the attribute locations that were
explicitely set.
Bug: angleproject:7564
Change-Id: Ib9d6c7b098935d199921e0fe5c0ef985e6187f1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827345
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1cac338a
|
2022-08-30T11:15:16
|
|
FrameCapture: Fix GLES1 vertex array state
This CL restores the check for default state before binding
a vertex array in Setup.
When hooking up reset of Vertex Array state, we inadvertently
started recording glBindVertexArray, even for default state. This
prevented traces from running on GLES1 implementations that don't
support GL_OES_vertex_array_object.
Test: Wayward Souls MEC
Bug: angleproject:7507
Bug: angleproject:7608
Change-Id: I7aea74b7eb66c0e79a04d81c2dce61fa33dde807
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863877
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|