xref: /aosp_15_r20/external/angle/src/libANGLE/capture/capture_gles_3_1_params.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2019 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // capture_gles31_params.cpp:
7 //   Pointer parameter capture functions for the OpenGL ES 3.1 entry points.
8 
9 #include "libANGLE/capture/capture_gles_3_1_autogen.h"
10 
11 using namespace angle;
12 
13 namespace gl
14 {
15 
CaptureCreateShaderProgramv_strings(const State & glState,bool isCallValid,ShaderType typePacked,GLsizei count,const GLchar * const * strings,ParamCapture * paramCapture)16 void CaptureCreateShaderProgramv_strings(const State &glState,
17                                          bool isCallValid,
18                                          ShaderType typePacked,
19                                          GLsizei count,
20                                          const GLchar *const *strings,
21                                          ParamCapture *paramCapture)
22 {
23     CaptureShaderStrings(count, strings, nullptr, paramCapture);
24 }
25 
CaptureDeleteProgramPipelines_pipelinesPacked(const State & glState,bool isCallValid,GLsizei n,const ProgramPipelineID * pipelines,ParamCapture * paramCapture)26 void CaptureDeleteProgramPipelines_pipelinesPacked(const State &glState,
27                                                    bool isCallValid,
28                                                    GLsizei n,
29                                                    const ProgramPipelineID *pipelines,
30                                                    ParamCapture *paramCapture)
31 {
32     CaptureArray(pipelines, n, paramCapture);
33 }
34 
CaptureDrawArraysIndirect_indirect(const State & glState,bool isCallValid,PrimitiveMode modePacked,const void * indirect,ParamCapture * paramCapture)35 void CaptureDrawArraysIndirect_indirect(const State &glState,
36                                         bool isCallValid,
37                                         PrimitiveMode modePacked,
38                                         const void *indirect,
39                                         ParamCapture *paramCapture)
40 {
41     // DrawArraysIndirect requires that all data sourced for the command,
42     // including the DrawArraysIndirectCommand structure, be in buffer objects,
43     // and may not be called when the default vertex array object is bound.
44     // Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
45     assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
46 }
47 
CaptureDrawElementsIndirect_indirect(const State & glState,bool isCallValid,PrimitiveMode modePacked,DrawElementsType typePacked,const void * indirect,ParamCapture * paramCapture)48 void CaptureDrawElementsIndirect_indirect(const State &glState,
49                                           bool isCallValid,
50                                           PrimitiveMode modePacked,
51                                           DrawElementsType typePacked,
52                                           const void *indirect,
53                                           ParamCapture *paramCapture)
54 {
55     // DrawElementsIndirect requires that all data sourced for the command,
56     // including the DrawElementsIndirectCommand structure, be in buffer objects,
57     // and may not be called when the default vertex array object is bound
58     // Indirect pointer is automatically captured in capture_gles_3_1_autogen.cpp
59     assert(!isCallValid || glState.getTargetBuffer(gl::BufferBinding::DrawIndirect));
60 }
61 
CaptureGenProgramPipelines_pipelinesPacked(const State & glState,bool isCallValid,GLsizei n,ProgramPipelineID * pipelines,ParamCapture * paramCapture)62 void CaptureGenProgramPipelines_pipelinesPacked(const State &glState,
63                                                 bool isCallValid,
64                                                 GLsizei n,
65                                                 ProgramPipelineID *pipelines,
66                                                 ParamCapture *paramCapture)
67 {
68     CaptureGenHandles(n, pipelines, paramCapture);
69 }
70 
CaptureGetBooleani_v_data(const State & glState,bool isCallValid,GLenum target,GLuint index,GLboolean * data,ParamCapture * paramCapture)71 void CaptureGetBooleani_v_data(const State &glState,
72                                bool isCallValid,
73                                GLenum target,
74                                GLuint index,
75                                GLboolean *data,
76                                ParamCapture *paramCapture)
77 {
78     CaptureMemory(data, sizeof(GLboolean), paramCapture);
79 }
80 
CaptureGetFramebufferParameteriv_params(const State & glState,bool isCallValid,GLenum target,GLenum pname,GLint * params,ParamCapture * paramCapture)81 void CaptureGetFramebufferParameteriv_params(const State &glState,
82                                              bool isCallValid,
83                                              GLenum target,
84                                              GLenum pname,
85                                              GLint *params,
86                                              ParamCapture *paramCapture)
87 {
88     // All glGetFramebufferParameteriv queries write back one single value.
89     paramCapture->readBufferSizeBytes = sizeof(GLint);
90 }
91 
CaptureGetMultisamplefv_val(const State & glState,bool isCallValid,GLenum pname,GLuint index,GLfloat * val,ParamCapture * paramCapture)92 void CaptureGetMultisamplefv_val(const State &glState,
93                                  bool isCallValid,
94                                  GLenum pname,
95                                  GLuint index,
96                                  GLfloat *val,
97                                  ParamCapture *paramCapture)
98 {
99     // GL_SAMPLE_POSITION: 2 floats
100     paramCapture->readBufferSizeBytes = sizeof(GLfloat) * 2;
101 }
102 
CaptureGetProgramInterfaceiv_params(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLenum pname,GLint * params,ParamCapture * paramCapture)103 void CaptureGetProgramInterfaceiv_params(const State &glState,
104                                          bool isCallValid,
105                                          ShaderProgramID program,
106                                          GLenum programInterface,
107                                          GLenum pname,
108                                          GLint *params,
109                                          ParamCapture *paramCapture)
110 {
111     paramCapture->readBufferSizeBytes = sizeof(GLint);
112 }
113 
CaptureGetProgramPipelineInfoLog_length(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLsizei bufSize,GLsizei * length,GLchar * infoLog,ParamCapture * paramCapture)114 void CaptureGetProgramPipelineInfoLog_length(const State &glState,
115                                              bool isCallValid,
116                                              ProgramPipelineID pipeline,
117                                              GLsizei bufSize,
118                                              GLsizei *length,
119                                              GLchar *infoLog,
120                                              ParamCapture *paramCapture)
121 {
122     if (length)
123     {
124         CaptureMemory(length, sizeof(GLsizei), paramCapture);
125     }
126 }
127 
CaptureGetProgramPipelineInfoLog_infoLog(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLsizei bufSize,GLsizei * length,GLchar * infoLog,ParamCapture * paramCapture)128 void CaptureGetProgramPipelineInfoLog_infoLog(const State &glState,
129                                               bool isCallValid,
130                                               ProgramPipelineID pipeline,
131                                               GLsizei bufSize,
132                                               GLsizei *length,
133                                               GLchar *infoLog,
134                                               ParamCapture *paramCapture)
135 {
136     if (bufSize > 0)
137     {
138         ASSERT(infoLog);
139         if (length)
140         {
141             CaptureArray(infoLog, *length, paramCapture);
142         }
143         else
144         {
145             CaptureString(infoLog, paramCapture);
146         }
147     }
148 }
149 
CaptureGetProgramPipelineiv_params(const State & glState,bool isCallValid,ProgramPipelineID pipeline,GLenum pname,GLint * params,ParamCapture * paramCapture)150 void CaptureGetProgramPipelineiv_params(const State &glState,
151                                         bool isCallValid,
152                                         ProgramPipelineID pipeline,
153                                         GLenum pname,
154                                         GLint *params,
155                                         ParamCapture *paramCapture)
156 {
157     CaptureMemory(params, sizeof(GLint), paramCapture);
158 }
159 
CaptureGetProgramResourceIndex_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,const GLchar * name,ParamCapture * paramCapture)160 void CaptureGetProgramResourceIndex_name(const State &glState,
161                                          bool isCallValid,
162                                          ShaderProgramID program,
163                                          GLenum programInterface,
164                                          const GLchar *name,
165                                          ParamCapture *paramCapture)
166 {
167     CaptureString(name, paramCapture);
168 }
169 
CaptureGetProgramResourceLocation_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,const GLchar * name,ParamCapture * paramCapture)170 void CaptureGetProgramResourceLocation_name(const State &glState,
171                                             bool isCallValid,
172                                             ShaderProgramID program,
173                                             GLenum programInterface,
174                                             const GLchar *name,
175                                             ParamCapture *paramCapture)
176 {
177     CaptureString(name, paramCapture);
178 }
179 
CaptureGetProgramResourceName_length(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei bufSize,GLsizei * length,GLchar * name,ParamCapture * paramCapture)180 void CaptureGetProgramResourceName_length(const State &glState,
181                                           bool isCallValid,
182                                           ShaderProgramID program,
183                                           GLenum programInterface,
184                                           GLuint index,
185                                           GLsizei bufSize,
186                                           GLsizei *length,
187                                           GLchar *name,
188                                           ParamCapture *paramCapture)
189 {
190     paramCapture->readBufferSizeBytes = sizeof(GLsizei);
191 }
192 
CaptureGetProgramResourceName_name(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei bufSize,GLsizei * length,GLchar * name,ParamCapture * paramCapture)193 void CaptureGetProgramResourceName_name(const State &glState,
194                                         bool isCallValid,
195                                         ShaderProgramID program,
196                                         GLenum programInterface,
197                                         GLuint index,
198                                         GLsizei bufSize,
199                                         GLsizei *length,
200                                         GLchar *name,
201                                         ParamCapture *paramCapture)
202 {
203     CaptureString(name, paramCapture);
204 }
205 
CaptureGetProgramResourceiv_props(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)206 void CaptureGetProgramResourceiv_props(const State &glState,
207                                        bool isCallValid,
208                                        ShaderProgramID program,
209                                        GLenum programInterface,
210                                        GLuint index,
211                                        GLsizei propCount,
212                                        const GLenum *props,
213                                        GLsizei bufSize,
214                                        GLsizei *length,
215                                        GLint *params,
216                                        ParamCapture *paramCapture)
217 {
218     CaptureMemory(props, sizeof(GLenum) * propCount, paramCapture);
219 }
220 
CaptureGetProgramResourceiv_length(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)221 void CaptureGetProgramResourceiv_length(const State &glState,
222                                         bool isCallValid,
223                                         ShaderProgramID program,
224                                         GLenum programInterface,
225                                         GLuint index,
226                                         GLsizei propCount,
227                                         const GLenum *props,
228                                         GLsizei bufSize,
229                                         GLsizei *length,
230                                         GLint *params,
231                                         ParamCapture *paramCapture)
232 {
233     paramCapture->readBufferSizeBytes = sizeof(GLsizei);
234 }
235 
CaptureGetProgramResourceiv_params(const State & glState,bool isCallValid,ShaderProgramID program,GLenum programInterface,GLuint index,GLsizei propCount,const GLenum * props,GLsizei bufSize,GLsizei * length,GLint * params,ParamCapture * paramCapture)236 void CaptureGetProgramResourceiv_params(const State &glState,
237                                         bool isCallValid,
238                                         ShaderProgramID program,
239                                         GLenum programInterface,
240                                         GLuint index,
241                                         GLsizei propCount,
242                                         const GLenum *props,
243                                         GLsizei bufSize,
244                                         GLsizei *length,
245                                         GLint *params,
246                                         ParamCapture *paramCapture)
247 {
248     // Prefer to only capture as many parameters as are returned,
249     // but if this is not known, then capture the whole buffer
250     int paramLength = length != nullptr ? *length : bufSize;
251     CaptureMemory(params, sizeof(GLint) * paramLength, paramCapture);
252 }
253 
CaptureGetTexLevelParameterfv_params(const State & glState,bool isCallValid,TextureTarget targetPacked,GLint level,GLenum pname,GLfloat * params,ParamCapture * paramCapture)254 void CaptureGetTexLevelParameterfv_params(const State &glState,
255                                           bool isCallValid,
256                                           TextureTarget targetPacked,
257                                           GLint level,
258                                           GLenum pname,
259                                           GLfloat *params,
260                                           ParamCapture *paramCapture)
261 {
262     CaptureMemory(params, sizeof(GLfloat), paramCapture);
263 }
264 
CaptureGetTexLevelParameteriv_params(const State & glState,bool isCallValid,TextureTarget targetPacked,GLint level,GLenum pname,GLint * params,ParamCapture * paramCapture)265 void CaptureGetTexLevelParameteriv_params(const State &glState,
266                                           bool isCallValid,
267                                           TextureTarget targetPacked,
268                                           GLint level,
269                                           GLenum pname,
270                                           GLint *params,
271                                           ParamCapture *paramCapture)
272 {
273     CaptureMemory(params, sizeof(GLint), paramCapture);
274 }
275 
CaptureProgramUniform1fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)276 void CaptureProgramUniform1fv_value(const State &glState,
277                                     bool isCallValid,
278                                     ShaderProgramID program,
279                                     UniformLocation location,
280                                     GLsizei count,
281                                     const GLfloat *value,
282                                     ParamCapture *paramCapture)
283 {
284     CaptureMemory(value, sizeof(GLfloat) * count, paramCapture);
285 }
286 
CaptureProgramUniform1iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)287 void CaptureProgramUniform1iv_value(const State &glState,
288                                     bool isCallValid,
289                                     ShaderProgramID program,
290                                     UniformLocation location,
291                                     GLsizei count,
292                                     const GLint *value,
293                                     ParamCapture *paramCapture)
294 {
295     CaptureMemory(value, sizeof(GLint) * count, paramCapture);
296 }
297 
CaptureProgramUniform1uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)298 void CaptureProgramUniform1uiv_value(const State &glState,
299                                      bool isCallValid,
300                                      ShaderProgramID program,
301                                      UniformLocation location,
302                                      GLsizei count,
303                                      const GLuint *value,
304                                      ParamCapture *paramCapture)
305 {
306     CaptureMemory(value, sizeof(GLuint) * count, paramCapture);
307 }
308 
CaptureProgramUniform2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)309 void CaptureProgramUniform2fv_value(const State &glState,
310                                     bool isCallValid,
311                                     ShaderProgramID program,
312                                     UniformLocation location,
313                                     GLsizei count,
314                                     const GLfloat *value,
315                                     ParamCapture *paramCapture)
316 {
317     CaptureMemory(value, sizeof(GLfloat) * 2 * count, paramCapture);
318 }
319 
CaptureProgramUniform2iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)320 void CaptureProgramUniform2iv_value(const State &glState,
321                                     bool isCallValid,
322                                     ShaderProgramID program,
323                                     UniformLocation location,
324                                     GLsizei count,
325                                     const GLint *value,
326                                     ParamCapture *paramCapture)
327 {
328     CaptureMemory(value, sizeof(GLint) * 2 * count, paramCapture);
329 }
330 
CaptureProgramUniform2uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)331 void CaptureProgramUniform2uiv_value(const State &glState,
332                                      bool isCallValid,
333                                      ShaderProgramID program,
334                                      UniformLocation location,
335                                      GLsizei count,
336                                      const GLuint *value,
337                                      ParamCapture *paramCapture)
338 {
339     CaptureMemory(value, sizeof(GLuint) * 2 * count, paramCapture);
340 }
341 
CaptureProgramUniform3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)342 void CaptureProgramUniform3fv_value(const State &glState,
343                                     bool isCallValid,
344                                     ShaderProgramID program,
345                                     UniformLocation location,
346                                     GLsizei count,
347                                     const GLfloat *value,
348                                     ParamCapture *paramCapture)
349 {
350     CaptureMemory(value, sizeof(GLfloat) * 3 * count, paramCapture);
351 }
352 
CaptureProgramUniform3iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)353 void CaptureProgramUniform3iv_value(const State &glState,
354                                     bool isCallValid,
355                                     ShaderProgramID program,
356                                     UniformLocation location,
357                                     GLsizei count,
358                                     const GLint *value,
359                                     ParamCapture *paramCapture)
360 {
361     CaptureMemory(value, sizeof(GLint) * 3 * count, paramCapture);
362 }
363 
CaptureProgramUniform3uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)364 void CaptureProgramUniform3uiv_value(const State &glState,
365                                      bool isCallValid,
366                                      ShaderProgramID program,
367                                      UniformLocation location,
368                                      GLsizei count,
369                                      const GLuint *value,
370                                      ParamCapture *paramCapture)
371 {
372     CaptureMemory(value, sizeof(GLuint) * 3 * count, paramCapture);
373 }
374 
CaptureProgramUniform4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLfloat * value,ParamCapture * paramCapture)375 void CaptureProgramUniform4fv_value(const State &glState,
376                                     bool isCallValid,
377                                     ShaderProgramID program,
378                                     UniformLocation location,
379                                     GLsizei count,
380                                     const GLfloat *value,
381                                     ParamCapture *paramCapture)
382 {
383     CaptureMemory(value, sizeof(GLfloat) * 4 * count, paramCapture);
384 }
385 
CaptureProgramUniform4iv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLint * value,ParamCapture * paramCapture)386 void CaptureProgramUniform4iv_value(const State &glState,
387                                     bool isCallValid,
388                                     ShaderProgramID program,
389                                     UniformLocation location,
390                                     GLsizei count,
391                                     const GLint *value,
392                                     ParamCapture *paramCapture)
393 {
394     CaptureMemory(value, sizeof(GLint) * 4 * count, paramCapture);
395 }
396 
CaptureProgramUniform4uiv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,const GLuint * value,ParamCapture * paramCapture)397 void CaptureProgramUniform4uiv_value(const State &glState,
398                                      bool isCallValid,
399                                      ShaderProgramID program,
400                                      UniformLocation location,
401                                      GLsizei count,
402                                      const GLuint *value,
403                                      ParamCapture *paramCapture)
404 {
405     CaptureMemory(value, sizeof(GLuint) * 4 * count, paramCapture);
406 }
407 
CaptureProgramUniformMatrix2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)408 void CaptureProgramUniformMatrix2fv_value(const State &glState,
409                                           bool isCallValid,
410                                           ShaderProgramID program,
411                                           UniformLocation location,
412                                           GLsizei count,
413                                           GLboolean transpose,
414                                           const GLfloat *value,
415                                           ParamCapture *paramCapture)
416 {
417     CaptureMemory(value, sizeof(GLfloat) * 2 * 2 * count, paramCapture);
418 }
419 
CaptureProgramUniformMatrix2x3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)420 void CaptureProgramUniformMatrix2x3fv_value(const State &glState,
421                                             bool isCallValid,
422                                             ShaderProgramID program,
423                                             UniformLocation location,
424                                             GLsizei count,
425                                             GLboolean transpose,
426                                             const GLfloat *value,
427                                             ParamCapture *paramCapture)
428 {
429     CaptureMemory(value, sizeof(GLfloat) * 2 * 3 * count, paramCapture);
430 }
431 
CaptureProgramUniformMatrix2x4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)432 void CaptureProgramUniformMatrix2x4fv_value(const State &glState,
433                                             bool isCallValid,
434                                             ShaderProgramID program,
435                                             UniformLocation location,
436                                             GLsizei count,
437                                             GLboolean transpose,
438                                             const GLfloat *value,
439                                             ParamCapture *paramCapture)
440 {
441     CaptureMemory(value, sizeof(GLfloat) * 2 * 4 * count, paramCapture);
442 }
443 
CaptureProgramUniformMatrix3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)444 void CaptureProgramUniformMatrix3fv_value(const State &glState,
445                                           bool isCallValid,
446                                           ShaderProgramID program,
447                                           UniformLocation location,
448                                           GLsizei count,
449                                           GLboolean transpose,
450                                           const GLfloat *value,
451                                           ParamCapture *paramCapture)
452 {
453     CaptureMemory(value, sizeof(GLfloat) * 3 * 3 * count, paramCapture);
454 }
455 
CaptureProgramUniformMatrix3x2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)456 void CaptureProgramUniformMatrix3x2fv_value(const State &glState,
457                                             bool isCallValid,
458                                             ShaderProgramID program,
459                                             UniformLocation location,
460                                             GLsizei count,
461                                             GLboolean transpose,
462                                             const GLfloat *value,
463                                             ParamCapture *paramCapture)
464 {
465     CaptureMemory(value, sizeof(GLfloat) * 3 * 2 * count, paramCapture);
466 }
467 
CaptureProgramUniformMatrix3x4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)468 void CaptureProgramUniformMatrix3x4fv_value(const State &glState,
469                                             bool isCallValid,
470                                             ShaderProgramID program,
471                                             UniformLocation location,
472                                             GLsizei count,
473                                             GLboolean transpose,
474                                             const GLfloat *value,
475                                             ParamCapture *paramCapture)
476 {
477     CaptureMemory(value, sizeof(GLfloat) * 3 * 4 * count, paramCapture);
478 }
479 
CaptureProgramUniformMatrix4fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)480 void CaptureProgramUniformMatrix4fv_value(const State &glState,
481                                           bool isCallValid,
482                                           ShaderProgramID program,
483                                           UniformLocation location,
484                                           GLsizei count,
485                                           GLboolean transpose,
486                                           const GLfloat *value,
487                                           ParamCapture *paramCapture)
488 {
489     CaptureMemory(value, sizeof(GLfloat) * 4 * 4 * count, paramCapture);
490 }
491 
CaptureProgramUniformMatrix4x2fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)492 void CaptureProgramUniformMatrix4x2fv_value(const State &glState,
493                                             bool isCallValid,
494                                             ShaderProgramID program,
495                                             UniformLocation location,
496                                             GLsizei count,
497                                             GLboolean transpose,
498                                             const GLfloat *value,
499                                             ParamCapture *paramCapture)
500 {
501     CaptureMemory(value, sizeof(GLfloat) * 4 * 2 * count, paramCapture);
502 }
503 
CaptureProgramUniformMatrix4x3fv_value(const State & glState,bool isCallValid,ShaderProgramID program,UniformLocation location,GLsizei count,GLboolean transpose,const GLfloat * value,ParamCapture * paramCapture)504 void CaptureProgramUniformMatrix4x3fv_value(const State &glState,
505                                             bool isCallValid,
506                                             ShaderProgramID program,
507                                             UniformLocation location,
508                                             GLsizei count,
509                                             GLboolean transpose,
510                                             const GLfloat *value,
511                                             ParamCapture *paramCapture)
512 {
513     CaptureMemory(value, sizeof(GLfloat) * 4 * 3 * count, paramCapture);
514 }
515 
516 }  // namespace gl
517