Hash :
e3a58b25
Author :
Date :
2024-04-11T09:33:55
FrameCapture: Support deferred linking of shaders Modern Combat 5 creates and attaches programs and shaders but defers compiling and linking until needed. Added support in the tracer for this corner case and updated CapturedTest to exercise this behavior as well. Test: angle_end2end_tests --gtest_filter=CapturedTest.MultiFrame/ES3_Vulkan Bug: b/334030316 Change-Id: Ib7fdf0fe25b11cdb3df33d50e49501f3a51e9510 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5449599 Commit-Queue: Mark Łobodziński <mark@lunarg.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 58
#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
// 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;
}
}