|
97a45a9f
|
2020-10-27T11:30:27
|
|
FrameCapture: Track surface width/height per context
Test: Capture PUBG Mobile
Bug: b/159238311
Bug: b/165824228
Change-Id: I7bbc7a80ade4df6b191cbe62e9badac1066ab246
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2503474
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e94c35a1
|
2020-10-28T09:50:58
|
|
Capture/Replay: Always base replays on frame "1".
No functional change. When we trigger a capture at frame X, the value
of X is not important. Instead we'll record the frames as 1,2,3,etc.
Helps keep the traces more consistent and re-trace the same way as
they are captured.
Bug: angleproject:5134
Change-Id: Icd8654d509423edcc74cd0ef694795a787f5cc05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2500602
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
5a9827d2
|
2020-10-08T13:17:16
|
|
FrameCapture: Move shader and program source to shared cache
These are local copies of source seen earlier in the trace.
Centralize them so they can be tracked across contexts.
Test: PUBG MEC
Bug: b/165824228
Bug: angleproject:4048
Change-Id: If414826b0280c61507812c2fd92706b7f095cc4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462162
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e8305f5
|
2020-10-06T23:16:38
|
|
FrameCapture: Move compressed texture cache to shared location
In support of tracking compressed texture data across multiple
threads and contexts, move our cache to FrameCaptureShared.
Make this accessible only via egl::ShareGroup, which will
ensure unique texture IDs.
Test: Asphalt 8 MEC
Bug: b/150484427
Bug: angleproject:4048
Change-Id: I4e75b323d7aedc0333ceffba305439e54c4d6ac1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2455266
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
57c6af7d
|
2020-10-04T12:18:29
|
|
Capture/Replay: Fix temp shader ID.
We could mess up capturing Program #1 by using a temp shader ID of 1.
Instead we can use a shader ID that isn't used in the application.
Noticed when capturing from the T-Rex replay.
Bug: angleproject:5134
Change-Id: Ic6fefe9d8cdf327a5ebbb47539b2e11161a4b13c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449159
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
34120d07
|
2020-08-27T15:29:04
|
|
Capture/Replay: Track groups of strings
When string counters were added, it accidentally broke
transform feedback varyings.
All the strings were combined, resulting in:
const char *glTransformFeedbackVaryings_varyings_0[] = {
R"(out_Posout_Aout_Bout_C)"
};
Instead, generate the counter for the entire group.
This CL results in:
const char *glTransformFeedbackVaryings_varyings_0[] = {
R"(out_Pos)",
R"(out_A)",
R"(out_B)",
R"(out_C)",
};
Test: Manhattan MEC works again
Bug: angleproject:4941
Change-Id: Ie605395942c9105ba234009989f41a2a1cd8c53e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2381565
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a2c2a910
|
2020-08-20T11:41:50
|
|
Capture/Replay: Fixes for PUBG:Mobile
This CL does the following:
* Skip calls from KHR_debug and EXT_debug_marker
* Update an assert in setDeletedBuffer
* Warn when capturing an invalid call
Test: Capture first 2000 frames of PUBG:Mobile
Bug: b/165824228
Bug: angleproject:4048
Change-Id: Ib7fa616a1b5c8ed7c83daaaf0779b41acd31a7f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2366828
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a9b199b0
|
2020-08-13T17:37:27
|
|
Capture/Replay: Add ability to override entry points
We don't support populating a texture from an EGLImage, but
this feature is in use by games. Instead, populate the texture
with null data. In the future, improve this by reading back the
data.
Test: Capture and play back first 1200 frames of COD.
Bug: b/164426913
Bug: angleproject:4048
Change-Id: Ic8c6bdf3c359c89e647c28b8c57b7218bdf05b15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2355705
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
a7cbb3f0
|
2020-08-10T09:53:54
|
|
Capture/Replay: Allow starting capture at an unknown frame
This CL adds a new way to set the start frame of a capture.
It adds a new environment variable called ANGLE_CAPTURE_TRIGGER
that, when set, will be used instead of frame start and end.
By setting ANGLE_CAPTURE_TRIGGER to a non-zero value, ANGLE will
capture that many frames when the value changes. For example,
on Android, we can set it with:
adb shell setprop debug.angle.capture.trigger 20
When we reach the target content, set the value back to zero:
adb shell setprop debug.angle.capture.trigger 0
and ANGLE will start capturing 20 frames.
Currently only hooked up for Android, but should be possible to
support on other platforms.
Test: Capture application frames using trigger
Bug: angleproject:4949
Change-Id: I469ef5c48feb78c85b8cda2fefd5df59e495bbe2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2347858
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
a798819c
|
2020-08-05T11:38:10
|
|
Capture/Replay: Dedup shaders to reduce capture size
This CL will track whether a string has already been declared and
written in the output file. This cuts the shader string count in NBA2K20
trace by 85%, eliminating about 300K lines of code from setup.
Test: Compile and link NBA2K20 trace for Android
Bug: b/160014453
Bug: angleproject:4048
Change-Id: Id854b3314644c1e4aae41cd6bb4157f92e9b1945
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2339852
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ffb31229
|
2020-07-22T12:02:54
|
|
Capture/Replay: Enable capturing slingshot scenes
Implemented parameter capture functions for:
glGetActiveUniformsiv
glGetActiveUniformBlockName
glGetActiveUniformBlockiv
Added a check for bound unused locations when capturing glLinkProgram
Changed CaptureGetParameter to always request a gReadBuffer allocation
of the maximum reported possible array size needed to query
GL_COMPRESSED_TEXTURE_FORMATS. Recording the value on the capturing
device would previously have buffer overflow issues when the replaying
the capture on a device with more formats available.
Changed VertexAttribType::UnsignedInt2101010's string to reflect the
correct type
Bug: angleproject:4834
Change-Id: Icd1ff404369ae9f18cad7cd4f56fbcccc89e7e98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2306735
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
dd4723e3
|
2020-06-23T11:08:43
|
|
Capture/Replay: More ES 3.1 support
This CL adds the following changes:
* Support variable block sizes for ASTC
* Support glMapBuffer
* Additional param captures
Test: Capture from beginning of Asphalt 8 and Aztec Ruins
Bug: b/150484427
Bug: b/160808198
Change-Id: Ic1041011c3f51c32dbf7bf7105f41dffb9460b87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2264832
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e5c18475
|
2020-07-06T09:50:49
|
|
Multi-frames serialization + comparision for capture replay test
Changes how context states are serialized during capture run. Now,
context states are serialized after each frame until the end frame
is reached, or context is destroyed.
Adds an api to the trace files to query serialization results of
multiple frames. Makes change to CaptureReplayTest to serialize
multiple frames then compares the serialization results with the ones
retrieved from said api.
Adds to capture replay the ability to produce working, compilable trace
files even when end frame is not reached.
Adds to the generated trace files config information and makes
CaptureReplayTest utilize said config information to reproduce the exact
environment of the captured application.
Bug: angleproject:4817
Change-Id: Ie3d487af2bacf349dc3ff6f6b1b5f89e1169dc84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2282885
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
dce37b7d
|
2020-06-21T22:27:06
|
|
Serialize framebuffers + compare contexts for CaptureReplayTests
Adds to frame capture the ability to serialize a frame's pre-swap
GL state and store it in the binary data file
Adds to CaptureReplayTests the ability to compare its serialized GL
state with the serialized state pulled from the binary data file
Adds a serialization module that serializes framebuffers' GL states
and the contents of their color attachments
Adds checks to automation script so that it would skips tests that
do not produce the expected trace files
Adds exception handling to automation script so that it will not crash
when a replay build crashes
Bug: angleproject:4779
Change-Id: I40a02e018073749e79f0ddbfd3d4065745548f46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2258295
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1c484343
|
2020-06-17T10:10:16
|
|
Capture/Replay: Track the draw surface width/height
In order for captures to replay correctly, track the original
width and height of the draw surface, as provided by eglMakeCurrent.
Bug: b/159238311
Test: angle_perftests
Change-Id: Ic8697abaca7dbdb94dabf34b872f69faf17b0b4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250861
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Manh Nguyen <nguyenmh@google.com>
|
|
46594c96
|
2020-06-11T15:20:10
|
|
Fill in missing GL methods for TextureTest
Bug: angleproject:4732
Change-Id: Ic475e29b6ca641029243712115d6a578a48c85f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241624
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
22c95964
|
2020-06-04T17:00:52
|
|
Capture/Replay: Support buffer map/unmap state during MEC
Angry Birds 2 is the first app we've targeted that maps buffers
across frame boundaries. This exposed some gaps and assumptions
we had in the code, and required additional support for MEC.
To support this, we track each buffer's starting map/unmap state
and how it changes throughout the trace. Then during Reset, we emit
calls to return them to the correct state:
void ResetContext3Replay()
{
...
glBindBuffer(GL_ARRAY_BUFFER, gBufferMap[546]);
glUnmapBuffer(GL_ARRAY_BUFFER);
glBindBuffer(GL_ARRAY_BUFFER, gBufferMap[550]);
gMappedBufferData[gBufferMap[550]] =
glMapBufferRange(GL_ARRAY_BUFFER, 0, 8192, GL_MAP_WRITE_BIT);
...
}
Test: MEC of Angry Birds 2
Bug: angleproject:4599
Bug: b/157672184
Change-Id: I5c73ca4d4eba7f1ecea01467ae887bae7f2d27fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231803
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
66ec30a7
|
2020-06-03T10:45:34
|
|
Fix ExceedMaxVertexAtomicCounters test crash with FrameCapture
The AtomicCounterBufferTest31.ExceedMaxVertexAtomicCounters crash is
because when program linking fails, as it should for this test, the
code tries to get the info log by calling glGetProgramInfoLog. The
FrameCapture capturing this call currently tries to make sure that the
program is linked. However, glGetProgramInfoLog does not require the
program to be linked to execute.
Bug: angleproject:4679
Change-Id: Ibbb87d6437152e9eb225e411100b1729e56e4c4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227857
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
|
|
06ce17e0
|
2020-04-27T09:05:54
|
|
Capture/Replay: Reset buffers on replay loop
This CL adds infrastructure for tracking whether resources need to be
reset when looping back to the beginning of the frame sequence.
A new function is generated on the last frame: ResetContext*Replay().
It will contain calls to gen, delete, and restore contents of
resources. This CL only supports Buffer resets.
Bug: b/152512564
Bug: angleproject:3662
Bug: angleproject:4599
Change-Id: I46672dd70dcb997967e3cc0897308144f2582e21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168121
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
57d95828
|
2020-04-30T17:35:50
|
|
Revert "Add type for attribute locations."
This reverts commit 9349c14344b2d1fd6bc357063b602bc2626c140f
and commit d43b057435e6c9e3194dd20627681ffca0c0808e.
It's no longer needed after we bind attribute locations before link.
Original CL message:
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ic510159d4d1982eff41560503cabf983a1be0381
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174076
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9349c143
|
2020-04-29T16:36:17
|
|
Add type for attribute locations.
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ibf11bcb8669d27265ea376494a2e3124825cf3be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171933
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b5992a55
|
2020-04-21T07:58:47
|
|
Add capture support for FenceSync
This allows us to capture Angry Birds 2 traces.
Bug: b/153652100
Change-Id: I99a47f9e41a84218b3bb3d9740df4bb7fc2a01fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2144763
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
84323449
|
2020-03-30T12:40:12
|
|
Capture/Replay: Track buffer contents by ID
This CL updates how we restore buffer data after the client has
unmapped it. We do this because we have no visibility into
whether the buffer has been changed while mapped.
Tracking a buffer map/unmap pairing by target as we have been is
insufficient as apps can bind multiple buffers in succession before
rebinding and unmapping selectively.
To avoid this, we change our buffer data resource tracking to use
the buffer ID instead of target.
Also, since the app can map multiple buffers, we need to track the
active buffer during MapBufferRange so we can use it during replay
to restore from the appropriate handle. This is a deferred
operation, so we store it as a new member of the ParamBuffer to
preserve the information.
Test: Temple Run capture and replay
Bug: b:152512564
Bug: angleproject:3662
Change-Id: I1d3f594b496e5675e814b82acb4a238f845e26d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128328
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
06f4f3e1
|
2020-03-30T10:57:06
|
|
Capture/Replay: Disable binary formats when FrameCapture is enabled
Rather than capture and replay a format that is not cross platform,
limit the number of exposed binary formats to zero when FrameCapture
is enabled.
Test: Temple Run capture and replay
Bug: b:152512564
Bug: angleproject:3662
Change-Id: I4a7bc5a353d2cdb1dceb1276a3c61bfbb74dc2f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128327
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
f2bee304
|
2020-03-25T22:41:32
|
|
Capture/Replay: Implement more GLES entrypoints
Tested with several apps that can't be captured otherwise.
Bug: angleproject:3611
Change-Id: I2ad18c3bfcab48b0b385b2a868f57369c292b602
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1998838
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
07467b4a
|
2020-03-20T10:40:56
|
|
Remove GL_CHROMIUM_path_rendering
Bug: chromium:1063193
Bug: angleproject:4270
Change-Id: I35b24b7d8d892181955e49dd2495655bc57cb0df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112275
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7e453a25
|
2020-03-15T22:11:03
|
|
Capture/Replay: Use zlib to compress data files.
Gives about a 2-3x reduced data file size. Should help reduce the time
we spent transferring trace files on Android.
This feature is implemented as a parameter to the capture/replay tool.
This keeps backwards compatiblity if we ever need to integrate a cpp
replay into an environment that doesn't have access to zlib for
decompression.
We'll need to update the traces to take advantage of the compression.
Bug: angleproject:4484
Change-Id: Id7994efe3c0d529b85fa7e7f1b00444e630dd2cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104555
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d24752e6
|
2020-03-15T21:34:10
|
|
Capture/Replay: Write to single binary data file.
Previously the tool would save to a separate file for every frame and
one additional file for the setup function. Frames without binary data
would not get an "angledata" binary file.
Using a single file has a few advantages:
- makes it simpler to track the data dependencies in GN
- should be easier to compress and decompress for speed up transfers
- no need to wonder if we have frames with missing data files
- less overhead reading from the HDD since the whole trace is buffered
We might need to worry about extemely huge memory use cases. For now
buffering the whole file into memory on startup is simple and fast.
Also makes the binary data loader function more robust.
Bug: angleproject:4484
Change-Id: Ia74fb0bc65200adf7a21c3143f98aa4da86457b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104554
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
14a2983f
|
2020-02-20T17:14:02
|
|
Trace/Replay: Add uniform locations map.
This portability feature allows a single T-Rex capture done on Vulkan
to work seamlessly on the ANGLE GL back-end and the WGL-loaded NVIDIA
OpenGL driver.
Previously the uniform locations would not be consistent between ANGLE
and a native driver. And incompatiblities would trigger error messages
between ANGLE back-ends.
Will allow us to compare ANGLE performance vs the native driver using a
capture.
Example captured calls:
glLinkProgram(gShaderProgramMap[3]);
UpdateUniformLocation(gShaderProgramMap[3], "s_texture", 0);
Bug: angleproject:4411
Change-Id: I5ddc76d75e15a9291b351e2aab94af4881f6ef47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068121
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
263232ef
|
2020-02-23T15:02:16
|
|
Trace/Replay: Pass CallCapture to parameter replay writer.
This will allow more advanced processing when writing the cpp replay
for a specific parmeter. For the uniform locations map it'll allow us
to look up the specified program from the call parameters.
Bug: angleproject:4411
Change-Id: I4e91b3e4c6775c42140d00b2d155344b553a7404
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067629
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a18f4145
|
2020-02-19T22:42:12
|
|
Trace/Replay: Add uniform location type.
This is a large refactor that replaces instances of "GLint location"
for uniform locations with "UniformLocation location". This boxed type
is similar to the ResourceID types that we use to capture resource IDs
more easily. Eventually this will give us a more portable replay.
Bug: angleproject:4411
Change-Id: I848e861c3956d95b6b953f57f8b6a2c4a676766f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066117
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
94c19142
|
2020-02-12T19:50:38
|
|
Capture/Replay: Track and restore mapped buffer data
When a buffer is mapped writable by the host, we need to
track its final contents, and then restore them during replay.
This implementation just blindly captures the whole mapped
range if writable, and can be optimized in the future.
This change renders the moving billboards in Manhattan correctly.
Test: First 500 frames of Manhattan and TRex
Bug: angleproject:4091
Change-Id: I5f7775235f569efb264bde679fd3045d7012c622
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2053512
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
0d224cce
|
2020-02-05T11:00:59
|
|
Capture/Replay: Add 2DArray and 3D texture support for MEC
This also includes support for compressed formats, which
required a small refactor to streamline the code, since all
of the entrypoints have slightly different parameter lists
for imageSize and data.
Bug: angleproject:3662
Test: Working through Manhattan frames 5-10, TRex still works
Change-Id: I007ad9366934fff773f367ecb6387bc8b0d13aa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2039530
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4933d9d2
|
2020-01-16T13:16:45
|
|
Capture/Replay: Track compressed texture data
Rather than try to read back compressed data using ANGLE_get_image
(which does not yet support compressed formats), track a shadow copy
of the compressed image and store it like client data.
Test: Mid-execution capture and replay of TRex frames using ETC1
Bug: angleproject:4036
Change-Id: Id15be60f7444cc2e1356e76ff18069c42e552663
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2015818
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e580ca8b
|
2020-01-29T16:21:05
|
|
Capture/Replay: Implement Manhattan ES 3.0 support
Populate the entrypoints required to get gfxBench
Manhattan scene to capture and replay correctly from
the beginning of the trace.
Test: Captured and replayed Manhattan frames 0-500 on
both Windows and Linux (Nvidia GPUs)
Bug: angleproject:4091
Change-Id: I5447a6835e55e944772d37219f2bd414606f0a70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2029216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1d77542f
|
2019-12-03T15:54:41
|
|
Add flag to label captures
Add an optional parameter (ANGLE_CAPTURE_LABEL) to
ANGLE frame capture that tags files and functions
uniquely, allowing multiple frame captures to be
replayed by a test harness.
Example:
ANGLE_CAPTURE_LABEL=foo
Results in filenames like this:
foo_capture_context1.cpp
foo_capture_context1.h
foo_capture_context1_files.txt
foo_capture_context1_frame000.angledata
foo_capture_context1_frame000.cpp
foo_capture_context1_frame001.angledata
foo_capture_context1_frame001.cpp
...
Functions wrapped in namespaces like this:
namespace foo
{
void ReplayContext1Frame0();
void ReplayContext1Frame1();
}
For use like this:
foo::SetupContext1Replay();
for (...)
{
foo::ReplayContext1Frame(i);
}
Bug: angleproject:3630
Change-Id: Ibe27dc4d40a36606ee40678a9e4d43b5a4baf976
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1949603
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e167f76b
|
2019-11-06T16:51:55
|
|
Capture/Replay: Pass gl::State to capture functions.
This replaces passing gl::Context. Using a gl::State directly will more
easily let the mid-execution replay code pass a mocked gl::State
instead of having to modify the real underlying Context state. For
example when capturing pixel pack and unpack parameters the states
could not be overridden without changing the gl::Context itself.
Similarly when capturing client side data.
Also moves a query parameter info function into queryutils so it can be
accessible to the State-based capture.
Refactoring change only.
Bug: angleproject:3611
Change-Id: I3c064001cfa83ebbb67a2b8fc8b6180491edd215
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1899728
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c7208f9
|
2019-10-31T14:33:27
|
|
Capture/Replay: Implement mid-execution replay.
Mid-execution replay starts the replay from a specific start frame
instead of frame 0. Integration tests will then run between the start
and end frames. This lets us make much smaller reproduction cases from
large benchmarks or applications.
We implement mid-execution replay via a cpp "Setup" function. The
replay test will run the setup function before the starting frame. Test
execution proceeds normally after setup.
Currently we do not implement mid-execution capture. We run capture on
all frames. Including frames before the start frame. We do this to
intercept compiled shaders and programs for easier caching. This could
be changed in the future to also start capture mid-execution. Mid-
execution capture might require using ProgramBinary calls to capture
shader and program data.
Many captures are unimplemented. Several comments indicate missing
functionality. There's a lot we can add as we explore replaying more
complex applications and higher GL versions. We will also need some
kind of state reset functionality so we can run the replay in a loop.
Bug: angleproject:3611
Change-Id: I51841fc1a64e3622c34e49c85ed8919a9a7c0b20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1689329
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b68a279c
|
2019-10-31T17:47:59
|
|
Capture/Replay: Capture GetFloatv params.
Was used in the mip map ANGLE sample. Add a new helper function that we
can use for multiple captures.
Bug: angleproject:3611
Change-Id: I430ce0089df4ce81ba2ca2ad64c0c206b59397b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894144
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
f251995d
|
2019-10-24T12:42:36
|
|
Capture/Replay: Write capture index file.
This file will be used with multi-frame captures to share common code.
Common code is global state, resource maps, and a list of frame replay
functions. This should make converting a CPP replay into a functional
test quite a bit simpler. The replay files will now be something like:
angle_capture_context1.cpp
angle_capture_context1.h
angle_capture_context1_frame000.cpp
angle_capture_context1_frame001.cpp
... etc
Also adds a template for adding a capture/replay sample. Instructions
are located in samples/BUILD.gn and docs in doc/CaptureAndReplay.md.
Bug: angleproject:3611
Change-Id: I437b338fd84689d670a7d9e3e219d9334de25fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869543
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
a2e66a5e
|
2019-10-24T12:42:36
|
|
Capture/Replay: Introduce environment options and docs.
Introduces a few ways of controlling capture via:
* `ANGLE_CAPTURE_ENABLED`:
Can be set to "0" to disable capture entirely.
* `ANGLE_CAPTURE_OUT_DIR`:
Can specify an alternate directory than the CWD.
* `ANGLE_CAPTURE_FRAME_END`:
This variable can override the default of 10 frame to capture.
Also adds a simple usage guide document.
Bug: angleproject:3611
Change-Id: I49d32d5bae2c490dcbeb0f1ce3c6038e433adfaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869542
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
34148207
|
2019-09-16T11:30:39
|
|
Capture/Replay: Encapsulate cpp replay.
This moves the cpp replay logic out of the FrameCapture class into pure
c helper functions. This is a bit cleaner and could help us eventually
move to writing out the cpp replay on a worker thread.
Bug: angleproject:3611
Change-Id: I6a96c1ef1595a6203d44c1d4d9d793205701dd24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1804879
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
01dfe404
|
2019-09-04T12:08:25
|
|
Capture/Replay: Use resource ID maps in cpp replay.
Introduces a new enum for resource ID types. This is used in auto-
generated code to convert ParamType to resource ID map types.
Also implements a lot of new parameter captures for gen/delete calls.
Bug: angleproject:3611
Change-Id: I26cca1df88d1783d9830c89438c99f7593a70ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1784059
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
2e16f639
|
2019-09-16T18:37:00
|
|
Capture/Replay: Refactor cpp replay param writes.
This makes a few more methods use static helpers. Introduces a
DataCounters helper class that can manage tracking the names for
particular local data members in the cpp replay.
Prepares for a larger refactor to support resource ID maps.
Bug: angleproject:3611
Change-Id: I25b4cc80cc3aa140c1cd15d9012c9542ba0cfc87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1802743
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c3f7873b
|
2019-08-30T15:00:52
|
|
Use TransformFeedbackID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Ib8fbec89f28645790df98a184f47303f4a8d64c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779343
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
feb8507f
|
2019-09-03T13:22:04
|
|
Use VertexArrayID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I0454533eff13218a6aa1e1672ffcd0e76aedb399
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769716
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9deb3bfa
|
2019-08-23T15:57:50
|
|
Use MemoryObjectID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I7ca86089fe1e72c136c0fc1947ad43cecee122eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769544
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0640bc3
|
2019-08-23T10:26:25
|
|
Use SemaphoreID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Iabaae60ed7cbbe423bf768c506099d26cf0dedcf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768978
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2c5d48a6
|
2019-08-23T09:28:35
|
|
Use FramebufferID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I5e1b5f1903b05a91468379e00ec130802315cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769039
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
120b61d3
|
2019-08-21T12:51:58
|
|
Use ShaderProgramID in place of GLuint handles
Bug: angleproject:3804
Change-Id: I5dc640004c2cc054c53261e8e939b6a9f5fc23bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762363
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
c43852aa
|
2019-08-27T13:38:29
|
|
Various fixes for frame capture
1. Use contextId as identifier to separate captures for different GL
context.
2. Fix write string params. In order to keep consistent between replay
and capture, changes have been made to store C style string (with '\0'
suffix) for string param capture, which breaks cpp frame capture. This
change fixes it.
3. On Android device, it use a custom path to save captures and it
breaks the loadBinaryData(). Here differentiate file name and file path
to fix it.
Bug: angleproject:3804
Change-Id: I378cf26697d15f0c1a8cf7afea2b758f5c58498b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1774469
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
378c1881
|
2019-08-22T16:55:39
|
|
Use ProgramPipelineID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Ice37a4b3d43008e5bcd5d0a7528514d5bb504066
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767322
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
7b5744f4
|
2019-08-22T16:26:35
|
|
Use PathID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Ibadfc2c33e4af1cca22caa1dbe96ac48a4a85ffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1766822
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
814a0a1b
|
2019-08-22T11:50:43
|
|
Use QueryID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I921bbe7f67c025ab2b624fe14530c04ac17346f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765889
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
05114fe7
|
2019-08-09T15:45:56
|
|
Support in memory frame capture replay
Enable FrameCapture to dispatch its calls back to Context and replay
them.
Bug: angleproject:3785
Change-Id: I580eff1fca3e39414a9b45bb296e0f3866ea33bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1747055
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
962503e7
|
2019-08-21T13:18:30
|
|
Use FenceNVID in place of GLuint handles
Bug: angleproject:3804
Change-Id: I29c16e17c3a426efbbf0b60670581962ee505f3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764298
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ee79e2ff
|
2019-08-20T11:28:36
|
|
Use SamplerID in place of GLuint handles
Update all Sampler handles to type SamplerID, preparing for midframe
capture of sampler.
Bug: angleproject:3804
Change-Id: I9337919f97d61e28718987612d642c569b90246a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761780
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
609d45f6
|
2019-08-14T15:16:49
|
|
Capture/Replay: Use Renderbuffer ID map.
This should give a more robust replay. Devices are not guaranteed to
return IDs in the same order in each instance of a program. Also for
mid-execution capture we often won't have the same resources available.
Once the Renderbuffer implementation lands we can switch to using more
resource maps for different types of resources.
Bug: angleproject:3611
Change-Id: I84a5b84856be3e8eb13e424e1990a39553adb82e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1719066
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2ab08edc
|
2019-08-12T16:20:21
|
|
Use TextureID in place of GLuint handles.
Bug: angleproject:3611
Change-Id: Ie6156e8732b3ca4dc6c4439c059a5481a4dfd250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738753
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9e14a19b
|
2019-08-09T10:03:24
|
|
EVENT trace to print GLenum as string reland
Reland of CL https://chromium-review.googlesource.com/c/angle/angle/+/1737141
Bug: angleproject:3778
Change-Id: I2a43c618de032d6e6286d707fbc88241ad4c19ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1745837
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3b3fe837
|
2019-08-06T17:44:12
|
|
Use BufferID in place of GLuint handles.
Introduces enable_if handling for "FromGL". Avoids the use of any macro
code to handle resource id casting.
Bug: angleproject:3611
Change-Id: I1a6d10c3c9cc6ba0dc072bad1d62c33551f05d87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736127
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
7c7dec01
|
2019-08-06T17:44:11
|
|
Use RenderbufferID in place of GLuint handles.
This will allow frame capture/replay to more easily emulate object
handle manipulation. It also provides a bit of type safety. Also
generalizes ResourceMap to handle non-GLuint IDs.
Bug: angleproject:3611
Change-Id: I174fd260f326e0dbe2aca3f818215c91d82cf48c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706559
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f3dbf0a7
|
2019-07-29T11:31:20
|
|
FrameCapture dump GLenum to enum instead of value
Add functionality to capture GLenum and GLbitfield parameters as enum
names instead of values.
Bug: angleproject:3611
Change-Id: I7ddc21093d44d1480b205563f30d89f82779b1f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724460
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b8c0dc04
|
2019-07-30T17:22:23
|
|
Capture/Replay: Capture entry point enum when possible.
This should save on a few string comparisons. This CL also adds a
helper function that converts from an entry point enum ID to a string
entry point name.
Bug: angleproject:3611
Change-Id: I47434235ca25203ef1d6814897d81afab444a7fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1719065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
af69179c
|
2019-07-30T17:22:22
|
|
Capture/Replay: Capture return values.
This will allow us to record resource IDs as they are created and bound
to OpenGL. This in turn will enable implementing mid-execution capture.
Bug: angleproject:3611
Change-Id: I9f12eb0025d90ad86327cf5181efd831662c2e3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706562
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d43d24bb
|
2019-07-30T17:22:20
|
|
Capture/Replay: Refactor entry points.
This change does two things:
* only call validation functions once per entry point.
* move the capture call after the entry point call.
Moving the capure after the call allows us to process the results of
the call. Also we can clean up the validation double call by doing a
bit of entry point refactoring. The code changes shouldn't impact the
resulting code size when capture is disabled.
Bug: angleproject:3611
Change-Id: I9e74ba0a8266903d3e9d1f2eac6acdd2932e5743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706561
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
eb1b1646
|
2019-07-30T17:22:17
|
|
Capture/Replay: Fix capture-enabled libs build.
Adds a build option to use the capture libraries in the default output
location for libGLESv2. With |angle_with_capture_by_default| enabled,
libGLESv2 will have capture enabled and the non-capture libGLESv2 is
built as libGLESv2_no_capture.
Also moves the FrameCapture to be owned by gl::Context. Rearranges the
code a bit so that we don't require a separate version of libANGLE for
capture.
Also implements a read pixels entry point parameter.
Bug: angleproject:3611
Change-Id: Ic528e43e4779f794c8b6d0bf35410166dacc81b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1719064
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
523dbf40
|
2019-07-15T10:56:26
|
|
Add GL versions to desktop implementation
The current implementation generates entry points for GL up to
version 3.1. Will need to support later versions for some apps.
Bug: angleproject:3698
Change-Id: Ic44d07b12a9eeeceb8cd98dd9c44652dca728dc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700572
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3bd10b19
|
2019-07-08T13:23:37
|
|
Capture/Replay: Return CallCapture from capture funcs.
This moves more shared code into a simple templated helper function. It
will also allow us to call the parameter capture methods more easily
for mid-execution capture.
Refactoring change only.
Bug: angleproject:3611
Change-Id: I8d95a6230922dfa0403ba5c328df78735c765519
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688508
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
612b7417
|
2019-07-05T11:13:30
|
|
Capture/Replay: Add frame capture to cpp files.
Capture is implemented mostly via code auto-generation. The capture
requires a bit of custom logic for each captured pointer parameter. We
handle this by using auto-generation to lay out the base template for
each GL call and then custom logic that uses ANGLE's internals to
know how much data to capture at which point. Client array pointers are
captured before each draw call.
Currently only GLES capture is supported. We write out cpp files and
an optional data file accompanying each cpp. For small data chunks we
inline them in the cpp files. For bigger chunks like texture data we
pack them into the data file.
Mid-execution capture is not yet supported. Configuring the capture is
currently only available by modifying the cpp sources. Both of these
features will be implemented in the future.
Bug: angleproject:3611
Change-Id: If6d5dac2f7bf363129d42ea9198162aef0d3a4ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1671904
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|