| #!/usr/bin/env python | |
| # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """code generator for GLES2 command buffers.""" | |
| import os | |
| import os.path | |
| import sys | |
| from optparse import OptionParser | |
| import build_cmd_buffer_lib | |
| # Named type info object represents a named type that is used in OpenGL call | |
| # arguments. Each named type defines a set of valid OpenGL call arguments. The | |
| # named types are used in 'gles2_cmd_buffer_functions.txt'. | |
| # type: The actual GL type of the named type. | |
| # valid: The list of values that are valid for both the client and the service. | |
| # valid_es3: The list of values that are valid in OpenGL ES 3, but not ES 2. | |
| # invalid: Examples of invalid values for the type. At least these values | |
| # should be tested to be invalid. | |
| # deprecated_es3: The list of values that are valid in OpenGL ES 2, but | |
| # deprecated in ES 3. | |
| # is_complete: The list of valid values of type are final and will not be | |
| # modified during runtime. | |
| # validator: If set to False will prevent creation of a ValueValidator. Values | |
| # are still expected to be checked for validity and will be tested. | |
| _NAMED_TYPE_INFO = { | |
| 'BlitFilter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NEAREST', | |
| 'GL_LINEAR', | |
| ], | |
| 'invalid': [ | |
| 'GL_LINEAR_MIPMAP_LINEAR', | |
| ], | |
| }, | |
| 'CoverageModulationComponents': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RGB', 'GL_RGBA', 'GL_ALPHA', 'GL_NONE' | |
| ], | |
| }, | |
| 'FramebufferTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_FRAMEBUFFER', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_DRAW_FRAMEBUFFER' , | |
| 'GL_READ_FRAMEBUFFER' , | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'RenderBufferTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| 'invalid': [ | |
| 'GL_FRAMEBUFFER', | |
| ], | |
| }, | |
| 'BufferTarget': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_ARRAY_BUFFER', | |
| 'GL_ELEMENT_ARRAY_BUFFER', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_COPY_READ_BUFFER', | |
| 'GL_COPY_WRITE_BUFFER', | |
| 'GL_PIXEL_PACK_BUFFER', | |
| 'GL_PIXEL_UNPACK_BUFFER', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER', | |
| 'GL_UNIFORM_BUFFER', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'IndexedBufferTarget': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER', | |
| 'GL_UNIFORM_BUFFER', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'MapBufferAccess': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_MAP_READ_BIT', | |
| 'GL_MAP_WRITE_BIT', | |
| 'GL_MAP_INVALIDATE_RANGE_BIT', | |
| 'GL_MAP_INVALIDATE_BUFFER_BIT', | |
| 'GL_MAP_FLUSH_EXPLICIT_BIT', | |
| 'GL_MAP_UNSYNCHRONIZED_BIT', | |
| ], | |
| 'invalid': [ | |
| 'GL_SYNC_FLUSH_COMMANDS_BIT', | |
| ], | |
| }, | |
| 'Bufferiv': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_COLOR', | |
| 'GL_STENCIL', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'Bufferuiv': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_COLOR', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'Bufferfv': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_COLOR', | |
| 'GL_DEPTH', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'Bufferfi': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_DEPTH_STENCIL', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ], | |
| }, | |
| 'BufferUsage': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_STREAM_DRAW', | |
| 'GL_STATIC_DRAW', | |
| 'GL_DYNAMIC_DRAW', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_STREAM_READ', | |
| 'GL_STREAM_COPY', | |
| 'GL_STATIC_READ', | |
| 'GL_STATIC_COPY', | |
| 'GL_DYNAMIC_READ', | |
| 'GL_DYNAMIC_COPY', | |
| ], | |
| 'invalid': [ | |
| 'GL_NONE', | |
| ], | |
| }, | |
| 'CompressedTextureFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| ], | |
| 'valid_es3': [ | |
| ], | |
| }, | |
| 'GLState': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| # NOTE: State an Capability entries added later. | |
| 'GL_ACTIVE_TEXTURE', | |
| 'GL_ALIASED_LINE_WIDTH_RANGE', | |
| 'GL_ALIASED_POINT_SIZE_RANGE', | |
| 'GL_ALPHA_BITS', | |
| 'GL_ARRAY_BUFFER_BINDING', | |
| 'GL_BLUE_BITS', | |
| 'GL_COMPRESSED_TEXTURE_FORMATS', | |
| 'GL_CURRENT_PROGRAM', | |
| 'GL_DEPTH_BITS', | |
| 'GL_DEPTH_RANGE', | |
| 'GL_ELEMENT_ARRAY_BUFFER_BINDING', | |
| 'GL_FRAMEBUFFER_BINDING', | |
| 'GL_GENERATE_MIPMAP_HINT', | |
| 'GL_GREEN_BITS', | |
| 'GL_IMPLEMENTATION_COLOR_READ_FORMAT', | |
| 'GL_IMPLEMENTATION_COLOR_READ_TYPE', | |
| 'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS', | |
| 'GL_MAX_CUBE_MAP_TEXTURE_SIZE', | |
| 'GL_MAX_FRAGMENT_UNIFORM_VECTORS', | |
| 'GL_MAX_RENDERBUFFER_SIZE', | |
| 'GL_MAX_TEXTURE_IMAGE_UNITS', | |
| 'GL_MAX_TEXTURE_SIZE', | |
| 'GL_MAX_VARYING_VECTORS', | |
| 'GL_MAX_VERTEX_ATTRIBS', | |
| 'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS', | |
| 'GL_MAX_VERTEX_UNIFORM_VECTORS', | |
| 'GL_MAX_VIEWPORT_DIMS', | |
| 'GL_NUM_COMPRESSED_TEXTURE_FORMATS', | |
| 'GL_NUM_SHADER_BINARY_FORMATS', | |
| 'GL_PACK_ALIGNMENT', | |
| 'GL_RED_BITS', | |
| 'GL_RENDERBUFFER_BINDING', | |
| 'GL_SAMPLE_BUFFERS', | |
| 'GL_SAMPLE_COVERAGE_INVERT', | |
| 'GL_SAMPLE_COVERAGE_VALUE', | |
| 'GL_SAMPLES', | |
| 'GL_SCISSOR_BOX', | |
| 'GL_SHADER_BINARY_FORMATS', | |
| 'GL_SHADER_COMPILER', | |
| 'GL_SUBPIXEL_BITS', | |
| 'GL_STENCIL_BITS', | |
| 'GL_TEXTURE_BINDING_2D', | |
| 'GL_TEXTURE_BINDING_CUBE_MAP', | |
| 'GL_TEXTURE_FILTERING_HINT_CHROMIUM', | |
| 'GL_UNPACK_ALIGNMENT', | |
| 'GL_BIND_GENERATES_RESOURCE_CHROMIUM', | |
| # we can add this because we emulate it if the driver does not support it. | |
| 'GL_VERTEX_ARRAY_BINDING_OES', | |
| 'GL_VIEWPORT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_COPY_READ_BUFFER_BINDING', | |
| 'GL_COPY_WRITE_BUFFER_BINDING', | |
| 'GL_DRAW_BUFFER0', | |
| 'GL_DRAW_BUFFER1', | |
| 'GL_DRAW_BUFFER2', | |
| 'GL_DRAW_BUFFER3', | |
| 'GL_DRAW_BUFFER4', | |
| 'GL_DRAW_BUFFER5', | |
| 'GL_DRAW_BUFFER6', | |
| 'GL_DRAW_BUFFER7', | |
| 'GL_DRAW_BUFFER8', | |
| 'GL_DRAW_BUFFER9', | |
| 'GL_DRAW_BUFFER10', | |
| 'GL_DRAW_BUFFER11', | |
| 'GL_DRAW_BUFFER12', | |
| 'GL_DRAW_BUFFER13', | |
| 'GL_DRAW_BUFFER14', | |
| 'GL_DRAW_BUFFER15', | |
| 'GL_DRAW_FRAMEBUFFER_BINDING', | |
| 'GL_FRAGMENT_SHADER_DERIVATIVE_HINT', | |
| 'GL_GPU_DISJOINT_EXT', | |
| 'GL_MAJOR_VERSION', | |
| 'GL_MAX_3D_TEXTURE_SIZE', | |
| 'GL_MAX_ARRAY_TEXTURE_LAYERS', | |
| 'GL_MAX_COLOR_ATTACHMENTS', | |
| 'GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS', | |
| 'GL_MAX_COMBINED_UNIFORM_BLOCKS', | |
| 'GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS', | |
| 'GL_MAX_DRAW_BUFFERS', | |
| 'GL_MAX_ELEMENT_INDEX', | |
| 'GL_MAX_ELEMENTS_INDICES', | |
| 'GL_MAX_ELEMENTS_VERTICES', | |
| 'GL_MAX_FRAGMENT_INPUT_COMPONENTS', | |
| 'GL_MAX_FRAGMENT_UNIFORM_BLOCKS', | |
| 'GL_MAX_FRAGMENT_UNIFORM_COMPONENTS', | |
| 'GL_MAX_PROGRAM_TEXEL_OFFSET', | |
| 'GL_MAX_SAMPLES', | |
| 'GL_MAX_SERVER_WAIT_TIMEOUT', | |
| 'GL_MAX_TEXTURE_LOD_BIAS', | |
| 'GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS', | |
| 'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS', | |
| 'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS', | |
| 'GL_MAX_UNIFORM_BLOCK_SIZE', | |
| 'GL_MAX_UNIFORM_BUFFER_BINDINGS', | |
| 'GL_MAX_VARYING_COMPONENTS', | |
| 'GL_MAX_VERTEX_OUTPUT_COMPONENTS', | |
| 'GL_MAX_VERTEX_UNIFORM_BLOCKS', | |
| 'GL_MAX_VERTEX_UNIFORM_COMPONENTS', | |
| 'GL_MIN_PROGRAM_TEXEL_OFFSET', | |
| 'GL_MINOR_VERSION', | |
| 'GL_NUM_EXTENSIONS', | |
| 'GL_NUM_PROGRAM_BINARY_FORMATS', | |
| 'GL_PACK_ROW_LENGTH', | |
| 'GL_PACK_SKIP_PIXELS', | |
| 'GL_PACK_SKIP_ROWS', | |
| 'GL_PIXEL_PACK_BUFFER_BINDING', | |
| 'GL_PIXEL_UNPACK_BUFFER_BINDING', | |
| 'GL_PROGRAM_BINARY_FORMATS', | |
| 'GL_READ_BUFFER', | |
| 'GL_READ_FRAMEBUFFER_BINDING', | |
| 'GL_SAMPLER_BINDING', | |
| 'GL_TIMESTAMP_EXT', | |
| 'GL_TEXTURE_BINDING_2D_ARRAY', | |
| 'GL_TEXTURE_BINDING_3D', | |
| 'GL_TRANSFORM_FEEDBACK_BINDING', | |
| 'GL_TRANSFORM_FEEDBACK_ACTIVE', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING', | |
| 'GL_TRANSFORM_FEEDBACK_PAUSED', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_START', | |
| 'GL_UNIFORM_BUFFER_BINDING', | |
| 'GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT', | |
| 'GL_UNIFORM_BUFFER_SIZE', | |
| 'GL_UNIFORM_BUFFER_START', | |
| 'GL_UNPACK_IMAGE_HEIGHT', | |
| 'GL_UNPACK_ROW_LENGTH', | |
| 'GL_UNPACK_SKIP_IMAGES', | |
| 'GL_UNPACK_SKIP_PIXELS', | |
| 'GL_UNPACK_SKIP_ROWS', | |
| # GL_VERTEX_ARRAY_BINDING is the same as GL_VERTEX_ARRAY_BINDING_OES | |
| # 'GL_VERTEX_ARRAY_BINDING', | |
| ], | |
| 'invalid': [ | |
| 'GL_FOG_HINT', | |
| ], | |
| }, | |
| 'IndexedGLState': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_START', | |
| 'GL_UNIFORM_BUFFER_BINDING', | |
| 'GL_UNIFORM_BUFFER_SIZE', | |
| 'GL_UNIFORM_BUFFER_START', | |
| ], | |
| 'invalid': [ | |
| 'GL_FOG_HINT', | |
| ], | |
| }, | |
| 'GetTexParamTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TEXTURE_2D', | |
| 'GL_TEXTURE_CUBE_MAP', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_TEXTURE_2D_ARRAY', | |
| 'GL_TEXTURE_3D', | |
| ], | |
| 'invalid': [ | |
| 'GL_PROXY_TEXTURE_CUBE_MAP', | |
| ] | |
| }, | |
| 'ReadBuffer': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_NONE', | |
| 'GL_BACK', | |
| 'GL_COLOR_ATTACHMENT0', | |
| 'GL_COLOR_ATTACHMENT1', | |
| 'GL_COLOR_ATTACHMENT2', | |
| 'GL_COLOR_ATTACHMENT3', | |
| 'GL_COLOR_ATTACHMENT4', | |
| 'GL_COLOR_ATTACHMENT5', | |
| 'GL_COLOR_ATTACHMENT6', | |
| 'GL_COLOR_ATTACHMENT7', | |
| 'GL_COLOR_ATTACHMENT8', | |
| 'GL_COLOR_ATTACHMENT9', | |
| 'GL_COLOR_ATTACHMENT10', | |
| 'GL_COLOR_ATTACHMENT11', | |
| 'GL_COLOR_ATTACHMENT12', | |
| 'GL_COLOR_ATTACHMENT13', | |
| 'GL_COLOR_ATTACHMENT14', | |
| 'GL_COLOR_ATTACHMENT15', | |
| ], | |
| 'invalid': [ | |
| 'GL_RENDERBUFFER', | |
| ] | |
| }, | |
| 'TextureTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TEXTURE_2D', | |
| 'GL_TEXTURE_CUBE_MAP_POSITIVE_X', | |
| 'GL_TEXTURE_CUBE_MAP_NEGATIVE_X', | |
| 'GL_TEXTURE_CUBE_MAP_POSITIVE_Y', | |
| 'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y', | |
| 'GL_TEXTURE_CUBE_MAP_POSITIVE_Z', | |
| 'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z', | |
| ], | |
| 'invalid': [ | |
| 'GL_PROXY_TEXTURE_CUBE_MAP', | |
| ] | |
| }, | |
| 'Texture3DTarget': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_TEXTURE_3D', | |
| 'GL_TEXTURE_2D_ARRAY', | |
| ], | |
| 'invalid': [ | |
| 'GL_TEXTURE_2D', | |
| ] | |
| }, | |
| 'TextureBindTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TEXTURE_2D', | |
| 'GL_TEXTURE_CUBE_MAP', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_TEXTURE_3D', | |
| 'GL_TEXTURE_2D_ARRAY', | |
| ], | |
| 'invalid': [ | |
| 'GL_TEXTURE_1D', | |
| 'GL_TEXTURE_3D', | |
| ], | |
| }, | |
| 'TransformFeedbackBindTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TRANSFORM_FEEDBACK', | |
| ], | |
| 'invalid': [ | |
| 'GL_TEXTURE_2D', | |
| ], | |
| }, | |
| 'TransformFeedbackPrimitiveMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_POINTS', | |
| 'GL_LINES', | |
| 'GL_TRIANGLES', | |
| ], | |
| 'invalid': [ | |
| 'GL_LINE_LOOP', | |
| ], | |
| }, | |
| 'ShaderType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_VERTEX_SHADER', | |
| 'GL_FRAGMENT_SHADER', | |
| ], | |
| 'invalid': [ | |
| 'GL_GEOMETRY_SHADER', | |
| ], | |
| }, | |
| 'FaceType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_FRONT', | |
| 'GL_BACK', | |
| 'GL_FRONT_AND_BACK', | |
| ], | |
| }, | |
| 'FaceMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_CW', | |
| 'GL_CCW', | |
| ], | |
| }, | |
| 'CmpFunction': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NEVER', | |
| 'GL_LESS', | |
| 'GL_EQUAL', | |
| 'GL_LEQUAL', | |
| 'GL_GREATER', | |
| 'GL_NOTEQUAL', | |
| 'GL_GEQUAL', | |
| 'GL_ALWAYS', | |
| ], | |
| }, | |
| 'Equation': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_FUNC_ADD', | |
| 'GL_FUNC_SUBTRACT', | |
| 'GL_FUNC_REVERSE_SUBTRACT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_MIN', | |
| 'GL_MAX', | |
| ], | |
| 'invalid': [ | |
| 'GL_NONE', | |
| ], | |
| }, | |
| 'SrcBlendFactor': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ZERO', | |
| 'GL_ONE', | |
| 'GL_SRC_COLOR', | |
| 'GL_ONE_MINUS_SRC_COLOR', | |
| 'GL_DST_COLOR', | |
| 'GL_ONE_MINUS_DST_COLOR', | |
| 'GL_SRC_ALPHA', | |
| 'GL_ONE_MINUS_SRC_ALPHA', | |
| 'GL_DST_ALPHA', | |
| 'GL_ONE_MINUS_DST_ALPHA', | |
| 'GL_CONSTANT_COLOR', | |
| 'GL_ONE_MINUS_CONSTANT_COLOR', | |
| 'GL_CONSTANT_ALPHA', | |
| 'GL_ONE_MINUS_CONSTANT_ALPHA', | |
| 'GL_SRC_ALPHA_SATURATE', | |
| ], | |
| }, | |
| 'DstBlendFactor': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ZERO', | |
| 'GL_ONE', | |
| 'GL_SRC_COLOR', | |
| 'GL_ONE_MINUS_SRC_COLOR', | |
| 'GL_DST_COLOR', | |
| 'GL_ONE_MINUS_DST_COLOR', | |
| 'GL_SRC_ALPHA', | |
| 'GL_ONE_MINUS_SRC_ALPHA', | |
| 'GL_DST_ALPHA', | |
| 'GL_ONE_MINUS_DST_ALPHA', | |
| 'GL_CONSTANT_COLOR', | |
| 'GL_ONE_MINUS_CONSTANT_COLOR', | |
| 'GL_CONSTANT_ALPHA', | |
| 'GL_ONE_MINUS_CONSTANT_ALPHA', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_SRC_ALPHA_SATURATE' | |
| ] | |
| }, | |
| 'Capability': { | |
| 'type': 'GLenum', | |
| 'valid': ["GL_%s" % cap['name'].upper() | |
| for cap in build_cmd_buffer_lib._CAPABILITY_FLAGS | |
| if ('es3' not in cap or cap['es3'] != True) | |
| and 'extension_flag' not in cap], | |
| 'valid_es3': ["GL_%s" % cap['name'].upper() | |
| for cap in build_cmd_buffer_lib._CAPABILITY_FLAGS | |
| if ('es3' in cap and cap['es3'] == True) | |
| and 'extension_flag' not in cap], | |
| 'invalid': [ | |
| 'GL_CLIP_PLANE0', | |
| 'GL_POINT_SPRITE', | |
| ], | |
| }, | |
| 'DrawMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_POINTS', | |
| 'GL_LINE_STRIP', | |
| 'GL_LINE_LOOP', | |
| 'GL_LINES', | |
| 'GL_TRIANGLE_STRIP', | |
| 'GL_TRIANGLE_FAN', | |
| 'GL_TRIANGLES', | |
| ], | |
| 'invalid': [ | |
| 'GL_QUADS', | |
| 'GL_POLYGON', | |
| ], | |
| }, | |
| 'IndexType': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_UNSIGNED_SHORT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_UNSIGNED_INT', | |
| ], | |
| 'invalid': [ | |
| 'GL_INT', | |
| ], | |
| }, | |
| 'GetMaxIndexType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_UNSIGNED_INT', | |
| ], | |
| 'invalid': [ | |
| 'GL_INT', | |
| ], | |
| }, | |
| 'Attachment': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_COLOR_ATTACHMENT0', | |
| 'GL_DEPTH_ATTACHMENT', | |
| 'GL_STENCIL_ATTACHMENT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_DEPTH_STENCIL_ATTACHMENT', | |
| ], | |
| }, | |
| 'AttachmentQuery': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_COLOR_ATTACHMENT0', | |
| 'GL_DEPTH_ATTACHMENT', | |
| 'GL_STENCIL_ATTACHMENT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_DEPTH_STENCIL_ATTACHMENT', | |
| # For backbuffer. | |
| 'GL_COLOR_EXT', | |
| 'GL_DEPTH_EXT', | |
| 'GL_STENCIL_EXT', | |
| ], | |
| }, | |
| 'BackbufferAttachment': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_COLOR_EXT', | |
| 'GL_DEPTH_EXT', | |
| 'GL_STENCIL_EXT', | |
| ], | |
| }, | |
| 'BufferParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_BUFFER_SIZE', | |
| 'GL_BUFFER_USAGE', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_BUFFER_ACCESS_FLAGS', | |
| 'GL_BUFFER_MAPPED', | |
| ], | |
| 'invalid': [ | |
| 'GL_PIXEL_PACK_BUFFER', | |
| ], | |
| }, | |
| 'BufferParameter64': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_BUFFER_SIZE', | |
| 'GL_BUFFER_MAP_LENGTH', | |
| 'GL_BUFFER_MAP_OFFSET', | |
| ], | |
| 'invalid': [ | |
| 'GL_PIXEL_PACK_BUFFER', | |
| ], | |
| }, | |
| 'BufferMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_INTERLEAVED_ATTRIBS', | |
| 'GL_SEPARATE_ATTRIBS', | |
| ], | |
| 'invalid': [ | |
| 'GL_PIXEL_PACK_BUFFER', | |
| ], | |
| }, | |
| 'FramebufferAttachmentParameter': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER', | |
| ], | |
| }, | |
| 'FramebufferParameter' : { | |
| 'type': 'GLenum', | |
| 'valid' : [], | |
| }, | |
| 'MatrixMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_PATH_PROJECTION_CHROMIUM', | |
| 'GL_PATH_MODELVIEW_CHROMIUM', | |
| ], | |
| }, | |
| 'ProgramParameter': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_DELETE_STATUS', | |
| 'GL_LINK_STATUS', | |
| 'GL_VALIDATE_STATUS', | |
| 'GL_INFO_LOG_LENGTH', | |
| 'GL_ATTACHED_SHADERS', | |
| 'GL_ACTIVE_ATTRIBUTES', | |
| 'GL_ACTIVE_ATTRIBUTE_MAX_LENGTH', | |
| 'GL_ACTIVE_UNIFORMS', | |
| 'GL_ACTIVE_UNIFORM_MAX_LENGTH', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_ACTIVE_UNIFORM_BLOCKS', | |
| 'GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH', | |
| 'GL_TRANSFORM_FEEDBACK_BUFFER_MODE', | |
| 'GL_TRANSFORM_FEEDBACK_VARYINGS', | |
| 'GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH', | |
| ], | |
| 'invalid': [ | |
| 'GL_PROGRAM_BINARY_RETRIEVABLE_HINT', # not supported in Chromium. | |
| ], | |
| }, | |
| 'QueryObjectParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_QUERY_RESULT_EXT', | |
| 'GL_QUERY_RESULT_AVAILABLE_EXT', | |
| 'GL_QUERY_RESULT_AVAILABLE_NO_FLUSH_CHROMIUM_EXT', | |
| ], | |
| }, | |
| 'QueryParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_CURRENT_QUERY_EXT', | |
| ], | |
| }, | |
| 'QueryTarget': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_SAMPLES_PASSED_ARB', | |
| 'GL_ANY_SAMPLES_PASSED_EXT', | |
| 'GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT', | |
| 'GL_COMMANDS_ISSUED_CHROMIUM', | |
| 'GL_LATENCY_QUERY_CHROMIUM', | |
| 'GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM', | |
| 'GL_COMMANDS_COMPLETED_CHROMIUM', | |
| 'GL_READBACK_SHADOW_COPIES_UPDATED_CHROMIUM', | |
| ], | |
| }, | |
| 'RenderBufferParameter': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RENDERBUFFER_RED_SIZE', | |
| 'GL_RENDERBUFFER_GREEN_SIZE', | |
| 'GL_RENDERBUFFER_BLUE_SIZE', | |
| 'GL_RENDERBUFFER_ALPHA_SIZE', | |
| 'GL_RENDERBUFFER_DEPTH_SIZE', | |
| 'GL_RENDERBUFFER_STENCIL_SIZE', | |
| 'GL_RENDERBUFFER_WIDTH', | |
| 'GL_RENDERBUFFER_HEIGHT', | |
| 'GL_RENDERBUFFER_INTERNAL_FORMAT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_RENDERBUFFER_SAMPLES', | |
| ], | |
| }, | |
| 'InternalFormatParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NUM_SAMPLE_COUNTS', | |
| 'GL_SAMPLES', | |
| ], | |
| }, | |
| 'SamplerParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_TEXTURE_MAG_FILTER', | |
| 'GL_TEXTURE_MIN_FILTER', | |
| 'GL_TEXTURE_MIN_LOD', | |
| 'GL_TEXTURE_MAX_LOD', | |
| 'GL_TEXTURE_WRAP_S', | |
| 'GL_TEXTURE_WRAP_T', | |
| 'GL_TEXTURE_WRAP_R', | |
| 'GL_TEXTURE_COMPARE_MODE', | |
| 'GL_TEXTURE_COMPARE_FUNC', | |
| ], | |
| 'invalid': [ | |
| 'GL_GENERATE_MIPMAP', | |
| ], | |
| }, | |
| 'ShaderParameter': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_SHADER_TYPE', | |
| 'GL_DELETE_STATUS', | |
| 'GL_COMPILE_STATUS', | |
| 'GL_INFO_LOG_LENGTH', | |
| 'GL_SHADER_SOURCE_LENGTH', | |
| 'GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE', | |
| ], | |
| }, | |
| 'ShaderPrecision': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_LOW_FLOAT', | |
| 'GL_MEDIUM_FLOAT', | |
| 'GL_HIGH_FLOAT', | |
| 'GL_LOW_INT', | |
| 'GL_MEDIUM_INT', | |
| 'GL_HIGH_INT', | |
| ], | |
| }, | |
| 'StringType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_VENDOR', | |
| 'GL_RENDERER', | |
| 'GL_VERSION', | |
| 'GL_SHADING_LANGUAGE_VERSION', | |
| 'GL_EXTENSIONS', | |
| ], | |
| }, | |
| 'IndexedStringType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_EXTENSIONS', | |
| ], | |
| }, | |
| 'TextureParameter': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_TEXTURE_MAG_FILTER', | |
| 'GL_TEXTURE_MIN_FILTER', | |
| 'GL_TEXTURE_WRAP_S', | |
| 'GL_TEXTURE_WRAP_T', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_TEXTURE_BASE_LEVEL', | |
| 'GL_TEXTURE_COMPARE_FUNC', | |
| 'GL_TEXTURE_COMPARE_MODE', | |
| 'GL_TEXTURE_IMMUTABLE_FORMAT', | |
| 'GL_TEXTURE_IMMUTABLE_LEVELS', | |
| 'GL_TEXTURE_MAX_LEVEL', | |
| 'GL_TEXTURE_MAX_LOD', | |
| 'GL_TEXTURE_MIN_LOD', | |
| 'GL_TEXTURE_WRAP_R', | |
| ], | |
| 'invalid': [ | |
| 'GL_GENERATE_MIPMAP', | |
| ], | |
| }, | |
| 'TextureWrapMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_CLAMP_TO_EDGE', | |
| 'GL_MIRRORED_REPEAT', | |
| 'GL_REPEAT', | |
| ], | |
| }, | |
| 'TextureMinFilterMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NEAREST', | |
| 'GL_LINEAR', | |
| 'GL_NEAREST_MIPMAP_NEAREST', | |
| 'GL_LINEAR_MIPMAP_NEAREST', | |
| 'GL_NEAREST_MIPMAP_LINEAR', | |
| 'GL_LINEAR_MIPMAP_LINEAR', | |
| ], | |
| }, | |
| 'TextureMagFilterMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NEAREST', | |
| 'GL_LINEAR', | |
| ], | |
| }, | |
| 'TextureCompareFunc': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_LEQUAL', | |
| 'GL_GEQUAL', | |
| 'GL_LESS', | |
| 'GL_GREATER', | |
| 'GL_EQUAL', | |
| 'GL_NOTEQUAL', | |
| 'GL_ALWAYS', | |
| 'GL_NEVER', | |
| ], | |
| }, | |
| 'TextureCompareMode': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_NONE', | |
| 'GL_COMPARE_REF_TO_TEXTURE', | |
| ], | |
| }, | |
| 'TextureSrgbDecodeExt': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_DECODE_EXT', | |
| 'GL_SKIP_DECODE_EXT', | |
| ], | |
| }, | |
| 'TextureSwizzle': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_RED', | |
| 'GL_GREEN', | |
| 'GL_BLUE', | |
| 'GL_ALPHA', | |
| 'GL_ZERO', | |
| 'GL_ONE', | |
| ], | |
| }, | |
| 'TextureUsage': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NONE', | |
| 'GL_FRAMEBUFFER_ATTACHMENT_ANGLE', | |
| ], | |
| }, | |
| 'VertexAttribute': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| # some enum that the decoder actually passes through to GL needs | |
| # to be the first listed here since it's used in unit tests. | |
| 'GL_VERTEX_ATTRIB_ARRAY_NORMALIZED', | |
| 'GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING', | |
| 'GL_VERTEX_ATTRIB_ARRAY_ENABLED', | |
| 'GL_VERTEX_ATTRIB_ARRAY_SIZE', | |
| 'GL_VERTEX_ATTRIB_ARRAY_STRIDE', | |
| 'GL_VERTEX_ATTRIB_ARRAY_TYPE', | |
| 'GL_CURRENT_VERTEX_ATTRIB', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_VERTEX_ATTRIB_ARRAY_INTEGER', | |
| 'GL_VERTEX_ATTRIB_ARRAY_DIVISOR', | |
| ], | |
| }, | |
| 'VertexPointer': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_VERTEX_ATTRIB_ARRAY_POINTER', | |
| ], | |
| }, | |
| 'HintTarget': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_GENERATE_MIPMAP_HINT', | |
| 'GL_TEXTURE_FILTERING_HINT_CHROMIUM', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_FRAGMENT_SHADER_DERIVATIVE_HINT', | |
| ], | |
| 'invalid': [ | |
| 'GL_PERSPECTIVE_CORRECTION_HINT', | |
| ], | |
| }, | |
| 'HintMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_FASTEST', | |
| 'GL_NICEST', | |
| 'GL_DONT_CARE', | |
| ], | |
| }, | |
| 'PixelStore': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_PACK_ALIGNMENT', | |
| 'GL_UNPACK_ALIGNMENT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_PACK_ROW_LENGTH', | |
| 'GL_PACK_SKIP_PIXELS', | |
| 'GL_PACK_SKIP_ROWS', | |
| 'GL_UNPACK_ROW_LENGTH', | |
| 'GL_UNPACK_IMAGE_HEIGHT', | |
| 'GL_UNPACK_SKIP_PIXELS', | |
| 'GL_UNPACK_SKIP_ROWS', | |
| 'GL_UNPACK_SKIP_IMAGES', | |
| ], | |
| 'invalid': [ | |
| 'GL_PACK_SWAP_BYTES', | |
| 'GL_UNPACK_SWAP_BYTES', | |
| ], | |
| }, | |
| 'PixelStoreAlignment': { | |
| 'type': 'GLint', | |
| 'is_complete': True, | |
| 'valid': [ | |
| '1', | |
| '2', | |
| '4', | |
| '8', | |
| ], | |
| 'invalid': [ | |
| '3', | |
| '9', | |
| ], | |
| }, | |
| 'ReadPixelFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ALPHA', | |
| 'GL_RGB', | |
| 'GL_RGBA', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_RED', | |
| 'GL_RED_INTEGER', | |
| 'GL_RG', | |
| 'GL_RG_INTEGER', | |
| 'GL_RGB_INTEGER', | |
| 'GL_RGBA_INTEGER', | |
| ], | |
| }, | |
| 'PixelType': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_UNSIGNED_SHORT_5_6_5', | |
| 'GL_UNSIGNED_SHORT_4_4_4_4', | |
| 'GL_UNSIGNED_SHORT_5_5_5_1', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_INT', | |
| 'GL_INT', | |
| 'GL_HALF_FLOAT', | |
| 'GL_FLOAT', | |
| 'GL_UNSIGNED_INT_2_10_10_10_REV', | |
| 'GL_UNSIGNED_INT_10F_11F_11F_REV', | |
| 'GL_UNSIGNED_INT_5_9_9_9_REV', | |
| 'GL_UNSIGNED_INT_24_8', | |
| 'GL_FLOAT_32_UNSIGNED_INT_24_8_REV', | |
| ], | |
| 'invalid': [ | |
| 'GL_UNSIGNED_BYTE_3_3_2', | |
| ], | |
| }, | |
| 'PathCoordType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_FLOAT', | |
| ], | |
| }, | |
| 'PathCoverMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_CONVEX_HULL_CHROMIUM', | |
| 'GL_BOUNDING_BOX_CHROMIUM', | |
| ], | |
| }, | |
| 'PathFillMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_INVERT', | |
| 'GL_COUNT_UP_CHROMIUM', | |
| 'GL_COUNT_DOWN_CHROMIUM', | |
| ], | |
| }, | |
| 'PathInstancedCoverMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_CONVEX_HULL_CHROMIUM', | |
| 'GL_BOUNDING_BOX_CHROMIUM', | |
| 'GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM', | |
| ], | |
| }, | |
| 'PathNameType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_INT', | |
| 'GL_INT', | |
| ], | |
| }, | |
| 'PathParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_PATH_STROKE_WIDTH_CHROMIUM', | |
| 'GL_PATH_END_CAPS_CHROMIUM', | |
| 'GL_PATH_JOIN_STYLE_CHROMIUM', | |
| 'GL_PATH_MITER_LIMIT_CHROMIUM', | |
| 'GL_PATH_STROKE_BOUND_CHROMIUM', | |
| ] | |
| }, | |
| 'PathParameterCapValues': { | |
| 'type': 'GLint', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_FLAT', | |
| 'GL_SQUARE_CHROMIUM', | |
| 'GL_ROUND_CHROMIUM', | |
| ] | |
| }, | |
| 'PathParameterJoinValues': { | |
| 'type': 'GLint', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_MITER_REVERT_CHROMIUM', | |
| 'GL_BEVEL_CHROMIUM', | |
| 'GL_ROUND_CHROMIUM', | |
| ] | |
| }, | |
| 'PathTransformType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NONE', | |
| 'GL_TRANSLATE_X_CHROMIUM', | |
| 'GL_TRANSLATE_Y_CHROMIUM', | |
| 'GL_TRANSLATE_2D_CHROMIUM', | |
| 'GL_TRANSLATE_3D_CHROMIUM', | |
| 'GL_AFFINE_2D_CHROMIUM', | |
| 'GL_AFFINE_3D_CHROMIUM', | |
| 'GL_TRANSPOSE_AFFINE_2D_CHROMIUM', | |
| 'GL_TRANSPOSE_AFFINE_3D_CHROMIUM', | |
| ], | |
| }, | |
| 'PathFragmentInputGenMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_NONE', | |
| 'GL_EYE_LINEAR_CHROMIUM', | |
| 'GL_OBJECT_LINEAR_CHROMIUM', | |
| 'GL_CONSTANT_CHROMIUM', | |
| ], | |
| }, | |
| 'ReadPixelType': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_UNSIGNED_SHORT_5_6_5', | |
| 'GL_UNSIGNED_SHORT_4_4_4_4', | |
| 'GL_UNSIGNED_SHORT_5_5_5_1', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_INT', | |
| 'GL_INT', | |
| 'GL_HALF_FLOAT', | |
| 'GL_FLOAT', | |
| 'GL_UNSIGNED_INT_2_10_10_10_REV', | |
| ], | |
| }, | |
| 'RenderBufferFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RGBA4', | |
| 'GL_RGB565', | |
| 'GL_RGB5_A1', | |
| 'GL_DEPTH_COMPONENT16', | |
| 'GL_STENCIL_INDEX8', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_R8', | |
| 'GL_R8UI', | |
| 'GL_R8I', | |
| 'GL_R16UI', | |
| 'GL_R16I', | |
| 'GL_R32UI', | |
| 'GL_R32I', | |
| 'GL_RG8', | |
| 'GL_RG8UI', | |
| 'GL_RG8I', | |
| 'GL_RG16UI', | |
| 'GL_RG16I', | |
| 'GL_RG32UI', | |
| 'GL_RG32I', | |
| 'GL_RGB8', | |
| 'GL_RGBA8', | |
| 'GL_SRGB8_ALPHA8', | |
| 'GL_RGB10_A2', | |
| 'GL_RGBA8UI', | |
| 'GL_RGBA8I', | |
| 'GL_RGB10_A2UI', | |
| 'GL_RGBA16UI', | |
| 'GL_RGBA16I', | |
| 'GL_RGBA32UI', | |
| 'GL_RGBA32I', | |
| 'GL_DEPTH_COMPONENT24', | |
| 'GL_DEPTH_COMPONENT32F', | |
| 'GL_DEPTH24_STENCIL8', | |
| 'GL_DEPTH32F_STENCIL8', | |
| ], | |
| }, | |
| 'ShaderBinaryFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| ], | |
| }, | |
| 'StencilOp': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_KEEP', | |
| 'GL_ZERO', | |
| 'GL_REPLACE', | |
| 'GL_INCR', | |
| 'GL_INCR_WRAP', | |
| 'GL_DECR', | |
| 'GL_DECR_WRAP', | |
| 'GL_INVERT', | |
| ], | |
| }, | |
| 'TextureFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ALPHA', | |
| 'GL_LUMINANCE', | |
| 'GL_LUMINANCE_ALPHA', | |
| 'GL_RGB', | |
| 'GL_RGBA', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_RED', | |
| 'GL_RED_INTEGER', | |
| 'GL_RG', | |
| 'GL_RG_INTEGER', | |
| 'GL_RGB_INTEGER', | |
| 'GL_RGBA_INTEGER', | |
| 'GL_DEPTH_COMPONENT', | |
| 'GL_DEPTH_STENCIL', | |
| ], | |
| 'invalid': [ | |
| 'GL_BGRA', | |
| 'GL_BGR', | |
| ], | |
| }, | |
| 'TextureInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ALPHA', | |
| 'GL_LUMINANCE', | |
| 'GL_LUMINANCE_ALPHA', | |
| 'GL_RGB', | |
| 'GL_RGBA', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_R8', | |
| 'GL_R8_SNORM', | |
| 'GL_R16F', | |
| 'GL_R32F', | |
| 'GL_R8UI', | |
| 'GL_R8I', | |
| 'GL_R16UI', | |
| 'GL_R16I', | |
| 'GL_R32UI', | |
| 'GL_R32I', | |
| 'GL_RG8', | |
| 'GL_RG8_SNORM', | |
| 'GL_RG16F', | |
| 'GL_RG32F', | |
| 'GL_RG8UI', | |
| 'GL_RG8I', | |
| 'GL_RG16UI', | |
| 'GL_RG16I', | |
| 'GL_RG32UI', | |
| 'GL_RG32I', | |
| 'GL_RGB8', | |
| 'GL_SRGB8', | |
| 'GL_RGB565', | |
| 'GL_RGB8_SNORM', | |
| 'GL_R11F_G11F_B10F', | |
| 'GL_RGB9_E5', | |
| 'GL_RGB16F', | |
| 'GL_RGB32F', | |
| 'GL_RGB8UI', | |
| 'GL_RGB8I', | |
| 'GL_RGB16UI', | |
| 'GL_RGB16I', | |
| 'GL_RGB32UI', | |
| 'GL_RGB32I', | |
| 'GL_RGBA8', | |
| 'GL_SRGB8_ALPHA8', | |
| 'GL_RGBA8_SNORM', | |
| 'GL_RGB5_A1', | |
| 'GL_RGBA4', | |
| 'GL_RGB10_A2', | |
| 'GL_RGBA16F', | |
| 'GL_RGBA32F', | |
| 'GL_RGBA8UI', | |
| 'GL_RGBA8I', | |
| 'GL_RGB10_A2UI', | |
| 'GL_RGBA16UI', | |
| 'GL_RGBA16I', | |
| 'GL_RGBA32UI', | |
| 'GL_RGBA32I', | |
| # The DEPTH/STENCIL formats are not supported in CopyTexImage2D. | |
| # We will reject them dynamically in GPU command buffer. | |
| 'GL_DEPTH_COMPONENT16', | |
| 'GL_DEPTH_COMPONENT24', | |
| 'GL_DEPTH_COMPONENT32F', | |
| 'GL_DEPTH24_STENCIL8', | |
| 'GL_DEPTH32F_STENCIL8', | |
| ], | |
| 'invalid': [ | |
| 'GL_BGRA', | |
| 'GL_BGR', | |
| ], | |
| }, | |
| 'TextureUnsizedInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_ALPHA', | |
| 'GL_LUMINANCE', | |
| 'GL_LUMINANCE_ALPHA', | |
| 'GL_RGB', | |
| 'GL_RGBA', | |
| ], | |
| }, | |
| 'TextureSizedColorRenderableInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_R8', | |
| 'GL_R8UI', | |
| 'GL_R8I', | |
| 'GL_R16UI', | |
| 'GL_R16I', | |
| 'GL_R32UI', | |
| 'GL_R32I', | |
| 'GL_RG8', | |
| 'GL_RG8UI', | |
| 'GL_RG8I', | |
| 'GL_RG16UI', | |
| 'GL_RG16I', | |
| 'GL_RG32UI', | |
| 'GL_RG32I', | |
| 'GL_RGB8', | |
| 'GL_RGB565', | |
| 'GL_RGBA8', | |
| 'GL_SRGB8_ALPHA8', | |
| 'GL_RGB5_A1', | |
| 'GL_RGBA4', | |
| 'GL_RGB10_A2', | |
| 'GL_RGBA8UI', | |
| 'GL_RGBA8I', | |
| 'GL_RGB10_A2UI', | |
| 'GL_RGBA16UI', | |
| 'GL_RGBA16I', | |
| 'GL_RGBA32UI', | |
| 'GL_RGBA32I', | |
| ], | |
| }, | |
| 'TextureDepthRenderableInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [], | |
| 'valid_es3': [ | |
| 'GL_DEPTH_COMPONENT16', | |
| 'GL_DEPTH_COMPONENT24', | |
| 'GL_DEPTH_COMPONENT32F', | |
| 'GL_DEPTH24_STENCIL8', | |
| 'GL_DEPTH32F_STENCIL8', | |
| ], | |
| }, | |
| 'TextureStencilRenderableInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [], | |
| 'valid_es3': [ | |
| 'GL_STENCIL_INDEX8', | |
| 'GL_DEPTH24_STENCIL8', | |
| 'GL_DEPTH32F_STENCIL8', | |
| ], | |
| }, | |
| 'TextureSizedTextureFilterableInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_R8', | |
| 'GL_R8_SNORM', | |
| 'GL_R16F', | |
| 'GL_RG8', | |
| 'GL_RG8_SNORM', | |
| 'GL_RG16F', | |
| 'GL_RGB8', | |
| 'GL_SRGB8', | |
| 'GL_RGB565', | |
| 'GL_RGB8_SNORM', | |
| 'GL_R11F_G11F_B10F', | |
| 'GL_RGB9_E5', | |
| 'GL_RGB16F', | |
| 'GL_RGBA8', | |
| 'GL_SRGB8_ALPHA8', | |
| 'GL_RGBA8_SNORM', | |
| 'GL_RGB5_A1', | |
| 'GL_RGBA4', | |
| 'GL_RGB10_A2', | |
| 'GL_RGBA16F', | |
| 'GL_RGB_YCRCB_420_CHROMIUM', | |
| 'GL_RGB_YCBCR_422_CHROMIUM', | |
| 'GL_RGB_YCBCR_420V_CHROMIUM', | |
| 'GL_R16_EXT', | |
| ], | |
| }, | |
| 'TextureInternalFormatStorage': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RGB565', | |
| 'GL_RGBA4', | |
| 'GL_RGB5_A1', | |
| 'GL_ALPHA8_EXT', | |
| 'GL_LUMINANCE8_EXT', | |
| 'GL_LUMINANCE8_ALPHA8_EXT', | |
| 'GL_RGB8_OES', | |
| 'GL_RGBA8_OES', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_R8', | |
| 'GL_R8_SNORM', | |
| 'GL_R16F', | |
| 'GL_R32F', | |
| 'GL_R8UI', | |
| 'GL_R8I', | |
| 'GL_R16UI', | |
| 'GL_R16I', | |
| 'GL_R32UI', | |
| 'GL_R32I', | |
| 'GL_RG8', | |
| 'GL_RG8_SNORM', | |
| 'GL_RG16F', | |
| 'GL_RG32F', | |
| 'GL_RG8UI', | |
| 'GL_RG8I', | |
| 'GL_RG16UI', | |
| 'GL_RG16I', | |
| 'GL_RG32UI', | |
| 'GL_RG32I', | |
| 'GL_RGB8', | |
| 'GL_SRGB8', | |
| 'GL_RGB8_SNORM', | |
| 'GL_R11F_G11F_B10F', | |
| 'GL_RGB9_E5', | |
| 'GL_RGB16F', | |
| 'GL_RGB32F', | |
| 'GL_RGB8UI', | |
| 'GL_RGB8I', | |
| 'GL_RGB16UI', | |
| 'GL_RGB16I', | |
| 'GL_RGB32UI', | |
| 'GL_RGB32I', | |
| 'GL_RGBA8', | |
| 'GL_SRGB8_ALPHA8', | |
| 'GL_RGBA8_SNORM', | |
| 'GL_RGB10_A2', | |
| 'GL_RGBA16F', | |
| 'GL_RGBA32F', | |
| 'GL_RGBA8UI', | |
| 'GL_RGBA8I', | |
| 'GL_RGB10_A2UI', | |
| 'GL_RGBA16UI', | |
| 'GL_RGBA16I', | |
| 'GL_RGBA32UI', | |
| 'GL_RGBA32I', | |
| 'GL_DEPTH_COMPONENT16', | |
| 'GL_DEPTH_COMPONENT24', | |
| 'GL_DEPTH_COMPONENT32F', | |
| 'GL_DEPTH24_STENCIL8', | |
| 'GL_DEPTH32F_STENCIL8', | |
| ], | |
| 'deprecated_es3': [ | |
| 'GL_ALPHA8_EXT', | |
| 'GL_LUMINANCE8_EXT', | |
| 'GL_LUMINANCE8_ALPHA8_EXT', | |
| 'GL_ALPHA16F_EXT', | |
| 'GL_LUMINANCE16F_EXT', | |
| 'GL_LUMINANCE_ALPHA16F_EXT', | |
| 'GL_ALPHA32F_EXT', | |
| 'GL_LUMINANCE32F_EXT', | |
| 'GL_LUMINANCE_ALPHA32F_EXT', | |
| ], | |
| }, | |
| 'ImageInternalFormat': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_RGB', | |
| 'GL_RGB_YCRCB_420_CHROMIUM', | |
| 'GL_RGB_YCBCR_422_CHROMIUM', | |
| 'GL_RGB_YCBCR_420V_CHROMIUM', | |
| 'GL_RGBA', | |
| ], | |
| }, | |
| 'UniformParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_UNIFORM_SIZE', | |
| 'GL_UNIFORM_TYPE', | |
| 'GL_UNIFORM_NAME_LENGTH', | |
| 'GL_UNIFORM_BLOCK_INDEX', | |
| 'GL_UNIFORM_OFFSET', | |
| 'GL_UNIFORM_ARRAY_STRIDE', | |
| 'GL_UNIFORM_MATRIX_STRIDE', | |
| 'GL_UNIFORM_IS_ROW_MAJOR', | |
| ], | |
| 'invalid': [ | |
| 'GL_UNIFORM_BLOCK_NAME_LENGTH', | |
| ], | |
| }, | |
| 'UniformBlockParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_UNIFORM_BLOCK_BINDING', | |
| 'GL_UNIFORM_BLOCK_DATA_SIZE', | |
| 'GL_UNIFORM_BLOCK_NAME_LENGTH', | |
| 'GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS', | |
| 'GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES', | |
| 'GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER', | |
| 'GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER', | |
| ], | |
| 'invalid': [ | |
| 'GL_NEAREST', | |
| ], | |
| }, | |
| 'VertexAttribType': { | |
| 'type': 'GLenum', | |
| 'valid': [ | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_SHORT', | |
| # 'GL_FIXED', // This is not available on Desktop GL. | |
| 'GL_FLOAT', | |
| ], | |
| 'valid_es3': [ | |
| 'GL_INT', | |
| 'GL_UNSIGNED_INT', | |
| 'GL_HALF_FLOAT', | |
| 'GL_INT_2_10_10_10_REV', | |
| 'GL_UNSIGNED_INT_2_10_10_10_REV', | |
| ], | |
| 'invalid': [ | |
| 'GL_DOUBLE', | |
| ], | |
| }, | |
| 'VertexAttribIType': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_BYTE', | |
| 'GL_UNSIGNED_BYTE', | |
| 'GL_SHORT', | |
| 'GL_UNSIGNED_SHORT', | |
| 'GL_INT', | |
| 'GL_UNSIGNED_INT', | |
| ], | |
| 'invalid': [ | |
| 'GL_FLOAT', | |
| 'GL_DOUBLE', | |
| ], | |
| }, | |
| 'TextureBorder': { | |
| 'type': 'GLint', | |
| 'is_complete': True, | |
| 'valid': [ | |
| '0', | |
| ], | |
| 'invalid': [ | |
| '1', | |
| ], | |
| }, | |
| 'VertexAttribSize': { | |
| 'type': 'GLint', | |
| 'validator': False, | |
| 'valid': [ | |
| '1', | |
| '2', | |
| '3', | |
| '4', | |
| ], | |
| 'invalid': [ | |
| '0', | |
| '5', | |
| ], | |
| }, | |
| 'ResetStatus': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_GUILTY_CONTEXT_RESET_ARB', | |
| 'GL_INNOCENT_CONTEXT_RESET_ARB', | |
| 'GL_UNKNOWN_CONTEXT_RESET_ARB', | |
| ], | |
| }, | |
| 'SyncCondition': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_SYNC_GPU_COMMANDS_COMPLETE', | |
| ], | |
| 'invalid': [ | |
| '0', | |
| ], | |
| }, | |
| 'SyncFlags': { | |
| 'type': 'GLbitfield', | |
| 'is_complete': True, | |
| 'valid': [ | |
| '0', | |
| ], | |
| 'invalid': [ | |
| '1', | |
| ], | |
| }, | |
| 'SyncFlushFlags': { | |
| 'type': 'GLbitfield', | |
| 'valid': [ | |
| 'GL_SYNC_FLUSH_COMMANDS_BIT', | |
| '0', | |
| ], | |
| 'invalid': [ | |
| '0xFFFFFFFF', | |
| ], | |
| }, | |
| 'SyncParameter': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_SYNC_STATUS', # This needs to be the 1st; all others are cached. | |
| 'GL_OBJECT_TYPE', | |
| 'GL_SYNC_CONDITION', | |
| 'GL_SYNC_FLAGS', | |
| ], | |
| 'invalid': [ | |
| 'GL_SYNC_FENCE', | |
| ], | |
| }, | |
| 'ClientBufferUsage': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_SCANOUT_CHROMIUM', | |
| ], | |
| 'invalid': [ | |
| 'GL_NONE', | |
| ], | |
| }, | |
| 'WindowRectanglesMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_INCLUSIVE_EXT', | |
| 'GL_EXCLUSIVE_EXT', | |
| ], | |
| }, | |
| 'SwapBuffersFlags': { | |
| 'type': 'GLbitfield', | |
| 'is_complete': True, | |
| 'valid': [ | |
| '0', | |
| 'gpu::SwapBuffersFlags::kPresentationFeedback', | |
| 'gpu::SwapBuffersFlags::kVSyncParams', | |
| 'gpu::SwapBuffersFlags::kPresentationFeedback | ' | |
| 'gpu::SwapBuffersFlags::kVSyncParams', | |
| ], | |
| }, | |
| 'SharedImageAccessMode': { | |
| 'type': 'GLenum', | |
| 'is_complete': True, | |
| 'valid': [ | |
| 'GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM', | |
| 'GL_SHARED_IMAGE_ACCESS_MODE_READ_CHROMIUM', | |
| ], | |
| }, | |
| } | |
| # A function info object specifies the type and other special data for the | |
| # command that will be generated. A base function info object is generated by | |
| # parsing the "gles2_cmd_buffer_functions.txt", one for each function in the | |
| # file. These function info objects can be augmented and their values can be | |
| # overridden by adding an object to the table below. | |
| # | |
| # Must match function names specified in "gles2_cmd_buffer_functions.txt". | |
| # | |
| # cmd_comment: A comment added to the cmd format. | |
| # type: defines which handler will be used to generate code. | |
| # decoder_func: defines which function to call in the decoder to execute the | |
| # corresponding GL command. If not specified the GL command will | |
| # be called directly. | |
| # gl_test_func: GL function that is expected to be called when testing. | |
| # cmd_args: The arguments to use for the command. This overrides generating | |
| # them based on the GL function arguments. | |
| # data_transfer_methods: Array of methods that are used for transfering the | |
| # pointer data. Possible values: 'immediate', 'shm', 'bucket'. | |
| # The default is 'immediate' if the command has one pointer | |
| # argument, otherwise 'shm'. One command is generated for each | |
| # transfer method. Affects only commands which are not of type | |
| # 'GETn' or 'GLcharN'. | |
| # Note: the command arguments that affect this are the final args, | |
| # taking cmd_args override into consideration. | |
| # impl_func: Whether or not to generate the GLES2Implementation part of this | |
| # command. | |
| # internal: If true, this is an internal command only, not exposed to the | |
| # client. | |
| # needs_size: If True a data_size field is added to the command. | |
| # count: The number of units per element. For PUTn or PUT types. | |
| # use_count_func: If True the actual data count needs to be computed; the count | |
| # argument specifies the maximum count. | |
| # unit_test: If False no service side unit test will be generated. | |
| # client_test: If False no client side unit test will be generated. | |
| # expectation: If False the unit test will have no expected calls. | |
| # gen_func: Name of function that generates GL resource for corresponding | |
| # bind function. | |
| # states: array of states that get set by this function corresponding to | |
| # the given arguments | |
| # no_gl: no GL function is called. | |
| # valid_args: A dictionary of argument indices to args to use in unit tests | |
| # when they can not be automatically determined. | |
| # pepper_interface: The pepper interface that is used for this extension | |
| # pepper_name: The name of the function as exposed to pepper. | |
| # pepper_args: A string representing the argument list (what would appear in | |
| # C/C++ between the parentheses for the function declaration) | |
| # that the Pepper API expects for this function. Use this only if | |
| # the stable Pepper API differs from the GLES2 argument list. | |
| # invalid_test: False if no invalid test needed. | |
| # shadowed: True = the value is shadowed so no glGetXXX call will be made. | |
| # first_element_only: For PUT types, True if only the first element of an | |
| # array is used and we end up calling the single value | |
| # corresponding function. eg. TexParameteriv -> TexParameteri | |
| # extension: Function is an extension to GL and should not be exposed to | |
| # pepper unless pepper_interface is defined. | |
| # extension_flag: Function is an extension and should be enabled only when | |
| # the corresponding feature info flag is enabled. Implies | |
| # 'extension': True. | |
| # not_shared: For GENn types, True if objects can't be shared between contexts | |
| # es3: ES3 API. True if the function requires an ES3 or WebGL2 context. | |
| # es31: ES31 API. True if the function requires an WebGL2Compute | |
| # context. | |
| _FUNCTION_INFO = { | |
| 'ActiveTexture': { | |
| 'decoder_func': 'DoActiveTexture', | |
| 'unit_test': False, | |
| 'impl_func': False, | |
| 'client_test': False, | |
| }, | |
| 'ApplyScreenSpaceAntialiasingCHROMIUM': { | |
| 'decoder_func': 'DoApplyScreenSpaceAntialiasingCHROMIUM', | |
| 'extension': 'CHROMIUM_screen_space_antialiasing', | |
| 'extension_flag': 'chromium_screen_space_antialiasing', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| }, | |
| 'AttachShader': {'decoder_func': 'DoAttachShader'}, | |
| 'BindAttribLocation': { | |
| 'type': 'GLchar', | |
| 'data_transfer_methods': ['bucket'], | |
| 'needs_size': True, | |
| }, | |
| 'BindBuffer': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindBuffer', | |
| 'gen_func': 'GenBuffersARB', | |
| }, | |
| 'BindBufferBase': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindBufferBase', | |
| 'gen_func': 'GenBuffersARB', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'BindBufferRange': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindBufferRange', | |
| 'gen_func': 'GenBuffersARB', | |
| 'unit_test': False, | |
| 'valid_args': { | |
| '3': '4', | |
| '4': '4' | |
| }, | |
| 'es3': True, | |
| }, | |
| 'BindFramebuffer': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindFramebuffer', | |
| 'gl_test_func': 'glBindFramebufferEXT', | |
| 'gen_func': 'GenFramebuffersEXT', | |
| 'trace_level': 1, | |
| }, | |
| 'BindImageTexture':{ | |
| 'cmd_args': 'GLuint unit, GLuint texture, GLint level, GLboolean layered, ' | |
| 'GLint layer, GLenum access, GLenum format', | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| 'es31': True, | |
| }, | |
| 'BindRenderbuffer': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindRenderbuffer', | |
| 'gl_test_func': 'glBindRenderbufferEXT', | |
| 'gen_func': 'GenRenderbuffersEXT', | |
| }, | |
| 'BindSampler': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindSampler', | |
| 'es3': True, | |
| }, | |
| 'BindTexture': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindTexture', | |
| 'gen_func': 'GenTextures', | |
| # TODO: remove this once client side caching works. | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'BindTransformFeedback': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoBindTransformFeedback', | |
| 'es3': True, | |
| 'unit_test': False, | |
| }, | |
| 'BlitFramebufferCHROMIUM': { | |
| 'decoder_func': 'DoBlitFramebufferCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'chromium_framebuffer_multisample', | |
| 'extension_flag': 'chromium_framebuffer_multisample', | |
| 'pepper_interface': 'FramebufferBlit', | |
| 'pepper_name': 'BlitFramebufferEXT', | |
| 'defer_reads': True, | |
| 'defer_draws': True, | |
| 'trace_level': 1, | |
| }, | |
| 'BufferData': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'size_args': { | |
| 'data': 'size', }, | |
| 'client_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'BufferSubData': { | |
| 'type': 'Data', | |
| 'client_test': False, | |
| 'decoder_func': 'DoBufferSubData', | |
| 'data_transfer_methods': ['shm'], | |
| 'size_args': { | |
| 'data': 'size', }, | |
| 'trace_level': 2, | |
| }, | |
| 'CheckFramebufferStatus': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoCheckFramebufferStatus', | |
| 'gl_test_func': 'glCheckFramebufferStatusEXT', | |
| 'error_value': 'GL_FRAMEBUFFER_UNSUPPORTED', | |
| 'result': ['GLenum'], | |
| }, | |
| 'Clear': { | |
| 'decoder_func': 'DoClear', | |
| 'defer_draws': True, | |
| 'trace_level': 2, | |
| 'valid_args': { | |
| '0': 'GL_COLOR_BUFFER_BIT' | |
| }, | |
| }, | |
| 'ClearBufferiv': { | |
| 'type': 'PUT', | |
| 'use_count_func': True, | |
| 'count': 4, | |
| 'decoder_func': 'DoClearBufferiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| 'trace_level': 2, | |
| }, | |
| 'ClearBufferuiv': { | |
| 'type': 'PUT', | |
| 'use_count_func': True, | |
| 'count': 4, | |
| 'decoder_func': 'DoClearBufferuiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| 'trace_level': 2, | |
| }, | |
| 'ClearBufferfv': { | |
| 'type': 'PUT', | |
| 'use_count_func': True, | |
| 'count': 4, | |
| 'decoder_func': 'DoClearBufferfv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| 'trace_level': 2, | |
| }, | |
| 'ClearBufferfi': { | |
| 'es3': True, | |
| 'decoder_func': 'DoClearBufferfi', | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'ClearColor': { | |
| 'type': 'StateSet', | |
| 'state': 'ClearColor', | |
| }, | |
| 'ClearDepthf': { | |
| 'type': 'StateSet', | |
| 'state': 'ClearDepthf', | |
| 'decoder_func': 'glClearDepth', | |
| 'gl_test_func': 'glClearDepth', | |
| 'valid_args': { | |
| '0': '0.5f' | |
| }, | |
| }, | |
| 'ClientWaitSync': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': 'GLuint sync, GLbitfieldSyncFlushFlags flags, ' | |
| 'GLuint64 timeout, GLenum* result', | |
| 'es3': True, | |
| 'result': ['GLenum'], | |
| 'trace_level': 2, | |
| }, | |
| 'ColorMask': { | |
| 'type': 'StateSet', | |
| 'state': 'ColorMask', | |
| 'no_gl': True, | |
| 'expectation': False, | |
| }, | |
| 'CopyBufferSubData': { | |
| 'decoder_func': 'DoCopyBufferSubData', | |
| 'impl_func': False, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'CoverageModulationCHROMIUM': { | |
| 'type': 'StateSet', | |
| 'state': 'CoverageModulationCHROMIUM', | |
| 'decoder_func': 'glCoverageModulationNV', | |
| 'extension': 'CHROMIUM_framebuffer_mixed_samples', | |
| 'extension_flag': 'chromium_framebuffer_mixed_samples', | |
| }, | |
| 'CreateAndConsumeTextureCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_texture_mailbox", | |
| 'trace_level': 2, | |
| }, | |
| 'CreateAndConsumeTextureINTERNAL': { | |
| 'decoder_func': 'DoCreateAndConsumeTextureINTERNAL', | |
| 'internal': True, | |
| 'type': 'PUT', | |
| 'count': 16, # GL_MAILBOX_SIZE_CHROMIUM | |
| 'impl_func': False, | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'ClearStencil': { | |
| 'type': 'StateSet', | |
| 'state': 'ClearStencil', | |
| }, | |
| 'EnableFeatureCHROMIUM': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'decoder_func': 'DoEnableFeatureCHROMIUM', | |
| 'cmd_args': 'GLuint bucket_id, GLint* result', | |
| 'result': ['GLint'], | |
| 'extension': 'GL_CHROMIUM_enable_feature', | |
| 'pepper_interface': 'ChromiumEnableFeature', | |
| }, | |
| 'CompileShader': {'decoder_func': 'DoCompileShader', 'unit_test': False}, | |
| 'CompressedTexImage2D': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['bucket', 'shm'], | |
| 'trace_level': 1, | |
| }, | |
| 'CompressedTexSubImage2D': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['bucket', 'shm'], | |
| 'trace_level': 1, | |
| }, | |
| 'CopyTexImage2D': { | |
| 'decoder_func': 'DoCopyTexImage2D', | |
| 'unit_test': False, | |
| 'defer_reads': True, | |
| 'trace_level': 1, | |
| }, | |
| 'CopyTexSubImage2D': { | |
| 'decoder_func': 'DoCopyTexSubImage2D', | |
| 'defer_reads': True, | |
| 'trace_level': 1, | |
| }, | |
| 'CompressedTexImage3D': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['bucket', 'shm'], | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'CompressedTexSubImage3D': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['bucket', 'shm'], | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'CopyTexSubImage3D': { | |
| 'decoder_func': 'DoCopyTexSubImage3D', | |
| 'unit_test': False, | |
| 'defer_reads': True, | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'CreateImageCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'cmd_args': | |
| 'ClientBuffer buffer, GLsizei width, GLsizei height, ' | |
| 'GLenum internalformat', | |
| 'result': ['GLuint'], | |
| 'extension': "CHROMIUM_image", | |
| 'trace_level': 1, | |
| }, | |
| 'DestroyImageCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_image", | |
| 'trace_level': 1, | |
| }, | |
| 'DescheduleUntilFinishedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'decoder_func': 'DoDescheduleUntilFinishedCHROMIUM', | |
| 'extension': "CHROMIUM_deschedule", | |
| 'trace_level': 1, | |
| }, | |
| 'CreateProgram': { | |
| 'type': 'Create', | |
| 'client_test': False, | |
| }, | |
| 'CreateShader': { | |
| 'type': 'Create', | |
| 'client_test': False, | |
| }, | |
| 'BlendColor': { | |
| 'type': 'StateSet', | |
| 'state': 'BlendColor', | |
| }, | |
| 'BlendEquation': { | |
| 'type': 'StateSetRGBAlpha', | |
| 'state': 'BlendEquation', | |
| 'valid_args': { | |
| '0': 'GL_FUNC_SUBTRACT' | |
| }, | |
| }, | |
| 'BlendEquationSeparate': { | |
| 'type': 'StateSet', | |
| 'state': 'BlendEquation', | |
| 'valid_args': { | |
| '0': 'GL_FUNC_SUBTRACT' | |
| }, | |
| }, | |
| 'BlendFunc': { | |
| 'type': 'StateSetRGBAlpha', | |
| 'state': 'BlendFunc', | |
| }, | |
| 'BlendFuncSeparate': { | |
| 'type': 'StateSet', | |
| 'state': 'BlendFunc', | |
| }, | |
| 'BlendBarrierKHR': { | |
| 'gl_test_func': 'glBlendBarrierKHR', | |
| 'extension': 'KHR_blend_equation_advanced', | |
| 'extension_flag': 'blend_equation_advanced', | |
| 'client_test': False, | |
| }, | |
| 'SampleCoverage': {'decoder_func': 'DoSampleCoverage'}, | |
| 'StencilFunc': { | |
| 'type': 'StateSetFrontBack', | |
| 'state': 'StencilFunc', | |
| }, | |
| 'StencilFuncSeparate': { | |
| 'type': 'StateSetFrontBackSeparate', | |
| 'state': 'StencilFunc', | |
| }, | |
| 'StencilOp': { | |
| 'type': 'StateSetFrontBack', | |
| 'state': 'StencilOp', | |
| 'valid_args': { | |
| '1': 'GL_INCR' | |
| }, | |
| }, | |
| 'StencilOpSeparate': { | |
| 'type': 'StateSetFrontBackSeparate', | |
| 'state': 'StencilOp', | |
| 'valid_args': { | |
| '1': 'GL_INCR' | |
| }, | |
| }, | |
| 'Hint': { | |
| 'type': 'StateSetNamedParameter', | |
| 'state': 'Hint', | |
| }, | |
| 'CullFace': {'type': 'StateSet', 'state': 'CullFace'}, | |
| 'FrontFace': {'type': 'StateSet', 'state': 'FrontFace'}, | |
| 'DepthFunc': {'type': 'StateSet', 'state': 'DepthFunc'}, | |
| 'LineWidth': { | |
| 'type': 'StateSet', | |
| 'state': 'LineWidth', | |
| 'decoder_func': 'DoLineWidth', | |
| 'valid_args': { | |
| '0': '2.0f' | |
| }, | |
| }, | |
| 'PolygonOffset': { | |
| 'type': 'StateSet', | |
| 'state': 'PolygonOffset', | |
| }, | |
| 'DeleteBuffers': { | |
| 'type': 'DELn', | |
| 'gl_test_func': 'glDeleteBuffersARB', | |
| 'resource_type': 'Buffer', | |
| 'resource_types': 'Buffers', | |
| }, | |
| 'DeleteFramebuffers': { | |
| 'type': 'DELn', | |
| 'gl_test_func': 'glDeleteFramebuffersEXT', | |
| 'resource_type': 'Framebuffer', | |
| 'resource_types': 'Framebuffers', | |
| 'trace_level': 2, | |
| }, | |
| 'DeleteProgram': { 'type': 'Delete' }, | |
| 'DeleteRenderbuffers': { | |
| 'type': 'DELn', | |
| 'gl_test_func': 'glDeleteRenderbuffersEXT', | |
| 'resource_type': 'Renderbuffer', | |
| 'resource_types': 'Renderbuffers', | |
| 'trace_level': 2, | |
| }, | |
| 'DeleteSamplers': { | |
| 'type': 'DELn', | |
| 'resource_type': 'Sampler', | |
| 'resource_types': 'Samplers', | |
| 'es3': True, | |
| }, | |
| 'DeleteShader': { 'type': 'Delete' }, | |
| 'DeleteSync': { | |
| 'type': 'Delete', | |
| 'cmd_args': 'GLuint sync', | |
| 'resource_type': 'Sync', | |
| 'es3': True, | |
| }, | |
| 'DeleteTextures': { | |
| 'type': 'DELn', | |
| 'resource_type': 'Texture', | |
| 'resource_types': 'Textures', | |
| }, | |
| 'DeleteTransformFeedbacks': { | |
| 'type': 'DELn', | |
| 'resource_type': 'TransformFeedback', | |
| 'resource_types': 'TransformFeedbacks', | |
| 'es3': True, | |
| 'unit_test': False, | |
| }, | |
| 'DepthRangef': { | |
| 'decoder_func': 'DoDepthRangef', | |
| 'gl_test_func': 'glDepthRange', | |
| }, | |
| 'DepthMask': { | |
| 'type': 'StateSet', | |
| 'state': 'DepthMask', | |
| 'no_gl': True, | |
| 'expectation': False, | |
| }, | |
| 'DetachShader': {'decoder_func': 'DoDetachShader'}, | |
| 'Disable': { | |
| 'decoder_func': 'DoDisable', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| }, | |
| 'DisableVertexAttribArray': { | |
| 'decoder_func': 'DoDisableVertexAttribArray', | |
| 'impl_func': False, | |
| 'unit_test': False, | |
| }, | |
| 'DispatchCompute': { | |
| 'cmd_args': 'GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z', | |
| 'trace_level': 2, | |
| 'es31': True, | |
| 'unit_test': False, | |
| }, | |
| 'DrawArrays': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumDrawMode mode, GLint first, GLsizei count', | |
| 'defer_draws': True, | |
| 'trace_level': 2, | |
| }, | |
| 'DrawElements': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumDrawMode mode, GLsizei count, ' | |
| 'GLenumIndexType type, GLuint index_offset', | |
| 'client_test': False, | |
| 'defer_draws': True, | |
| 'trace_level': 2, | |
| }, | |
| 'DrawRangeElements': { | |
| 'type': 'NoCommand', | |
| 'es3': True, | |
| }, | |
| 'Enable': { | |
| 'decoder_func': 'DoEnable', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| }, | |
| 'EnableVertexAttribArray': { | |
| 'decoder_func': 'DoEnableVertexAttribArray', | |
| 'impl_func': False, | |
| 'unit_test': False, | |
| }, | |
| 'FenceSync': { | |
| 'type': 'Create', | |
| 'client_test': False, | |
| 'decoder_func': 'DoFenceSync', | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'Finish': { | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'decoder_func': 'DoFinish', | |
| 'defer_reads': True, | |
| 'trace_level': 1, | |
| }, | |
| 'Flush': { | |
| 'impl_func': False, | |
| 'decoder_func': 'DoFlush', | |
| 'trace_level': 1, | |
| }, | |
| 'FlushMappedBufferRange': { | |
| 'decoder_func': 'DoFlushMappedBufferRange', | |
| 'trace_level': 1, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'FramebufferRenderbuffer': { | |
| 'decoder_func': 'DoFramebufferRenderbuffer', | |
| 'gl_test_func': 'glFramebufferRenderbufferEXT', | |
| 'trace_level': 1, | |
| }, | |
| 'FramebufferTexture2D': { | |
| 'decoder_func': 'DoFramebufferTexture2D', | |
| 'gl_test_func': 'glFramebufferTexture2DEXT', | |
| 'unit_test': False, | |
| 'trace_level': 1, | |
| }, | |
| 'FramebufferTexture2DMultisampleEXT': { | |
| 'decoder_func': 'DoFramebufferTexture2DMultisample', | |
| 'gl_test_func': 'glFramebufferTexture2DMultisampleEXT', | |
| 'unit_test': False, | |
| 'extension': 'EXT_multisampled_render_to_texture', | |
| 'extension_flag': 'multisampled_render_to_texture', | |
| 'trace_level': 1, | |
| }, | |
| 'FramebufferTextureLayer': { | |
| 'decoder_func': 'DoFramebufferTextureLayer', | |
| 'es3': True, | |
| 'unit_test': False, | |
| 'trace_level': 1, | |
| }, | |
| 'GenerateMipmap': { | |
| 'decoder_func': 'DoGenerateMipmap', | |
| 'gl_test_func': 'glGenerateMipmapEXT', | |
| 'trace_level': 1, | |
| }, | |
| 'GenBuffers': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenBuffersARB', | |
| 'resource_type': 'Buffer', | |
| 'resource_types': 'Buffers', | |
| }, | |
| 'GenFramebuffers': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenFramebuffersEXT', | |
| 'resource_type': 'Framebuffer', | |
| 'resource_types': 'Framebuffers', | |
| 'not_shared': 'True', | |
| }, | |
| 'GenRenderbuffers': { | |
| 'type': 'GENn', 'gl_test_func': 'glGenRenderbuffersEXT', | |
| 'resource_type': 'Renderbuffer', | |
| 'resource_types': 'Renderbuffers', | |
| }, | |
| 'GenSamplers': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenSamplers', | |
| 'resource_type': 'Sampler', | |
| 'resource_types': 'Samplers', | |
| 'es3': True, | |
| }, | |
| 'GenTextures': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenTextures', | |
| 'resource_type': 'Texture', | |
| 'resource_types': 'Textures', | |
| }, | |
| 'GenTransformFeedbacks': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenTransformFeedbacks', | |
| 'resource_type': 'TransformFeedback', | |
| 'resource_types': 'TransformFeedbacks', | |
| 'es3': True, | |
| 'not_shared': 'True', | |
| }, | |
| 'GetActiveAttrib': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' | |
| 'void* result', | |
| 'result': [ | |
| 'int32_t success', | |
| 'int32_t size', | |
| 'uint32_t type', | |
| ], | |
| }, | |
| 'GetActiveUniform': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' | |
| 'void* result', | |
| 'result': [ | |
| 'int32_t success', | |
| 'int32_t size', | |
| 'uint32_t type', | |
| ], | |
| }, | |
| 'GetActiveUniformBlockiv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLint>'], | |
| 'es3': True, | |
| }, | |
| 'GetActiveUniformBlockName': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' | |
| 'void* result', | |
| 'result': ['int32_t'], | |
| 'es3': True, | |
| }, | |
| 'GetActiveUniformsiv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t indices_bucket_id, GLenum pname, ' | |
| 'GLint* params', | |
| 'result': ['SizedResult<GLint>'], | |
| 'es3': True, | |
| }, | |
| 'GetAttachedShaders': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': 'GLidProgram program, void* result, uint32_t result_size', | |
| 'result': ['SizedResult<GLuint>'], | |
| }, | |
| 'GetAttribLocation': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t name_bucket_id, GLint* location', | |
| 'result': ['GLint'], | |
| 'error_return': -1, | |
| }, | |
| 'GetFragDataIndexEXT': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t name_bucket_id, GLint* index', | |
| 'result': ['GLint'], | |
| 'error_return': -1, | |
| 'extension': 'EXT_blend_func_extended', | |
| 'extension_flag': 'ext_blend_func_extended', | |
| }, | |
| 'GetFragDataLocation': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t name_bucket_id, GLint* location', | |
| 'result': ['GLint'], | |
| 'error_return': -1, | |
| 'es3': True, | |
| }, | |
| 'GetBooleanv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLboolean>'], | |
| 'decoder_func': 'DoGetBooleanv', | |
| 'gl_test_func': 'glGetIntegerv', | |
| }, | |
| 'GetBufferParameteri64v': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint64>'], | |
| 'decoder_func': 'DoGetBufferParameteri64v', | |
| 'expectation': False, | |
| 'shadowed': True, | |
| 'es3': True, | |
| }, | |
| 'GetBufferParameteriv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint>'], | |
| 'decoder_func': 'DoGetBufferParameteriv', | |
| 'expectation': False, | |
| 'shadowed': True, | |
| }, | |
| 'GetError': { | |
| 'type': 'Is', | |
| 'decoder_func': 'GetErrorState()->GetGLError', | |
| 'impl_func': False, | |
| 'result': ['GLenum'], | |
| 'client_test': False, | |
| }, | |
| 'GetFloatv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLfloat>'], | |
| 'decoder_func': 'DoGetFloatv', | |
| 'gl_test_func': 'glGetIntegerv', | |
| }, | |
| 'GetFramebufferAttachmentParameteriv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetFramebufferAttachmentParameteriv', | |
| 'gl_test_func': 'glGetFramebufferAttachmentParameterivEXT', | |
| 'result': ['SizedResult<GLint>'], | |
| }, | |
| 'GetGraphicsResetStatusKHR': { | |
| 'type': 'NoCommand', | |
| 'extension': True, | |
| 'trace_level': 1, | |
| }, | |
| 'GetInteger64v': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint64>'], | |
| 'client_test': False, | |
| 'decoder_func': 'DoGetInteger64v', | |
| 'gl_test_func': 'glGetIntegerv', | |
| 'es3': True | |
| }, | |
| 'GetIntegerv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint>'], | |
| 'decoder_func': 'DoGetIntegerv', | |
| 'client_test': False, | |
| }, | |
| 'GetInteger64i_v': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint64>'], | |
| 'decoder_func': 'DoGetInteger64i_v', | |
| 'shadowed': True, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'es3': True | |
| }, | |
| 'GetIntegeri_v': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint>'], | |
| 'decoder_func': 'DoGetIntegeri_v', | |
| 'shadowed': True, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'es3': True | |
| }, | |
| 'GetInternalformativ': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLint>'], | |
| 'cmd_args': | |
| 'GLenumRenderBufferTarget target, GLenumRenderBufferFormat format, ' | |
| 'GLenumInternalFormatParameter pname, GLint* params', | |
| 'es3': True, | |
| }, | |
| 'GetMaxValueInBufferCHROMIUM': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoGetMaxValueInBufferCHROMIUM', | |
| 'result': ['GLuint'], | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'extension': True, | |
| 'impl_func': False, | |
| }, | |
| 'GetProgramiv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetProgramiv', | |
| 'result': ['SizedResult<GLint>'], | |
| 'expectation': False, | |
| }, | |
| 'GetProgramInfoCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': 'CHROMIUM_get_multiple', | |
| 'client_test': False, | |
| 'cmd_args': 'GLidProgram program, uint32_t bucket_id', | |
| 'result': [ | |
| 'uint32_t link_status', | |
| 'uint32_t num_attribs', | |
| 'uint32_t num_uniforms', | |
| ], | |
| }, | |
| 'GetProgramInfoLog': { | |
| 'type': 'STRn', | |
| 'expectation': False, | |
| }, | |
| 'GetRenderbufferParameteriv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetRenderbufferParameteriv', | |
| 'gl_test_func': 'glGetRenderbufferParameterivEXT', | |
| 'result': ['SizedResult<GLint>'], | |
| }, | |
| 'GetSamplerParameterfv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetSamplerParameterfv', | |
| 'result': ['SizedResult<GLfloat>'], | |
| 'es3': True, | |
| }, | |
| 'GetSamplerParameteriv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetSamplerParameteriv', | |
| 'result': ['SizedResult<GLint>'], | |
| 'es3': True, | |
| }, | |
| 'GetShaderiv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetShaderiv', | |
| 'result': ['SizedResult<GLint>'], | |
| }, | |
| 'GetShaderInfoLog': { | |
| 'type': 'STRn', | |
| 'get_len_func': 'glGetShaderiv', | |
| 'get_len_enum': 'GL_INFO_LOG_LENGTH', | |
| 'unit_test': False, | |
| }, | |
| 'GetShaderPrecisionFormat': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLenumShaderType shadertype, GLenumShaderPrecision precisiontype, ' | |
| 'void* result', | |
| 'result': [ | |
| 'int32_t success', | |
| 'int32_t min_range', | |
| 'int32_t max_range', | |
| 'int32_t precision', | |
| ], | |
| }, | |
| 'GetShaderSource': { | |
| 'type': 'STRn', | |
| 'get_len_func': 'DoGetShaderiv', | |
| 'get_len_enum': 'GL_SHADER_SOURCE_LENGTH', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| }, | |
| 'GetString': { | |
| 'type': 'Custom', | |
| 'client_test': False, | |
| 'cmd_args': 'GLenumStringType name, uint32_t bucket_id', | |
| }, | |
| 'GetStringi': { | |
| 'type': 'NoCommand', | |
| 'es3': True, | |
| }, | |
| 'GetSynciv': { | |
| 'type': 'GETn', | |
| 'cmd_args': 'GLuint sync, GLenumSyncParameter pname, void* values', | |
| 'decoder_func': 'DoGetSynciv', | |
| 'result': ['SizedResult<GLint>'], | |
| 'es3': True, | |
| }, | |
| 'GetTexParameterfv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetTexParameterfv', | |
| 'result': ['SizedResult<GLfloat>'] | |
| }, | |
| 'GetTexParameteriv': { | |
| 'type': 'GETn', | |
| 'decoder_func': 'DoGetTexParameteriv', | |
| 'result': ['SizedResult<GLint>'] | |
| }, | |
| 'GetTranslatedShaderSourceANGLE': { | |
| 'type': 'STRn', | |
| 'get_len_func': 'DoGetShaderiv', | |
| 'get_len_enum': 'GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE', | |
| 'unit_test': False, | |
| 'extension': True, | |
| }, | |
| 'GetUniformBlockIndex': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t name_bucket_id, GLuint* index', | |
| 'result': ['GLuint'], | |
| 'error_return': 'GL_INVALID_INDEX', | |
| 'es3': True, | |
| }, | |
| 'GetUniformBlocksCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': True, | |
| 'client_test': False, | |
| 'cmd_args': 'GLidProgram program, uint32_t bucket_id', | |
| 'result': ['uint32_t'], | |
| 'es3': True, | |
| }, | |
| 'GetUniformsES3CHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': True, | |
| 'client_test': False, | |
| 'cmd_args': 'GLidProgram program, uint32_t bucket_id', | |
| 'result': ['uint32_t'], | |
| 'es3': True, | |
| }, | |
| 'GetTransformFeedbackVarying': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, GLuint index, uint32_t name_bucket_id, ' | |
| 'void* result', | |
| 'result': [ | |
| 'int32_t success', | |
| 'int32_t size', | |
| 'uint32_t type', | |
| ], | |
| 'es3': True, | |
| }, | |
| 'GetTransformFeedbackVaryingsCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': True, | |
| 'client_test': False, | |
| 'cmd_args': 'GLidProgram program, uint32_t bucket_id', | |
| 'result': ['uint32_t'], | |
| 'es3': True, | |
| }, | |
| 'GetUniformfv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLfloat>'], | |
| }, | |
| 'GetUniformiv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLint>'], | |
| }, | |
| 'GetUniformuiv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLuint>'], | |
| 'es3': True, | |
| }, | |
| 'GetUniformIndices': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLuint>'], | |
| 'cmd_args': 'GLidProgram program, uint32_t names_bucket_id, ' | |
| 'GLuint* indices', | |
| 'es3': True, | |
| }, | |
| 'GetUniformLocation': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': | |
| 'GLidProgram program, uint32_t name_bucket_id, GLint* location', | |
| 'result': ['GLint'], | |
| # http://www.opengl.org/sdk/docs/man/xhtml/glGetUniformLocation.xml | |
| 'error_return': -1, | |
| }, | |
| 'GetVertexAttribfv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLfloat>'], | |
| 'impl_func': False, | |
| 'decoder_func': 'DoGetVertexAttribfv', | |
| 'expectation': False, | |
| 'client_test': False, | |
| }, | |
| 'GetVertexAttribiv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint>'], | |
| 'impl_func': False, | |
| 'decoder_func': 'DoGetVertexAttribiv', | |
| 'expectation': False, | |
| 'client_test': False, | |
| }, | |
| 'GetVertexAttribIiv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLint>'], | |
| 'impl_func': False, | |
| 'decoder_func': 'DoGetVertexAttribIiv', | |
| 'expectation': False, | |
| 'client_test': False, | |
| 'es3': True, | |
| }, | |
| 'GetVertexAttribIuiv': { | |
| 'type': 'GETn', | |
| 'result': ['SizedResult<GLuint>'], | |
| 'impl_func': False, | |
| 'decoder_func': 'DoGetVertexAttribIuiv', | |
| 'expectation': False, | |
| 'client_test': False, | |
| 'es3': True, | |
| }, | |
| 'GetVertexAttribPointerv': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'result': ['SizedResult<GLuint>'], | |
| 'client_test': False, | |
| }, | |
| 'InvalidateFramebuffer': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoInvalidateFramebuffer', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'InvalidateSubFramebuffer': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoInvalidateSubFramebuffer', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'IsBuffer': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsBuffer', | |
| 'expectation': False, | |
| }, | |
| 'IsEnabled': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsEnabled', | |
| 'client_test': False, | |
| 'impl_func': False, | |
| 'expectation': False, | |
| }, | |
| 'IsFramebuffer': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsFramebuffer', | |
| 'expectation': False, | |
| }, | |
| 'IsProgram': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsProgram', | |
| 'expectation': False, | |
| }, | |
| 'IsRenderbuffer': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsRenderbuffer', | |
| 'expectation': False, | |
| }, | |
| 'IsShader': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsShader', | |
| 'expectation': False, | |
| }, | |
| 'IsSampler': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsSampler', | |
| 'expectation': False, | |
| 'es3': True, | |
| }, | |
| 'IsSync': { | |
| 'type': 'Is', | |
| 'cmd_args': 'GLuint sync', | |
| 'decoder_func': 'DoIsSync', | |
| 'expectation': False, | |
| 'es3': True, | |
| }, | |
| 'IsTexture': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsTexture', | |
| 'expectation': False, | |
| }, | |
| 'IsTransformFeedback': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsTransformFeedback', | |
| 'expectation': False, | |
| 'es3': True, | |
| }, | |
| 'GetLastFlushIdCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'impl_func': False, | |
| 'result': ['GLuint'], | |
| 'extension': True, | |
| }, | |
| 'LinkProgram': { | |
| 'decoder_func': 'DoLinkProgram', | |
| 'impl_func': False, | |
| 'trace_level': 1, | |
| }, | |
| 'MapBufferCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_pixel_transfer_buffer_object", | |
| 'trace_level': 1, | |
| }, | |
| 'MapBufferSubDataCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': 'CHROMIUM_map_sub', | |
| 'pepper_interface': 'ChromiumMapSub', | |
| 'trace_level': 1, | |
| }, | |
| 'MapTexSubImage2DCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_sub_image", | |
| 'pepper_interface': 'ChromiumMapSub', | |
| 'trace_level': 1, | |
| }, | |
| 'MapBufferRange': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'cmd_args': 'GLenumBufferTarget target, GLintptrNotNegative offset, ' | |
| 'GLsizeiptr size, GLbitfieldMapBufferAccess access, ' | |
| 'uint32_t data_shm_id, uint32_t data_shm_offset, ' | |
| 'uint32_t result_shm_id, uint32_t result_shm_offset', | |
| 'es3': True, | |
| 'result': ['uint32_t'], | |
| 'trace_level': 1, | |
| }, | |
| # MemoryBarrierEXT is in order to avoid the conflicting MemoryBarrier macro | |
| # in windows. | |
| 'MemoryBarrierEXT': { | |
| 'cmd_args': 'GLbitfield barriers', | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| 'es31': True | |
| }, | |
| 'MemoryBarrierByRegion': { | |
| 'cmd_args': 'GLbitfield barriers', | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| 'es31': True | |
| }, | |
| 'OverlayPromotionHintCHROMIUM': { | |
| 'decoder_func': 'DoOverlayPromotionHintCHROMIUM', | |
| 'extension': "CHROMIUM_uniform_stream_texture_matrix", | |
| 'unit_test': False, | |
| 'client_test': False, | |
| }, | |
| 'PauseTransformFeedback': { | |
| 'decoder_func': 'DoPauseTransformFeedback', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'PixelStorei': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| }, | |
| 'PostSubBufferCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'extension': True, | |
| }, | |
| 'ProduceTextureDirectCHROMIUM': { | |
| 'decoder_func': 'DoProduceTextureDirectCHROMIUM', | |
| 'impl_func': False, | |
| 'type': 'PUT', | |
| 'count': 16, # GL_MAILBOX_SIZE_CHROMIUM | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'extension': "CHROMIUM_texture_mailbox", | |
| 'trace_level': 1, | |
| }, | |
| 'RenderbufferStorage': { | |
| 'decoder_func': 'DoRenderbufferStorage', | |
| 'gl_test_func': 'glRenderbufferStorageEXT', | |
| 'expectation': False, | |
| 'trace_level': 1, | |
| }, | |
| 'RenderbufferStorageMultisampleCHROMIUM': { | |
| 'cmd_comment': | |
| '// GL_CHROMIUM_framebuffer_multisample\n', | |
| 'decoder_func': 'DoRenderbufferStorageMultisampleCHROMIUM', | |
| 'gl_test_func': 'glRenderbufferStorageMultisampleCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'chromium_framebuffer_multisample', | |
| 'extension_flag': 'chromium_framebuffer_multisample', | |
| 'pepper_interface': 'FramebufferMultisample', | |
| 'pepper_name': 'RenderbufferStorageMultisampleEXT', | |
| 'trace_level': 1, | |
| }, | |
| 'RenderbufferStorageMultisampleEXT': { | |
| 'cmd_comment': | |
| '// GL_EXT_multisampled_render_to_texture\n', | |
| 'decoder_func': 'DoRenderbufferStorageMultisampleEXT', | |
| 'gl_test_func': 'glRenderbufferStorageMultisampleEXT', | |
| 'unit_test': False, | |
| 'extension': 'EXT_multisampled_render_to_texture', | |
| 'extension_flag': 'multisampled_render_to_texture', | |
| 'trace_level': 1, | |
| }, | |
| 'ReadBuffer': { | |
| 'es3': True, | |
| 'decoder_func': 'DoReadBuffer', | |
| 'trace_level': 1, | |
| }, | |
| 'ReadPixels': { | |
| 'cmd_comment': | |
| '// ReadPixels has the result separated from the pixel buffer so that\n' | |
| '// it is easier to specify the result going to some specific place\n' | |
| '// that exactly fits the rectangle of pixels.\n', | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': | |
| 'GLint x, GLint y, GLsizei width, GLsizei height, ' | |
| 'GLenumReadPixelFormat format, GLenumReadPixelType type, ' | |
| 'uint32_t pixels_shm_id, uint32_t pixels_shm_offset, ' | |
| 'uint32_t result_shm_id, uint32_t result_shm_offset, ' | |
| 'GLboolean async', | |
| 'result': [ | |
| 'uint32_t success', | |
| # Below args exclude out-of-bounds area. | |
| 'int32_t row_length', | |
| 'int32_t num_rows', | |
| ], | |
| 'defer_reads': True, | |
| 'trace_level': 1, | |
| }, | |
| 'ReleaseShaderCompiler': { | |
| 'decoder_func': 'DoReleaseShaderCompiler', | |
| 'unit_test': False, | |
| }, | |
| 'ResumeTransformFeedback': { | |
| 'decoder_func': 'DoResumeTransformFeedback', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'SamplerParameterf': { | |
| 'valid_args': { | |
| '2': 'GL_NEAREST' | |
| }, | |
| 'decoder_func': 'DoSamplerParameterf', | |
| 'es3': True, | |
| }, | |
| 'SamplerParameterfv': { | |
| 'type': 'PUT', | |
| 'data_value': 'GL_NEAREST', | |
| 'count': 1, | |
| 'gl_test_func': 'glSamplerParameterf', | |
| 'decoder_func': 'DoSamplerParameterfv', | |
| 'first_element_only': True, | |
| 'es3': True, | |
| }, | |
| 'SamplerParameteri': { | |
| 'valid_args': { | |
| '2': 'GL_NEAREST' | |
| }, | |
| 'decoder_func': 'DoSamplerParameteri', | |
| 'es3': True, | |
| }, | |
| 'SamplerParameteriv': { | |
| 'type': 'PUT', | |
| 'data_value': 'GL_NEAREST', | |
| 'count': 1, | |
| 'gl_test_func': 'glSamplerParameteri', | |
| 'decoder_func': 'DoSamplerParameteriv', | |
| 'first_element_only': True, | |
| 'es3': True, | |
| }, | |
| 'ShaderBinary': { | |
| 'type': 'Custom', | |
| 'client_test': False, | |
| }, | |
| 'ShaderSource': { | |
| 'type': 'PUTSTR', | |
| 'decoder_func': 'DoShaderSource', | |
| 'expectation': False, | |
| 'data_transfer_methods': ['bucket'], | |
| 'cmd_args': | |
| 'GLuint shader, const char** str', | |
| 'pepper_args': | |
| 'GLuint shader, GLsizei count, const char** str, const GLint* length', | |
| }, | |
| 'StencilMask': { | |
| 'type': 'StateSetFrontBack', | |
| 'state': 'StencilMask', | |
| 'no_gl': True, | |
| 'expectation': False, | |
| }, | |
| 'StencilMaskSeparate': { | |
| 'type': 'StateSetFrontBackSeparate', | |
| 'state': 'StencilMask', | |
| 'no_gl': True, | |
| 'expectation': False, | |
| }, | |
| 'SwapBuffers': { | |
| 'impl_func': False, | |
| 'decoder_func': 'DoSwapBuffers', | |
| 'client_test': False, | |
| 'expectation': False, | |
| 'extension': True, | |
| 'trace_level': 1, | |
| 'trace_queueing_flow': True, | |
| }, | |
| 'SwapBuffersWithBoundsCHROMIUM': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoSwapBuffersWithBoundsCHROMIUM', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'extension': True, | |
| }, | |
| 'TexImage2D': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'client_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'TexImage3D': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'client_test': False, | |
| 'es3': True, | |
| 'trace_level': 2, | |
| }, | |
| 'TexParameterf': { | |
| 'decoder_func': 'DoTexParameterf', | |
| 'valid_args': { | |
| '2': 'GL_NEAREST' | |
| }, | |
| }, | |
| 'TexParameteri': { | |
| 'decoder_func': 'DoTexParameteri', | |
| 'valid_args': { | |
| '2': 'GL_NEAREST' | |
| }, | |
| }, | |
| 'TexParameterfv': { | |
| 'type': 'PUT', | |
| 'data_value': 'GL_NEAREST', | |
| 'count': 1, | |
| 'decoder_func': 'DoTexParameterfv', | |
| 'gl_test_func': 'glTexParameterf', | |
| 'first_element_only': True, | |
| }, | |
| 'TexParameteriv': { | |
| 'type': 'PUT', | |
| 'data_value': 'GL_NEAREST', | |
| 'count': 1, | |
| 'decoder_func': 'DoTexParameteriv', | |
| 'gl_test_func': 'glTexParameteri', | |
| 'first_element_only': True, | |
| }, | |
| 'TexStorage3D': { | |
| 'es3': True, | |
| 'unit_test': False, | |
| 'decoder_func': 'DoTexStorage3D', | |
| 'trace_level': 2, | |
| }, | |
| 'TexSubImage2D': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'client_test': False, | |
| 'trace_level': 2, | |
| 'cmd_args': 'GLenumTextureTarget target, GLint level, ' | |
| 'GLint xoffset, GLint yoffset, ' | |
| 'GLsizei width, GLsizei height, ' | |
| 'GLenumTextureFormat format, GLenumPixelType type, ' | |
| 'const void* pixels, GLboolean internal' | |
| }, | |
| 'TexSubImage3D': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'client_test': False, | |
| 'trace_level': 2, | |
| 'cmd_args': 'GLenumTextureTarget target, GLint level, ' | |
| 'GLint xoffset, GLint yoffset, GLint zoffset, ' | |
| 'GLsizei width, GLsizei height, GLsizei depth, ' | |
| 'GLenumTextureFormat format, GLenumPixelType type, ' | |
| 'const void* pixels, GLboolean internal', | |
| 'es3': True, | |
| }, | |
| 'TransformFeedbackVaryings': { | |
| 'type': 'PUTSTR', | |
| 'data_transfer_methods': ['bucket'], | |
| 'decoder_func': 'DoTransformFeedbackVaryings', | |
| 'cmd_args': | |
| 'GLuint program, const char** varyings, GLenum buffermode', | |
| 'expectation': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform1f': {'type': 'PUTXn', 'count': 1}, | |
| 'Uniform1fv': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoUniform1fv', | |
| }, | |
| 'Uniform1i': {'decoder_func': 'DoUniform1i', 'unit_test': False}, | |
| 'Uniform1iv': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoUniform1iv', | |
| 'unit_test': False, | |
| }, | |
| 'Uniform1ui': { | |
| 'type': 'PUTXn', | |
| 'count': 1, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform1uiv': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoUniform1uiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform2i': {'type': 'PUTXn', 'count': 2}, | |
| 'Uniform2f': {'type': 'PUTXn', 'count': 2}, | |
| 'Uniform2fv': { | |
| 'type': 'PUTn', | |
| 'count': 2, | |
| 'decoder_func': 'DoUniform2fv', | |
| }, | |
| 'Uniform2iv': { | |
| 'type': 'PUTn', | |
| 'count': 2, | |
| 'decoder_func': 'DoUniform2iv', | |
| }, | |
| 'Uniform2ui': { | |
| 'type': 'PUTXn', | |
| 'count': 2, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform2uiv': { | |
| 'type': 'PUTn', | |
| 'count': 2, | |
| 'decoder_func': 'DoUniform2uiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform3i': {'type': 'PUTXn', 'count': 3}, | |
| 'Uniform3f': {'type': 'PUTXn', 'count': 3}, | |
| 'Uniform3fv': { | |
| 'type': 'PUTn', | |
| 'count': 3, | |
| 'decoder_func': 'DoUniform3fv', | |
| }, | |
| 'Uniform3iv': { | |
| 'type': 'PUTn', | |
| 'count': 3, | |
| 'decoder_func': 'DoUniform3iv', | |
| }, | |
| 'Uniform3ui': { | |
| 'type': 'PUTXn', | |
| 'count': 3, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform3uiv': { | |
| 'type': 'PUTn', | |
| 'count': 3, | |
| 'decoder_func': 'DoUniform3uiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform4i': {'type': 'PUTXn', 'count': 4}, | |
| 'Uniform4f': {'type': 'PUTXn', 'count': 4}, | |
| 'Uniform4fv': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoUniform4fv', | |
| }, | |
| 'Uniform4iv': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoUniform4iv', | |
| }, | |
| 'Uniform4ui': { | |
| 'type': 'PUTXn', | |
| 'count': 4, | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'Uniform4uiv': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoUniform4uiv', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix2fv': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoUniformMatrix2fv', | |
| 'unit_test': False, | |
| }, | |
| 'UniformMatrix2x3fv': { | |
| 'type': 'PUTn', | |
| 'count': 6, | |
| 'decoder_func': 'DoUniformMatrix2x3fv', | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix2x4fv': { | |
| 'type': 'PUTn', | |
| 'count': 8, | |
| 'decoder_func': 'DoUniformMatrix2x4fv', | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix3fv': { | |
| 'type': 'PUTn', | |
| 'count': 9, | |
| 'decoder_func': 'DoUniformMatrix3fv', | |
| 'unit_test': False, | |
| }, | |
| 'UniformMatrix3x2fv': { | |
| 'type': 'PUTn', | |
| 'count': 6, | |
| 'decoder_func': 'DoUniformMatrix3x2fv', | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix3x4fv': { | |
| 'type': 'PUTn', | |
| 'count': 12, | |
| 'decoder_func': 'DoUniformMatrix3x4fv', | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix4fv': { | |
| 'type': 'PUTn', | |
| 'count': 16, | |
| 'decoder_func': 'DoUniformMatrix4fv', | |
| 'unit_test': False, | |
| }, | |
| 'UniformMatrix4fvStreamTextureMatrixCHROMIUM': { | |
| 'type': 'PUT', | |
| 'count': 16, | |
| 'decoder_func': 'DoUniformMatrix4fvStreamTextureMatrixCHROMIUM', | |
| 'extension': "CHROMIUM_uniform_stream_texture_matrix", | |
| 'unit_test': False, | |
| 'client_test': False, | |
| }, | |
| 'UniformMatrix4x2fv': { | |
| 'type': 'PUTn', | |
| 'count': 8, | |
| 'decoder_func': 'DoUniformMatrix4x2fv', | |
| 'es3': True, | |
| }, | |
| 'UniformMatrix4x3fv': { | |
| 'type': 'PUTn', | |
| 'count': 12, | |
| 'decoder_func': 'DoUniformMatrix4x3fv', | |
| 'es3': True, | |
| }, | |
| 'UniformBlockBinding': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'es3': True, | |
| }, | |
| 'UnmapBufferCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_pixel_transfer_buffer_object", | |
| 'trace_level': 1, | |
| }, | |
| 'UnmapBufferSubDataCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': 'CHROMIUM_map_sub', | |
| 'pepper_interface': 'ChromiumMapSub', | |
| 'trace_level': 1, | |
| }, | |
| 'UnmapBuffer': { | |
| 'type': 'Custom', | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'UnmapTexSubImage2DCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_sub_image", | |
| 'pepper_interface': 'ChromiumMapSub', | |
| 'trace_level': 1, | |
| }, | |
| 'UseProgram': { | |
| 'type': 'Bind', | |
| 'decoder_func': 'DoUseProgram', | |
| }, | |
| 'ValidateProgram': {'decoder_func': 'DoValidateProgram'}, | |
| 'VertexAttrib1f': {'decoder_func': 'DoVertexAttrib1f'}, | |
| 'VertexAttrib1fv': { | |
| 'type': 'PUT', | |
| 'count': 1, | |
| 'decoder_func': 'DoVertexAttrib1fv', | |
| }, | |
| 'VertexAttrib2f': {'decoder_func': 'DoVertexAttrib2f'}, | |
| 'VertexAttrib2fv': { | |
| 'type': 'PUT', | |
| 'count': 2, | |
| 'decoder_func': 'DoVertexAttrib2fv', | |
| }, | |
| 'VertexAttrib3f': {'decoder_func': 'DoVertexAttrib3f'}, | |
| 'VertexAttrib3fv': { | |
| 'type': 'PUT', | |
| 'count': 3, | |
| 'decoder_func': 'DoVertexAttrib3fv', | |
| }, | |
| 'VertexAttrib4f': {'decoder_func': 'DoVertexAttrib4f'}, | |
| 'VertexAttrib4fv': { | |
| 'type': 'PUT', | |
| 'count': 4, | |
| 'decoder_func': 'DoVertexAttrib4fv', | |
| }, | |
| 'VertexAttribI4i': { | |
| 'es3': True, | |
| 'decoder_func': 'DoVertexAttribI4i', | |
| }, | |
| 'VertexAttribI4iv': { | |
| 'type': 'PUT', | |
| 'count': 4, | |
| 'es3': True, | |
| 'decoder_func': 'DoVertexAttribI4iv', | |
| }, | |
| 'VertexAttribI4ui': { | |
| 'es3': True, | |
| 'decoder_func': 'DoVertexAttribI4ui', | |
| }, | |
| 'VertexAttribI4uiv': { | |
| 'type': 'PUT', | |
| 'count': 4, | |
| 'es3': True, | |
| 'decoder_func': 'DoVertexAttribI4uiv', | |
| }, | |
| 'VertexAttribIPointer': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLuint indx, GLintVertexAttribSize size, ' | |
| 'GLenumVertexAttribIType type, GLsizei stride, ' | |
| 'GLuint offset', | |
| 'client_test': False, | |
| 'es3': True, | |
| }, | |
| 'VertexAttribPointer': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLuint indx, GLintVertexAttribSize size, ' | |
| 'GLenumVertexAttribType type, GLboolean normalized, ' | |
| 'GLsizei stride, GLuint offset', | |
| 'client_test': False, | |
| }, | |
| 'WaitSync': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint sync, GLbitfieldSyncFlushFlags flags, ' | |
| 'GLuint64 timeout', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'es3': True, | |
| 'trace_level': 1, | |
| }, | |
| 'Scissor': { | |
| 'type': 'StateSet', | |
| 'state': 'Scissor', | |
| 'decoder_func': 'DoScissor', | |
| }, | |
| 'Viewport': { | |
| 'impl_func': False, | |
| 'decoder_func': 'DoViewport', | |
| }, | |
| 'ResizeCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': True, | |
| 'trace_level': 1, | |
| }, | |
| 'GetRequestableExtensionsCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'uint32_t bucket_id', | |
| 'extension': True, | |
| }, | |
| 'RequestExtensionCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'uint32_t bucket_id', | |
| 'extension': 'CHROMIUM_request_extension', | |
| }, | |
| 'CopyTextureCHROMIUM': { | |
| 'decoder_func': 'DoCopyTextureCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': "CHROMIUM_copy_texture", | |
| 'trace_level': 2, | |
| }, | |
| 'CopySubTextureCHROMIUM': { | |
| 'decoder_func': 'DoCopySubTextureCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': "CHROMIUM_copy_texture", | |
| 'trace_level': 2, | |
| }, | |
| 'TexStorage2DEXT': { | |
| 'unit_test': False, | |
| 'extension': 'EXT_texture_storage', | |
| 'extension_flag': 'ext_texture_storage', | |
| 'decoder_func': 'DoTexStorage2DEXT', | |
| 'trace_level': 2, | |
| }, | |
| 'DrawArraysInstancedANGLE': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumDrawMode mode, GLint first, GLsizei count, ' | |
| 'GLsizei primcount', | |
| 'extension': 'ANGLE_instanced_arrays', | |
| 'pepper_interface': 'InstancedArrays', | |
| 'defer_draws': True, | |
| 'trace_level': 2, | |
| }, | |
| 'DrawBuffersEXT': { | |
| 'type': 'PUTn', | |
| 'decoder_func': 'DoDrawBuffersEXT', | |
| 'count': 1, | |
| 'unit_test': False, | |
| # could use 'extension_flag': 'ext_draw_buffers' but currently expected to | |
| # work without. | |
| 'extension': 'EXT_draw_buffers', | |
| 'pepper_interface': 'DrawBuffers', | |
| 'trace_level': 2, | |
| }, | |
| 'DrawElementsInstancedANGLE': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumDrawMode mode, GLsizei count, ' | |
| 'GLenumIndexType type, GLuint index_offset, GLsizei primcount', | |
| 'extension': 'ANGLE_instanced_arrays', | |
| 'client_test': False, | |
| 'pepper_interface': 'InstancedArrays', | |
| 'defer_draws': True, | |
| 'trace_level': 2, | |
| }, | |
| 'VertexAttribDivisorANGLE': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLuint index, GLuint divisor', | |
| 'extension': 'ANGLE_instanced_arrays', | |
| 'pepper_interface': 'InstancedArrays', | |
| }, | |
| 'GenQueriesEXT': { | |
| 'type': 'GENn', | |
| 'gl_test_func': 'glGenQueriesARB', | |
| 'resource_type': 'Query', | |
| 'resource_types': 'Queries', | |
| 'unit_test': False, | |
| 'pepper_interface': 'Query', | |
| 'not_shared': 'True', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'DeleteQueriesEXT': { | |
| 'type': 'DELn', | |
| 'gl_test_func': 'glDeleteQueriesARB', | |
| 'resource_type': 'Query', | |
| 'resource_types': 'Queries', | |
| 'unit_test': False, | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'IsQueryEXT': { | |
| 'type': 'NoCommand', | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'BeginQueryEXT': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumQueryTarget target, GLidQuery id, void* sync_data', | |
| 'data_transfer_methods': ['shm'], | |
| 'gl_test_func': 'glBeginQuery', | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'BeginTransformFeedback': { | |
| 'decoder_func': 'DoBeginTransformFeedback', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'EndQueryEXT': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLenumQueryTarget target, GLuint submit_count', | |
| 'gl_test_func': 'glEndnQuery', | |
| 'client_test': False, | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'EndTransformFeedback': { | |
| 'decoder_func': 'DoEndTransformFeedback', | |
| 'unit_test': False, | |
| 'es3': True, | |
| }, | |
| 'FlushDriverCachesCHROMIUM': { | |
| 'decoder_func': 'DoFlushDriverCachesCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': True, | |
| 'trace_level': 1, | |
| }, | |
| 'GetQueryivEXT': { | |
| 'type': 'NoCommand', | |
| 'gl_test_func': 'glGetQueryiv', | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'QueryCounterEXT' : { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLidQuery id, GLenumQueryTarget target, ' | |
| 'void* sync_data, GLuint submit_count', | |
| 'data_transfer_methods': ['shm'], | |
| 'gl_test_func': 'glQueryCounter', | |
| 'extension': "disjoint_timer_query_EXT", | |
| }, | |
| 'GetQueryObjectivEXT': { | |
| 'type': 'NoCommand', | |
| 'gl_test_func': 'glGetQueryObjectiv', | |
| 'extension': "disjoint_timer_query_EXT", | |
| }, | |
| 'GetQueryObjectuivEXT': { | |
| 'type': 'NoCommand', | |
| 'gl_test_func': 'glGetQueryObjectuiv', | |
| 'pepper_interface': 'Query', | |
| 'extension': "occlusion_query_EXT", | |
| }, | |
| 'GetQueryObjecti64vEXT': { | |
| 'type': 'NoCommand', | |
| 'gl_test_func': 'glGetQueryObjecti64v', | |
| 'extension': "disjoint_timer_query_EXT", | |
| }, | |
| 'GetQueryObjectui64vEXT': { | |
| 'type': 'NoCommand', | |
| 'gl_test_func': 'glGetQueryObjectui64v', | |
| 'extension': "disjoint_timer_query_EXT", | |
| }, | |
| 'SetDisjointValueSyncCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'data_transfer_methods': ['shm'], | |
| 'client_test': False, | |
| 'cmd_args': 'void* sync_data', | |
| 'extension': True, | |
| }, | |
| 'BindFragDataLocationEXT': { | |
| 'type': 'GLchar', | |
| 'data_transfer_methods': ['bucket'], | |
| 'needs_size': True, | |
| 'gl_test_func': 'DoBindFragDataLocationEXT', | |
| 'extension': 'EXT_blend_func_extended', | |
| 'extension_flag': 'ext_blend_func_extended', | |
| }, | |
| 'BindFragDataLocationIndexedEXT': { | |
| 'type': 'GLchar', | |
| 'data_transfer_methods': ['bucket'], | |
| 'needs_size': True, | |
| 'gl_test_func': 'DoBindFragDataLocationIndexedEXT', | |
| 'extension': 'EXT_blend_func_extended', | |
| 'extension_flag': 'ext_blend_func_extended', | |
| }, | |
| 'BindUniformLocationCHROMIUM': { | |
| 'type': 'GLchar', | |
| 'extension': 'CHROMIUM_bind_uniform_location', | |
| 'data_transfer_methods': ['bucket'], | |
| 'needs_size': True, | |
| 'gl_test_func': 'DoBindUniformLocationCHROMIUM', | |
| }, | |
| 'InsertEventMarkerEXT': { | |
| 'type': 'GLcharN', | |
| 'decoder_func': 'DoInsertEventMarkerEXT', | |
| 'expectation': False, | |
| 'extension': 'EXT_debug_marker', | |
| }, | |
| 'PushGroupMarkerEXT': { | |
| 'type': 'GLcharN', | |
| 'decoder_func': 'DoPushGroupMarkerEXT', | |
| 'expectation': False, | |
| 'extension': 'EXT_debug_marker', | |
| }, | |
| 'PopGroupMarkerEXT': { | |
| 'decoder_func': 'DoPopGroupMarkerEXT', | |
| 'expectation': False, | |
| 'extension': 'EXT_debug_marker', | |
| 'impl_func': False, | |
| }, | |
| 'GenVertexArraysOES': { | |
| 'type': 'GENn', | |
| 'extension': 'OES_vertex_array_object', | |
| 'gl_test_func': 'glGenVertexArraysOES', | |
| 'resource_type': 'VertexArray', | |
| 'resource_types': 'VertexArrays', | |
| 'unit_test': False, | |
| 'pepper_interface': 'VertexArrayObject', | |
| 'not_shared': 'True', | |
| }, | |
| 'BindVertexArrayOES': { | |
| 'type': 'Bind', | |
| 'extension': 'OES_vertex_array_object', | |
| 'gl_test_func': 'glBindVertexArrayOES', | |
| 'decoder_func': 'DoBindVertexArrayOES', | |
| 'gen_func': 'GenVertexArraysOES', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'pepper_interface': 'VertexArrayObject', | |
| }, | |
| 'DeleteVertexArraysOES': { | |
| 'type': 'DELn', | |
| 'extension': 'OES_vertex_array_object', | |
| 'gl_test_func': 'glDeleteVertexArraysOES', | |
| 'resource_type': 'VertexArray', | |
| 'resource_types': 'VertexArrays', | |
| 'unit_test': False, | |
| 'pepper_interface': 'VertexArrayObject', | |
| }, | |
| 'IsVertexArrayOES': { | |
| 'type': 'Is', | |
| 'extension': 'OES_vertex_array_object', | |
| 'gl_test_func': 'glIsVertexArrayOES', | |
| 'decoder_func': 'DoIsVertexArrayOES', | |
| 'unit_test': False, | |
| 'pepper_interface': 'VertexArrayObject', | |
| }, | |
| 'BindTexImage2DCHROMIUM': { | |
| 'decoder_func': 'DoBindTexImage2DCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': "CHROMIUM_image", | |
| }, | |
| 'BindTexImage2DWithInternalformatCHROMIUM': { | |
| 'decoder_func': 'DoBindTexImage2DWithInternalformatCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': "CHROMIUM_image", | |
| }, | |
| 'ReleaseTexImage2DCHROMIUM': { | |
| 'decoder_func': 'DoReleaseTexImage2DCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': "CHROMIUM_image", | |
| }, | |
| 'ShallowFinishCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': 'CHROMIUM_ordering_barrier', | |
| }, | |
| 'ShallowFlushCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': 'CHROMIUM_ordering_barrier', | |
| }, | |
| 'OrderingBarrierCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': 'CHROMIUM_ordering_barrier', | |
| }, | |
| 'TraceBeginCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLuint category_bucket_id, GLuint name_bucket_id', | |
| 'extension': 'CHROMIUM_trace_marker', | |
| }, | |
| 'TraceEndCHROMIUM': { | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'decoder_func': 'DoTraceEndCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_trace_marker', | |
| }, | |
| 'SetActiveURLCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLuint url_bucket_id', | |
| 'extension': True, | |
| 'chromium': True, | |
| }, | |
| 'DiscardFramebufferEXT': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoDiscardFramebufferEXT', | |
| 'unit_test': False, | |
| 'extension': 'EXT_discard_framebuffer', | |
| 'extension_flag': 'ext_discard_framebuffer', | |
| 'trace_level': 2, | |
| }, | |
| 'LoseContextCHROMIUM': { | |
| 'decoder_func': 'DoLoseContextCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_lose_context', | |
| 'trace_level': 1, | |
| }, | |
| 'InsertFenceSyncCHROMIUM': { | |
| 'type': 'Custom', | |
| 'internal': True, | |
| 'impl_func': False, | |
| 'cmd_args': 'GLuint64 release_count', | |
| 'extension': "CHROMIUM_sync_point", | |
| 'trace_level': 1, | |
| }, | |
| 'GenSyncTokenCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_sync_point", | |
| }, | |
| 'GenUnverifiedSyncTokenCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_sync_point", | |
| }, | |
| 'VerifySyncTokensCHROMIUM' : { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_sync_point", | |
| }, | |
| 'WaitSyncTokenCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'cmd_args': 'GLint namespace_id, ' | |
| 'GLuint64 command_buffer_id, ' | |
| 'GLuint64 release_count', | |
| 'client_test': False, | |
| 'extension': "CHROMIUM_sync_point", | |
| }, | |
| 'DiscardBackbufferCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': True, | |
| 'trace_level': 2, | |
| }, | |
| 'ScheduleOverlayPlaneCHROMIUM': { | |
| 'type': 'Custom', | |
| 'client_test': False, | |
| 'extension': 'CHROMIUM_schedule_overlay_plane', | |
| }, | |
| 'ScheduleCALayerSharedStateCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLfloat opacity, GLboolean is_clipped, ' | |
| 'GLint sorting_context_id, GLuint shm_id, GLuint shm_offset', | |
| 'extension': 'CHROMIUM_schedule_ca_layer', | |
| }, | |
| 'ScheduleCALayerCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLuint contents_texture_id, GLuint background_color, ' | |
| 'GLuint edge_aa_mask, GLuint filter, GLuint shm_id, ' | |
| 'GLuint shm_offset', | |
| 'extension': 'CHROMIUM_schedule_ca_layer', | |
| }, | |
| 'ScheduleCALayerInUseQueryCHROMIUM': { | |
| 'type': 'PUTn', | |
| 'count': 1, | |
| 'decoder_func': 'DoScheduleCALayerInUseQueryCHROMIUM', | |
| 'cmd_args': 'GLsizei count, const GLuint* textures', | |
| 'extension': 'CHROMIUM_schedule_ca_layer', | |
| 'unit_test': False, | |
| }, | |
| 'ScheduleDCLayerSharedStateCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLfloat opacity, GLboolean is_clipped, ' | |
| 'GLint z_order, GLuint shm_id, GLuint shm_offset', | |
| 'extension': 'CHROMIUM_schedule_ca_layer', | |
| }, | |
| 'ScheduleDCLayerCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLsizei num_textures, GLuint background_color, ' | |
| 'GLuint edge_aa_mask, GLuint filter, GLuint shm_id, ' | |
| 'GLuint shm_offset, GLuint protected_video_type', | |
| 'extension': 'CHROMIUM_schedule_ca_layer', | |
| }, | |
| 'CommitOverlayPlanesCHROMIUM': { | |
| 'impl_func': False, | |
| 'decoder_func': 'DoCommitOverlayPlanes', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'extension': 'CHROMIUM_commit_overlay_planes', | |
| }, | |
| 'MatrixLoadfCHROMIUM': { | |
| 'type': 'PUT', | |
| 'count': 16, | |
| 'data_type': 'GLfloat', | |
| 'decoder_func': 'DoMatrixLoadfCHROMIUM', | |
| 'gl_test_func': 'glMatrixLoadfEXT', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'MatrixLoadIdentityCHROMIUM': { | |
| 'decoder_func': 'DoMatrixLoadIdentityCHROMIUM', | |
| 'gl_test_func': 'glMatrixLoadIdentityEXT', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'GenPathsCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint first_client_id, GLsizei range', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'DeletePathsCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint first_client_id, GLsizei range', | |
| 'impl_func': False, | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'IsPathCHROMIUM': { | |
| 'type': 'Is', | |
| 'decoder_func': 'DoIsPathCHROMIUM', | |
| 'gl_test_func': 'glIsPathNV', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'PathCommandsCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'PathParameterfCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'PathParameteriCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'PathStencilFuncCHROMIUM': { | |
| 'type': 'StateSet', | |
| 'state': 'PathStencilFuncCHROMIUM', | |
| 'decoder_func': 'glPathStencilFuncNV', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilFillPathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilStrokePathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'CoverFillPathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'CoverStrokePathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilThenCoverFillPathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilThenCoverStrokePathCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilFillPathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilStrokePathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'CoverFillPathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'CoverStrokePathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilThenCoverFillPathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'StencilThenCoverStrokePathInstancedCHROMIUM': { | |
| 'type': 'Custom', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'BindFragmentInputLocationCHROMIUM': { | |
| 'type': 'GLchar', | |
| 'data_transfer_methods': ['bucket'], | |
| 'needs_size': True, | |
| 'gl_test_func': 'DoBindFragmentInputLocationCHROMIUM', | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'ProgramPathFragmentInputGenCHROMIUM': { | |
| 'type': 'Custom', | |
| 'data_transfer_methods': ['shm'], | |
| 'extension': 'CHROMIUM_path_rendering', | |
| 'extension_flag': 'chromium_path_rendering', | |
| }, | |
| 'SetDrawRectangleCHROMIUM': { | |
| 'decoder_func': 'DoSetDrawRectangleCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_set_draw_rectangle', | |
| }, | |
| 'SetEnableDCLayersCHROMIUM': { | |
| 'decoder_func': 'DoSetEnableDCLayersCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_dc_layers', | |
| }, | |
| 'InitializeDiscardableTextureCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint texture_id, uint32_t shm_id, ' | |
| 'uint32_t shm_offset', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'extension': True, | |
| }, | |
| 'UnlockDiscardableTextureCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint texture_id', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'extension': True, | |
| }, | |
| 'LockDiscardableTextureCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint texture_id', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'extension': True, | |
| }, | |
| 'BeginRasterCHROMIUM': { | |
| 'decoder_func': 'DoBeginRasterCHROMIUM', | |
| 'impl_func': True, | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_raster_transport', | |
| 'extension_flag': 'chromium_raster_transport', | |
| }, | |
| 'RasterCHROMIUM': { | |
| 'decoder_func': 'DoRasterCHROMIUM', | |
| 'internal': True, | |
| 'impl_func': True, | |
| 'unit_test': False, | |
| 'cmd_args': 'GLuint raster_shm_id, GLuint raster_shm_offset,' | |
| 'GLsizeiptr raster_shm_size, GLuint font_shm_id,' | |
| 'GLuint font_shm_offset, GLsizeiptr font_shm_size', | |
| 'extension': 'CHROMIUM_raster_transport', | |
| 'extension_flag': 'chromium_raster_transport', | |
| }, | |
| 'MapRasterCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_raster_transport", | |
| }, | |
| 'UnmapRasterCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_raster_transport", | |
| }, | |
| 'MapFontBufferCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_raster_transport", | |
| }, | |
| 'EndRasterCHROMIUM': { | |
| 'decoder_func': 'DoEndRasterCHROMIUM', | |
| 'impl_func': True, | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_raster_transport', | |
| 'extension_flag': 'chromium_raster_transport', | |
| }, | |
| 'CreateTransferCacheEntryINTERNAL': { | |
| 'decoder_func': 'DoCreateTransferCacheEntryINTERNAL', | |
| 'cmd_args': 'GLuint entry_type, GLuint entry_id, GLuint handle_shm_id, ' | |
| 'GLuint handle_shm_offset, GLuint data_shm_id, ' | |
| 'GLuint data_shm_offset, GLuint data_size', | |
| 'internal': True, | |
| 'impl_func': True, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'extension': True, | |
| }, | |
| 'DeleteTransferCacheEntryINTERNAL': { | |
| 'decoder_func': 'DoDeleteTransferCacheEntryINTERNAL', | |
| 'cmd_args': 'GLuint entry_type, GLuint entry_id', | |
| 'internal': True, | |
| 'impl_func': True, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'extension': True, | |
| }, | |
| 'UnlockTransferCacheEntryINTERNAL': { | |
| 'decoder_func': 'DoUnlockTransferCacheEntryINTERNAL', | |
| 'cmd_args': 'GLuint entry_type, GLuint entry_id', | |
| 'internal': True, | |
| 'impl_func': True, | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'extension': True, | |
| }, | |
| 'TexStorage2DImageCHROMIUM': { | |
| 'decoder_func': 'DoTexStorage2DImageCHROMIUM', | |
| 'unit_test': False, | |
| 'extension': 'CHROMIUM_texture_storage_image', | |
| 'extension_flag': 'chromium_texture_storage_image', | |
| }, | |
| 'SetColorSpaceMetadataCHROMIUM': { | |
| 'type': 'Custom', | |
| 'impl_func': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLuint texture_id, GLuint shm_id, GLuint shm_offset, ' | |
| 'GLsizei color_space_size', | |
| 'extension': 'CHROMIUM_color_space_metadata', | |
| }, | |
| 'WindowRectanglesEXT': { | |
| 'type': 'PUTn', | |
| 'count': 4, | |
| 'decoder_func': 'DoWindowRectanglesEXT', | |
| 'unit_test': False, | |
| 'extension': 'EXT_window_rectangles', | |
| 'extension_flag': 'ext_window_rectangles', | |
| 'es3': True, | |
| }, | |
| 'CreateGpuFenceCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'impl_func': False, | |
| 'cmd_args': 'void', | |
| 'result': ['GLuint'], | |
| 'extension': 'CHROMIUM_gpu_fence', | |
| }, | |
| 'CreateGpuFenceINTERNAL': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint gpu_fence_id', | |
| 'extension': 'CHROMIUM_gpu_fence', | |
| 'extension_flag': 'chromium_gpu_fence', | |
| 'internal': True, | |
| }, | |
| 'CreateClientGpuFenceCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'impl_func': False, | |
| 'cmd_args': 'ClientGpuFence source', | |
| 'result': ['GLuint'], | |
| 'extension': 'CHROMIUM_gpu_fence', | |
| 'extension_flag': 'chromium_gpu_fence', | |
| }, | |
| 'WaitGpuFenceCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint gpu_fence_id', | |
| 'extension': 'CHROMIUM_gpu_fence', | |
| 'extension_flag': 'chromium_gpu_fence', | |
| }, | |
| 'DestroyGpuFenceCHROMIUM': { | |
| 'type': 'Custom', | |
| 'cmd_args': 'GLuint gpu_fence_id', | |
| 'extension': 'CHROMIUM_gpu_fence', | |
| 'extension_flag': 'chromium_gpu_fence', | |
| }, | |
| 'UnpremultiplyAndDitherCopyCHROMIUM': { | |
| 'decoder_func': 'DoUnpremultiplyAndDitherCopyCHROMIUM', | |
| 'cmd_args': 'GLuint source_id, GLuint dest_id, GLint x, GLint y, ' | |
| 'GLsizei width, GLsizei height', | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'impl_func': True, | |
| 'extension': 'CHROMIUM_unpremultiply_and_dither_copy', | |
| 'extension_flag': 'unpremultiply_and_dither_copy', | |
| }, | |
| 'InvalidateReadbackBufferShadowDataCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'impl_func': False, | |
| 'es3': True, | |
| 'extension': 'CHROMIUM_nonblocking_readback', | |
| }, | |
| 'SetReadbackBufferShadowAllocationINTERNAL': { | |
| 'decoder_func': 'DoSetReadbackBufferShadowAllocationINTERNAL', | |
| 'client_test': False, | |
| 'unit_test': False, | |
| 'impl_func': True, | |
| 'internal': True, | |
| 'es3': True, | |
| }, | |
| 'FramebufferParameteri': { | |
| 'decoder_func': 'DoFramebufferParameteri', | |
| 'unit_test': False, | |
| 'extension': 'MESA_framebuffer_flip_y', | |
| 'extension_flag': 'mesa_framebuffer_flip_y', | |
| }, | |
| 'FramebufferTextureMultiviewLayeredANGLE': { | |
| 'decoder_func': 'DoFramebufferTextureMultiviewLayeredANGLE', | |
| 'unit_test': False, | |
| 'extension': 'ANGLE_multiview', | |
| 'extension_flag': 'angle_multiview', | |
| 'trace_level': 1, | |
| 'es3': True | |
| }, | |
| 'MaxShaderCompilerThreadsKHR': { | |
| 'cmd_args': 'GLuint count', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'extension': 'KHRParallelShaderCompile', | |
| 'extension_flag': 'khr_parallel_shader_compile', | |
| }, | |
| 'CreateAndTexStorage2DSharedImageCHROMIUM': { | |
| 'type': 'NoCommand', | |
| 'extension': "CHROMIUM_shared_image", | |
| 'trace_level': 2, | |
| }, | |
| 'CreateAndTexStorage2DSharedImageINTERNAL': { | |
| 'decoder_func': 'DoCreateAndTexStorage2DSharedImageINTERNAL', | |
| 'internal': True, | |
| 'type': 'PUT', | |
| 'count': 16, # GL_MAILBOX_SIZE_CHROMIUM | |
| 'impl_func': False, | |
| 'unit_test': False, | |
| 'trace_level': 2, | |
| }, | |
| 'BeginSharedImageAccessDirectCHROMIUM': { | |
| 'decoder_func': 'DoBeginSharedImageAccessDirectCHROMIUM', | |
| 'extension': 'CHROMIUM_shared_image', | |
| 'unit_test': False, | |
| 'client_test': False, | |
| 'cmd_args': 'GLuint texture, GLenumSharedImageAccessMode mode', | |
| }, | |
| 'EndSharedImageAccessDirectCHROMIUM': { | |
| 'decoder_func': 'DoEndSharedImageAccessDirectCHROMIUM', | |
| 'extension': 'CHROMIUM_shared_image', | |
| 'unit_test': False, | |
| } | |
| } | |
| def main(argv): | |
| """This is the main function.""" | |
| parser = OptionParser() | |
| parser.add_option( | |
| "--output-dir", | |
| help="base directory for resulting files, under chrome/src. default is " | |
| "empty. Use this if you want the result stored under gen.") | |
| parser.add_option( | |
| "-v", "--verbose", action="store_true", | |
| help="prints more output.") | |
| (options, _) = parser.parse_args(args=argv) | |
| # Add in states and capabilites to GLState | |
| gl_state_valid = _NAMED_TYPE_INFO['GLState']['valid'] | |
| gl_state_valid_es3 = _NAMED_TYPE_INFO['GLState']['valid_es3'] | |
| for state_name in sorted(build_cmd_buffer_lib._STATE_INFO): | |
| state = build_cmd_buffer_lib._STATE_INFO[state_name] | |
| if 'extension_flag' in state: | |
| continue | |
| if 'enum' in state: | |
| if not state['enum'] in gl_state_valid: | |
| gl_state_valid.append(state['enum']) | |
| else: | |
| for item in state['states']: | |
| if 'extension_flag' in item: | |
| continue | |
| if 'es3' in item: | |
| assert item['es3'] | |
| if not item['enum'] in gl_state_valid_es3: | |
| gl_state_valid_es3.append(item['enum']) | |
| else: | |
| if not item['enum'] in gl_state_valid: | |
| gl_state_valid.append(item['enum']) | |
| for capability in build_cmd_buffer_lib._CAPABILITY_FLAGS: | |
| if 'extension_flag' in capability: | |
| continue | |
| valid_value = "GL_%s" % capability['name'].upper() | |
| if not valid_value in gl_state_valid: | |
| gl_state_valid.append(valid_value) | |
| # This script lives under gpu/command_buffer, cd to base directory. | |
| os.chdir(os.path.dirname(__file__) + "/../..") | |
| base_dir = os.getcwd() | |
| build_cmd_buffer_lib.InitializePrefix("GLES2") | |
| gen = build_cmd_buffer_lib.GLGenerator(options.verbose, "2014", | |
| _FUNCTION_INFO, _NAMED_TYPE_INFO) | |
| gen.ParseGLH("gpu/command_buffer/gles2_cmd_buffer_functions.txt") | |
| # Support generating files under gen/ | |
| if options.output_dir != None: | |
| os.chdir(options.output_dir) | |
| gen.WritePepperGLES2Interface("ppapi/api/ppb_opengles2.idl", False) | |
| gen.WritePepperGLES2Interface("ppapi/api/dev/ppb_opengles2ext_dev.idl", True) | |
| gen.WriteGLES2ToPPAPIBridge("ppapi/lib/gl/gles2/gles2.c") | |
| gen.WritePepperGLES2Implementation( | |
| "ppapi/shared_impl/ppb_opengles2_shared.cc") | |
| os.chdir(base_dir) | |
| gen.WriteCommandIds("gpu/command_buffer/common/gles2_cmd_ids_autogen.h") | |
| gen.WriteFormat("gpu/command_buffer/common/gles2_cmd_format_autogen.h") | |
| gen.WriteFormatTest( | |
| "gpu/command_buffer/common/gles2_cmd_format_test_autogen.h") | |
| gen.WriteGLES2InterfaceHeader( | |
| "gpu/command_buffer/client/gles2_interface_autogen.h") | |
| gen.WriteGLES2InterfaceStub( | |
| "gpu/command_buffer/client/gles2_interface_stub_autogen.h") | |
| gen.WriteGLES2InterfaceStubImpl( | |
| "gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h") | |
| gen.WriteGLES2ImplementationHeader( | |
| "gpu/command_buffer/client/gles2_implementation_autogen.h") | |
| gen.WriteGLES2Implementation( | |
| "gpu/command_buffer/client/gles2_implementation_impl_autogen.h") | |
| gen.WriteGLES2ImplementationUnitTests( | |
| "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h") | |
| gen.WriteGLES2TraceImplementationHeader( | |
| "gpu/command_buffer/client/gles2_trace_implementation_autogen.h") | |
| gen.WriteGLES2TraceImplementation( | |
| "gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h") | |
| gen.WriteGLES2CLibImplementation( | |
| "gpu/command_buffer/client/gles2_c_lib_autogen.h") | |
| gen.WriteCmdHelperHeader( | |
| "gpu/command_buffer/client/gles2_cmd_helper_autogen.h") | |
| gen.WriteServiceImplementation( | |
| "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h") | |
| gen.WritePassthroughServiceImplementation( | |
| "gpu/command_buffer/service/" + | |
| "gles2_cmd_decoder_passthrough_handlers_autogen.cc") | |
| gen.WriteServiceContextStateHeader( | |
| "gpu/command_buffer/service/context_state_autogen.h") | |
| gen.WriteServiceContextStateImpl( | |
| "gpu/command_buffer/service/context_state_impl_autogen.h") | |
| gen.WriteClientContextStateHeader( | |
| "gpu/command_buffer/client/client_context_state_autogen.h") | |
| gen.WriteClientContextStateImpl( | |
| "gpu/command_buffer/client/client_context_state_impl_autogen.h") | |
| gen.WriteServiceUnitTests( | |
| "gpu/command_buffer/service/gles2_cmd_decoder_unittest_%d_autogen.h") | |
| gen.WriteServiceUnitTestsForExtensions( | |
| "gpu/command_buffer/service/" | |
| "gles2_cmd_decoder_unittest_extensions_autogen.h") | |
| gen.WriteServiceUtilsHeader( | |
| "gpu/command_buffer/service/gles2_cmd_validation_autogen.h") | |
| gen.WriteServiceUtilsImplementation( | |
| "gpu/command_buffer/service/" | |
| "gles2_cmd_validation_implementation_autogen.h") | |
| gen.WriteCommonUtilsHeader( | |
| "gpu/command_buffer/common/gles2_cmd_utils_autogen.h") | |
| gen.WriteCommonUtilsImpl( | |
| "gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h") | |
| gen.WriteGLES2Header("gpu/GLES2/gl2chromium_autogen.h") | |
| build_cmd_buffer_lib.Format(gen.generated_cpp_filenames) | |
| if gen.errors > 0: | |
| print "%d errors" % gen.errors | |
| return 1 | |
| return 0 | |
| if __name__ == '__main__': | |
| sys.exit(main(sys.argv[1:])) |