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>
Showing
This diff is collapsed.
Click to expand it.
src/libANGLE/FrameCapture.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/FrameCapture.h
0 → 100644
src/libANGLE/capture_gles_1_0_autogen.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_1_0_autogen.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_1_0_params.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_2_0_autogen.cpp
0 → 100644
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
src/libANGLE/capture_gles_2_0_autogen.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_2_0_params.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_0_autogen.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_0_autogen.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_0_params.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_1_autogen.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_1_autogen.h
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_3_1_params.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/capture_gles_ext_autogen.cpp
0 → 100644
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
src/libANGLE/capture_gles_ext_autogen.h
0 → 100644
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
src/libANGLE/capture_gles_ext_params.cpp
0 → 100644
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
src/libANGLE/frame_capture_utils_autogen.cpp
0 → 100644
This diff is collapsed.
Click to expand it.
src/libANGLE/frame_capture_utils_autogen.h
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment