OpenGL ES Client Stream Timing Events in PVRTune Complete

A summary of the OpenGL ES calls captured by PVRTune Complete

PVRTune can capture the following API calls from the OpenGL ES client driver module.

Note: Some calls in this table are triggered indirectly by an application, such as TA, TQ and CDM kick. Additionally, some API calls such as gl*TexImage* are collapsed into a single timing event type.

API CallDescription
glReadPixelshttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glReadPixels.xhtml
glBindFramebufferhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBindFramebuffer.xhtml
glDrawArrayshttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawArrays.xhtml
glDrawArraysInstancedhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawArraysInstanced.xhtml
glDrawArraysIndirecthttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawArraysIndirect.xhtml
glDrawElementshttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElements.xhtml
glDrawElementsInstancedhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsInstanced.xhtml
glDrawElementsIndirecthttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsIndirect.xhtml
glDrawRangeElementshttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawRangeElements.xhtml
glDrawElementsBaseVertexhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsBaseVertex.xhtml
glDrawRangeElementsBaseVertexhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawRangeElementsBaseVertex.xhtml
glDrawElementsInstancedBaseVertexhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsInstancedBaseVertex.xhtml
glMultiDrawElementsBaseVertexExthttps://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_elements_base_vertex.txt
glCompileShaderhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCompileShader.xhtml
glGenerateMipmaphttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGenerateMipmap.xhtml
glTexImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexImage2D.xhtml
glTexImage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexImage3D.xhtml
glTexSubImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexSubImage2D.xhtml
glTexSubImage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexSubImage3D.xhtml
glCompressedTexImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCompressedTexImage2D.xhtml
glCompressedTexImage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCompressedTexImage3D.xhtml
glCompressedTexSubImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCompressedTexSubImage2D.xhtml
glCompressedTexSubImage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCompressedTexSubImage3D.xhtml
glCopyTexImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCopyTexImage2D.xhtml
glCopyTexSubImage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCopyTexSubImage2D.xhtml
glCopyTexSubImage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCopyTexSubImage3D.xhtml
glTexStorage2Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexStorage2D.xhtml
glTexStorage3Dhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexStorage3D.xhtml
glFlushhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glFlush.xhtml
glFinishhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glFinish.xhtml
glBindTexturehttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBindTexture.xhtml
glBufferDatahttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBufferData.xhtml
glBufferSubDatahttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBufferSubData.xhtml
glCopyBufferSubDatahttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCopyBufferSubData.xhtml
glClearhttps://www.khronos.org/registry/OpenGL-Refpages/es3/html/glClear.xhtml
glDispatchComputehttps://www.khronos.org/registry/OpenGL-Refpages/es3.1/html/glDispatchCompute.xhtml
glDispatchComputeIndirecthttps://www.khronos.org/registry/OpenGL-Refpages/es3.1/html/glDispatchComputeIndirect.xhtml
TAKickEmitted when the OpenGL ES driver module submits Tiler/3D work to the hardware to be processed.
WaitForHWQEmitted when the OpenGL ES driver module waits for a resource, such as a render target, to not be needed by a hardware queue, such as TA or 3D
TQKickEmitted when the OpenGL ES driver module submits 2D work to the hardware to be processed, for example blitting to a surface, texture uploads, and mip-map generation.
CDMKickEmitted when the OpenGL ES driver module submits compute work to the hardware to be processed, for example processing GLES compute shaders
GhostTextureEmitted when the OpenGL ES driver module makes a copy of a texture resource. This can be the result of texture modification by the application, for example through a call to glTexSubImage2D while the resource is in use by the GPU.
TextureMakeResidentAllocates texture memory and loads texture data into a framebuffer. Called when the texture state has been validated.
UnloadInconsistentTextureUnloads texture data, and either frees or ghosts the texture depending if the texture is still in use by the GPU.
ValidateStateValidates the current OpenGL ES global state, before submitting work to the hardware for processing.