Hash :
c0d806b4
Author :
Date :
2025-02-10T23:01:33
CL: OpenCL support for ANGLE Capture/Replay Implementation of OpenCL Capture/Replay tool in ANGLE. Brief notes about the change: - Most meaningful changes for the capture process are made in src/libANGLE/capture/ - Most meaningful changes for replay are made in util/capture/ and src/tests/perf_tests/ - Many autogenerated files are changed/added to allow the capture of OpenCL objects & calls - The following applications were captured/replayed: benchmark_model, GeekBench Compute, GeekBench ML, AI-Benchmark, various OCL CTS tests - End2end test added to capture_tests. CapturedTestCL.MultiFrameCL/ES3_Vulkan Bug: angleproject:383841335 Change-Id: I55fdaa6cd6c7ba740aaa2351e4d29050059d6d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102105 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
#include "CapturedTest_MultiFrame_ES3_Vulkan.h"
#include "trace_fixture.h"
#include "angle_trace_gl.h"
// Private Functions
void InitReplay(void)
{
// binaryDataFileName = CapturedTest_MultiFrame_ES3_Vulkan.angledata
// maxClientArraySize = 72
// readBufferSize = 32
// resourceIDBufferSize = 1
// contextID = 1
// maxBuffer = 1
// maxContext = 1
// maxFenceNV = 0
// maxFramebuffer = 2
// maxImage = 0
// maxMemoryObject = 0
// maxProgramPipeline = 0
// maxQuery = 0
// maxRenderbuffer = 0
// maxSampler = 0
// maxSemaphore = 0
// maxShaderProgram = 16
// maxSurface = 1
// maxSync = 0
// maxTexture = 3
// maxTransformFeedback = 0
// maxVertexArray = 1
// maxegl_Sync = 0
InitializeReplay4("CapturedTest_MultiFrame_ES3_Vulkan.angledata", 72, 32, 1, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 3, 0, 1, 0);
}
// Public Functions
void ReplayFrame(uint32_t frameIndex)
{
switch (frameIndex)
{
case 1:
ReplayFrame1();
break;
case 2:
ReplayFrame2();
break;
case 3:
ReplayFrame3();
break;
case 4:
ReplayFrame4();
break;
default:
break;
}
}