Capture/Replay: Handle Gen/Delete ProgramPipelines
Enable the test that failed compilation before.
Bug: angleproject:6180
Change-Id: Id15a5b82c8ee5dab291090375d15ce93b8908535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3139900
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/capture/FrameCapture.cpp b/src/libANGLE/capture/FrameCapture.cpp
index 7e85060..84d3db6 100644
--- a/src/libANGLE/capture/FrameCapture.cpp
+++ b/src/libANGLE/capture/FrameCapture.cpp
@@ -4912,6 +4912,35 @@
break;
}
+ case EntryPoint::GLDeleteProgramPipelines:
+ case EntryPoint::GLDeleteProgramPipelinesEXT:
+ {
+ GLsizei count = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
+ const gl::ProgramPipelineID *pipelineIDs =
+ call.params
+ .getParam("pipelinesPacked", ParamType::TProgramPipelineIDConstPointer, 1)
+ .value.ProgramPipelineIDPointerVal;
+ for (GLsizei i = 0; i < count; i++)
+ {
+ handleDeletedResource(pipelineIDs[i]);
+ }
+ break;
+ }
+
+ case EntryPoint::GLGenProgramPipelines:
+ case EntryPoint::GLGenProgramPipelinesEXT:
+ {
+ GLsizei count = call.params.getParam("n", ParamType::TGLsizei, 0).value.GLsizeiVal;
+ const gl::ProgramPipelineID *pipelineIDs =
+ call.params.getParam("pipelinesPacked", ParamType::TProgramPipelineIDPointer, 1)
+ .value.ProgramPipelineIDPointerVal;
+ for (GLsizei i = 0; i < count; i++)
+ {
+ handleGennedResource(pipelineIDs[i]);
+ }
+ break;
+ }
+
case EntryPoint::GLDeleteSync:
{
GLsync sync = call.params.getParam("sync", ParamType::TGLsync, 0).value.GLsyncVal;
diff --git a/src/libANGLE/capture/capture_gles_ext_params.cpp b/src/libANGLE/capture/capture_gles_ext_params.cpp
index 2b65095..a124253 100644
--- a/src/libANGLE/capture/capture_gles_ext_params.cpp
+++ b/src/libANGLE/capture/capture_gles_ext_params.cpp
@@ -3567,7 +3567,7 @@
const ProgramPipelineID *pipelinesPacked,
angle::ParamCapture *paramCapture)
{
- UNIMPLEMENTED();
+ CaptureArray(pipelinesPacked, n, paramCapture);
}
void CaptureGenProgramPipelinesEXT_pipelinesPacked(const State &glState,
@@ -3576,7 +3576,7 @@
ProgramPipelineID *pipelinesPacked,
angle::ParamCapture *paramCapture)
{
- UNIMPLEMENTED();
+ CaptureGenHandles(n, pipelinesPacked, paramCapture);
}
void CaptureGetProgramPipelineInfoLogEXT_length(const State &glState,
diff --git a/src/tests/capture_replay_tests/capture_replay_expectations.txt b/src/tests/capture_replay_tests/capture_replay_expectations.txt
index 1dd3df4..55294cc 100644
--- a/src/tests/capture_replay_tests/capture_replay_expectations.txt
+++ b/src/tests/capture_replay_tests/capture_replay_expectations.txt
@@ -152,7 +152,6 @@
6335 DEBUG : VulkanExternalImageTest.ShouldImportSemaphoreOpaqueFd/ES3_Vulkan_SwiftShader = SKIP_FOR_CAPTURE
# Skip because CompileFailed
-6180 : ProgramPipelineTest.GenerateProgramPipelineObjectEXT/ES3_Vulkan_SwiftShader = SKIP_FOR_CAPTURE
6180 : ReadPixelsPBOTest.ExistingDataPreserved/ES3_Vulkan_SwiftShader = SKIP_FOR_CAPTURE
6180 : UniformTestES3.ReturnsOnlyOneArrayElement/ES3_Vulkan_SwiftShader = SKIP_FOR_CAPTURE