• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "CapturedTestCL_MultiFrameCL_ES3_Vulkan.h"
2 #include "trace_fixture_cl.h"
3 
4 const char clGetExtensionFunctionAddress_func_name_0[] = { "clIcdGetPlatformIDsKHR" };
5 const char * clCreateProgramWithSource_strings_0[] = {
6 "\n"
7 "        __kernel void frame1(__global float *output)\n"
8 "        {\n"
9 "            int gid = get_global_id(0);\n"
10 "            output[gid] = gid * 2.0f;\n"
11 "        }\n"
12 "\n"
13 "        __kernel void frame2(__global float *output)\n"
14 "        {\n"
15 "            int gid = get_global_id(0);\n"
16 "            output[gid] = gid * gid;\n"
17 "        }\n"
18 "\n"
19 "        __kernel void frame3(__global float *output)\n"
20 "        {\n"
21 "            int gid = get_global_id(0);\n"
22 "            output[gid] = gid + 100.0f;\n"
23 "        }\n"
24 "\n"
25 "        __kernel void frame4(__global float *output)\n"
26 "        {\n"
27 "            int gid = get_global_id(0);\n"
28 "            output[gid] = gid;\n"
29 "            if (gid == 0)\n"
30 "            {\n"
31 "                printf(\"Frame 4!\\n\");\n"
32 "            }\n"
33 "        }\n"
34 "\n"
35 "        __kernel void frame5(__global float *output)\n"
36 "        {\n"
37 "            int gid = get_global_id(0);\n"
38 "            output[gid] = gid/gid;\n"
39 "        }\n"
40 "        ",
41 };
42 const char clCreateKernel_kernel_name_4[] = { "frame1" };
43 
44 // Private Functions
45 
InitReplay(void)46 void InitReplay(void)
47 {
48     // binaryDataFileName = CapturedTestCL_MultiFrameCL_ES3_Vulkan.angledata
49     // maxClientArraySize = 0
50     // readBufferSize = 512
51     // clPlatformsMapSize = 8
52     // clDevicesMapSize = 8
53     // clContextsMapSize = 8
54     // clCommandQueuesMapSize = 8
55     // clMemMapSize = 8
56     // clEventsMapSize = 0
57     // clProgramsMapSize = 8
58     // clKernelsMapSize = 16
59     // clSamplerMapSize = 0
60     // clVoidMapSize = 0
61     InitializeReplayCL("CapturedTestCL_MultiFrameCL_ES3_Vulkan.angledata", 0, 512, 8, 8, 8, 8, 8, 0, 8, 16, 0, 0);
62 }
63 
64 // Public Functions
65 
ReplayFrame(uint32_t frameIndex)66 void ReplayFrame(uint32_t frameIndex)
67 {
68     switch (frameIndex)
69     {
70         case 2:
71             ReplayFrame2();
72             break;
73         case 3:
74             ReplayFrame3();
75             break;
76         case 4:
77             ReplayFrame4();
78             break;
79         case 5:
80             ReplayFrame5();
81             break;
82         default:
83             break;
84     }
85 }
86 
SetupFirstFrame()87 void SetupFirstFrame()
88 {
89     clIcdGetPlatformIDsKHR = (clIcdGetPlatformIDsKHR_fn)clGetExtensionFunctionAddress(clGetExtensionFunctionAddress_func_name_0);
90     clGetPlatformIDs(1, clPlatformsMap, NULL);
91     temporaryDevicesList.clear();
92     temporaryDevicesList.resize(1);
93     clGetDeviceIDs(clPlatformsMap[0], 4, 1, temporaryDevicesList.data(), NULL);
94     clDevicesMap[0] = temporaryDevicesList[0];
95     temporaryDevicesList = {clDevicesMap[0]};
96     clContextsMap[0] = clCreateContext(NULL, 1, temporaryDevicesList.data(), NULL, 0, NULL);
97     clCommandQueuesMap[0] = clCreateCommandQueue(clContextsMap[0], clDevicesMap[0], 0, NULL);
98     clProgramsMap[0] = clCreateProgramWithSource(clContextsMap[0], 1, clCreateProgramWithSource_strings_0, NULL, NULL);
99     clBuildProgram(clProgramsMap[0], 0, NULL, 0, NULL, 0);
100     clMemMap[0] = clCreateBuffer(clContextsMap[0], 1, 512, 0, NULL);
101     clKernelsMap[0] = clCreateKernel(clProgramsMap[0], clCreateKernel_kernel_name_4, NULL);
102     clSetKernelArg(clKernelsMap[0], 0, 8, (const void *)&clMemMap[0]);
103     clEnqueueWriteBuffer(clCommandQueuesMap[0], clMemMap[0], 1, 0, 512, (const GLubyte *)&gBinaryData[64], 0, NULL, NULL);
104 }
105 
ResetReplay(void)106 void ResetReplay(void)
107 {
108     clReleaseContext(clContextsMap[0]);
109     clReleaseCommandQueue(clCommandQueuesMap[0]);
110     clReleaseProgram(clProgramsMap[0]);
111     clReleaseMemObject(clMemMap[0]);
112     clReleaseKernel(clKernelsMap[1]);
113 }
114 
115