Adding script to auto-generate decoding logic for graphic API commands logged in minidumps.
Test: manual testing for now, but I will add tests.
BUG=223858461
Change-Id: I4e467ff23a445198e2188a873f36a3ffc5ed30c6
diff --git a/registry/vulkan/scripts/cereal/__init__.py b/registry/vulkan/scripts/cereal/__init__.py
index 861cee3..e4710d2 100644
--- a/registry/vulkan/scripts/cereal/__init__.py
+++ b/registry/vulkan/scripts/cereal/__init__.py
@@ -15,3 +15,4 @@
from .unbox import *
from .decodersnapshot import *
from .subdecode import *
+from .api_log_decoder import *
\ No newline at end of file
diff --git a/registry/vulkan/scripts/cereal/api_log_decoder.py b/registry/vulkan/scripts/cereal/api_log_decoder.py
new file mode 100644
index 0000000..c4c119f
--- /dev/null
+++ b/registry/vulkan/scripts/cereal/api_log_decoder.py
@@ -0,0 +1,277 @@
+import os
+from typing import List, Set, Dict, Optional
+
+from . import VulkanType, VulkanCompoundType
+from .wrapperdefs import VulkanWrapperGenerator
+
+
+class ApiLogDecoder(VulkanWrapperGenerator):
+ """
+ This class generates decoding logic for the graphics API logs captured by
+ [GfxApiLogger](http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/base/GfxApiLogger.h)
+
+ This allows developers to see a pretty-printed version of the API log data when using
+ print_gfx_logs.py
+ """
+
+ # List of Vulkan APIs that we will generate decoding logic for
+ generated_apis = [
+ "vkCmdBeginRenderPass",
+ "vkCmdBindPipeline",
+ "vkCmdCopyBufferToImage",
+ "vkCmdPipelineBarrier",
+ ]
+
+ def __init__(self, module, typeInfo):
+ VulkanWrapperGenerator.__init__(self, module, typeInfo)
+ self.typeInfo = typeInfo
+
+ # Output file
+ self.out = open(
+ os.path.join(self.repo_root(), "scripts", "print_gfx_logs", "vulkan_printer.py"), "w")
+
+ # Set of Vulkan structs that we need to write decoding logic for
+ self.structs: Set[str] = set()
+
+ # Maps enum group names to the list of enums in the group, for all enum groups in the spec
+ # E.g.: "VkResult": ["VK_SUCCESS", "VK_NOT_READY", "VK_TIMEOUT", etc...]
+ self.all_enums: Dict[str, List[str]] = {}
+
+ # Set of Vulkan enums that we need to write decoding logic for
+ self.needed_enums: Set[str] = {"VkStructureType"}
+
+ def repo_root(self):
+ """Returns the path to the root of gfxstream's git repo"""
+ return os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..'))
+
+ def onBegin(self):
+ self.out.write("""
+#####################################################################################################
+# Pretty-printer functions for Vulkan data structures
+# THIS FILE IS AUTO-GENERATED - DO NOT EDIT
+#
+# To re-generate this file, run generate-vulkan-sources.sh
+#####################################################################################################
+
+""".lstrip())
+
+ def onGenGroup(self, groupinfo, groupName, alias=None):
+ """Called for each enum group in the spec"""
+ for enum in groupinfo.elem.findall("enum"):
+ self.all_enums[groupName] = self.all_enums.get(groupName, []) + [enum.get('name')]
+
+ def onEnd(self):
+ for api_name in sorted(self.generated_apis):
+ self.process_api(api_name)
+ self.process_structs()
+ self.process_enums()
+
+ def process_api(self, api_name):
+ """Main entry point to generate decoding logic for each Vulkan API"""
+ api = self.typeInfo.apis[api_name]
+ self.out.write('def OP_{}(printer, indent: int):\n'.format(api_name))
+
+ # Decode the sequence number. All commands have sequence numbers, except those handled
+ # by VkSubdecoder.cpp. The logic here is a bit of a hack since it's based on the command
+ # name. Ideally, we would detect whether a particular command is part of a subdecode block
+ # in the decoding script.
+ if not api_name.startswith("vkCmd") and api_name != "vkBeginCommandBufferAsyncGOOGLE":
+ self.out.write(' printer.write_int("seqno: ", 4, indent)\n')
+
+ for param in api.parameters:
+ # Add any structs that this API uses to the list of structs to write decoding logic for
+ if self.typeInfo.isCompoundType(param.typeName):
+ self.structs.add(param.typeName)
+
+ # Don't try to print the pData field of vkQueueFlushCommandsGOOGLE, those are the
+ # commands processed as part of the subdecode pass
+ if api.name == "vkQueueFlushCommandsGOOGLE" and param.paramName == "pData":
+ continue
+
+ # Write out decoding logic for that parameter
+ self.process_type(param)
+
+ # Finally, add a return statement. This is needed in case the API has no parameters.
+ self.out.write(' return\n\n')
+
+ def process_structs(self):
+ """Writes decoding logic for all the structs that we use"""
+
+ # self.structs now contains all the structs used directly by the Vulkan APIs we use.
+ # Recursively expand this set to add all the structs used by these structs.
+ copy = self.structs.copy()
+ self.structs.clear()
+ for struct_name in copy:
+ self.expand_needed_structs(struct_name)
+
+ # Now we have the full list of structs that we need to write decoding logic for.
+ # Write a decoder for each of them
+ for struct_name in sorted(self.structs):
+ struct = self.typeInfo.structs[struct_name]
+ self.out.write('def struct_{}(printer, indent: int):\n'.format(struct_name))
+ for member in self.get_members(struct):
+ self.process_type(member)
+ self.out.write('\n')
+
+ def expand_needed_structs(self, struct_name: str):
+ """
+ Recursively adds all the structs used by a given struct to the list of structs to process
+ """
+ if struct_name in self.structs:
+ return
+ self.structs.add(struct_name)
+ struct = self.typeInfo.structs[struct_name]
+ for member in self.get_members(struct):
+ if self.typeInfo.isCompoundType(member.typeName):
+ self.expand_needed_structs(member.typeName)
+
+ def get_members(self, struct: VulkanCompoundType):
+ """
+ Returns the members of a struct/union that we need to process.
+ For structs, returns the list of all members
+ For unions, returns a list with just the first member.
+ """
+ return struct.members[0:1] if struct.isUnion else struct.members
+
+ def process_type(self, type: VulkanType):
+ """
+ Writes decoding logic for a single Vulkan type. This could be the parameter in a Vulkan API,
+ or a struct member.
+ """
+ if type.typeName == "VkStructureType":
+ self.out.write(' printer.write_stype_and_pnext("{}", indent)\n'
+ .format(type.parent.structEnumExpr))
+ return
+
+ if type.isNextPointer():
+ return
+
+ if type.paramName == "commandBuffer":
+ if type.parent.name != "vkQueueFlushCommandsGOOGLE":
+ return
+
+ # Enums
+ if type.isEnum(self.typeInfo):
+ self.needed_enums.add(type.typeName)
+ self.out.write(' printer.write_enum("{}", {}, indent)\n'.format(
+ type.paramName, type.typeName))
+ return
+
+ # Bitmasks
+ if type.isBitmask(self.typeInfo):
+ enum_type = self.typeInfo.bitmasks.get(type.typeName)
+ if enum_type:
+ self.needed_enums.add(enum_type)
+ self.out.write(' printer.write_flags("{}", {}, indent)\n'.format(
+ type.paramName, enum_type))
+ return
+ # else, fall through and let the primitive type logic handle it
+
+ # Structs or unions
+ if self.typeInfo.isCompoundType(type.typeName):
+ self.out.write(
+ ' printer.write_struct("{name}", struct_{type}, {optional}, {count}, indent)\n'
+ .format(name=type.paramName,
+ type=type.typeName,
+ optional=type.isOptionalPointer(),
+ count=self.get_length_expression(type)))
+ return
+
+ # Null-terminated strings
+ if type.isString():
+ self.out.write(' printer.write_string("{}", None, indent)\n'.format(type.paramName))
+ return
+
+ # Arrays of primitive types
+ if type.staticArrExpr and type.primitiveEncodingSize and type.primitiveEncodingSize <= 8:
+ # Array sizes are specified either as a number, or as an enum value
+ array_size = int(type.staticArrExpr) if type.staticArrExpr.isdigit() \
+ else self.typeInfo.enumValues.get(type.staticArrExpr)
+ assert array_size is not None, type.staticArrExpr
+
+ if type.typeName == "char":
+ self.out.write(' printer.write_string("{}", {}, indent)\n'
+ .format(type.paramName, array_size))
+ elif type.typeName == "float":
+ self.out.write(
+ ' printer.write_float("{}", indent, count={})\n'
+ .format(type.paramName, array_size))
+ else:
+ self.out.write(
+ ' printer.write_int("{name}", {int_size}, indent, signed={signed}, count={array_size})\n'
+ .format(name=type.paramName,
+ array_size=array_size,
+ int_size=type.primitiveEncodingSize,
+ signed=type.isSigned()))
+ return
+
+ # Pointers
+ if type.pointerIndirectionLevels > 0:
+ # Assume that all uint32* are always serialized directly rather than passed by pointers.
+ # This is probably not always true (e.g. out params) - fix this as needed.
+ size = 4 if type.primitiveEncodingSize == 4 else 8
+ self.out.write(
+ ' {name} = printer.write_int("{name}", {size}, indent, optional={opt}, count={count}, big_endian={big_endian})\n'
+ .format(name=type.paramName,
+ size=size,
+ opt=type.isOptionalPointer(),
+ count=self.get_length_expression(type),
+ big_endian=self.using_big_endian(type)))
+ return
+
+ # Primitive types (ints, floats)
+ if type.isSimpleValueType(self.typeInfo) and type.primitiveEncodingSize:
+ if type.typeName == "float":
+ self.out.write(
+ ' printer.write_float("{name}", indent)\n'.format(name=type.paramName))
+ else:
+ self.out.write(
+ ' {name} = printer.write_int("{name}", {size}, indent, signed={signed}, big_endian={big_endian})\n'.format(
+ name=type.paramName,
+ size=type.primitiveEncodingSize,
+ signed=type.isSigned(),
+ big_endian=self.using_big_endian(type))
+ )
+ return
+
+ raise NotImplementedError(
+ "No decoding logic for {} {}".format(type.typeName, type.paramName))
+
+ def using_big_endian(self, type: VulkanType):
+ """For some reason gfxstream serializes some types as big endian"""
+ return type.typeName == "size_t"
+
+ def get_length_expression(self, type: VulkanType) -> Optional[str]:
+ """Returns the length expression for a given type"""
+ if type.lenExpr is None:
+ return None
+
+ if type.lenExpr.isalpha():
+ return type.lenExpr
+
+ # There are a couple of instances in the spec where we use a math expression to express the
+ # length (e.g. VkPipelineMultisampleStateCreateInfo). CodeGen().generalLengthAccess() has
+ # logic o parse these expressions correctly, but for now,we just use a simple lookup table.
+ known_expressions = {
+ r"latexmath:[\lceil{\mathit{rasterizationSamples} \over 32}\rceil]":
+ "int(rasterizationSamples / 32)",
+ r"latexmath:[\textrm{codeSize} \over 4]": "int(codeSize / 4)",
+ r"null-terminated": None
+ }
+ if type.lenExpr in known_expressions:
+ return known_expressions[type.lenExpr]
+
+ raise NotImplementedError("Unknown length expression: " + type.lenExpr)
+
+ def process_enums(self):
+ """
+ For each Vulkan enum that we use, write out a python dictionary mapping the enum values back
+ to the enum name as a string
+ """
+ for enum_name in sorted(self.needed_enums):
+ self.out.write('{} = {{\n'.format(enum_name))
+ for identifier in self.all_enums[enum_name]:
+ value = self.typeInfo.enumValues.get(identifier)
+ if value is not None and isinstance(value, int):
+ self.out.write(' {}: "{}",\n'.format(value, identifier))
+ self.out.write('}\n\n')
diff --git a/registry/vulkan/scripts/cereal/common/vulkantypes.py b/registry/vulkan/scripts/cereal/common/vulkantypes.py
index 160d291..f91dddb 100644
--- a/registry/vulkan/scripts/cereal/common/vulkantypes.py
+++ b/registry/vulkan/scripts/cereal/common/vulkantypes.py
@@ -340,6 +340,15 @@
def isNextPointer(self):
return self.paramName == "pNext"
+ def isSigned(self):
+ return self.typeName in ["int", "int8_t", "int16_t", "int32_t", "int64_t"]
+
+ def isEnum(self, typeInfo):
+ return typeInfo.categoryOf(self.typeName) == "enum"
+
+ def isBitmask(self, typeInfo):
+ return typeInfo.categoryOf(self.typeName) == "enum"
+
# Only deals with 'core' handle types here.
def isDispatchableHandleType(self):
return self.typeName in DISPATCHABLE_HANDLE_TYPES
@@ -876,6 +885,7 @@
"int64_t": 8,
"size_t": 8,
"ssize_t": 8,
+ "VkBool32": 4,
}
if name in baseEncodingSizes:
diff --git a/registry/vulkan/scripts/cerealgenerator.py b/registry/vulkan/scripts/cerealgenerator.py
index 4629f29..ec8292b 100644
--- a/registry/vulkan/scripts/cerealgenerator.py
+++ b/registry/vulkan/scripts/cerealgenerator.py
@@ -486,6 +486,12 @@
extraImpl="",
useNamespace=False,
implOnly=True)
+ self.addHostModule("ApiLogDecoder",
+ extraHeader="",
+ extraImpl="",
+ useNamespace=False,
+ implOnly=True,
+ suppress=True)
self.addWrapper(cereal.VulkanEncoder, "VkEncoder")
self.addWrapper(cereal.VulkanExtensionStructs, "goldfish_vk_extension_structs_guest")
@@ -507,6 +513,7 @@
self.addWrapper(cereal.VulkanDecoder, "VkDecoder")
self.addWrapper(cereal.VulkanDecoderSnapshot, "VkDecoderSnapshot")
self.addWrapper(cereal.VulkanSubDecoder, "VkSubDecoder")
+ self.addWrapper(cereal.ApiLogDecoder, "ApiLogDecoder")
self.guestAndroidMkCppFiles = ""
self.hostCMakeCppFiles = ""
@@ -540,23 +547,26 @@
customAbsDir = self.guest_abs_hal_destination,
useNamespace = useNamespace)
- def addHostModule(self, basename, extraHeader = "", extraImpl = "", useNamespace = True, implOnly = False):
+ def addHostModule(self, basename, extraHeader = "", extraImpl = "", useNamespace = True,
+ implOnly = False, suppress = False):
self.addModule(self.host_tag,
basename,
extraHeader = extraHeader,
extraImpl = extraImpl,
customAbsDir = self.host_abs_decoder_destination,
useNamespace = useNamespace,
- implOnly = implOnly)
+ implOnly = implOnly,
+ suppress = suppress)
def addModule(self, directory, basename,
extraHeader = "", extraImpl = "",
customAbsDir = None,
useNamespace = True,
- implOnly = False):
+ implOnly = False,
+ suppress = False):
self.moduleList.append(basename)
self.modules[basename] = \
- cereal.Module(directory, basename, customAbsDir = customAbsDir, implOnly = implOnly)
+ cereal.Module(directory, basename, customAbsDir = customAbsDir, suppress = suppress, implOnly = implOnly)
self.modules[basename].headerPreamble = copyrightHeader
self.modules[basename].headerPreamble += \
autogeneratedHeaderTemplate % \
@@ -619,7 +629,7 @@
if suppressEnabled:
def enableSuppression(m):
- m.suppress = True;
+ m.suppress = True
self.forEachModule(enableSuppression)
self.modules[suppressExceptModule].suppress = False
diff --git a/scripts/print_gfx_logs/command_printer.py b/scripts/print_gfx_logs/command_printer.py
index 0f051ea..3c6320a 100644
--- a/scripts/print_gfx_logs/command_printer.py
+++ b/scripts/print_gfx_logs/command_printer.py
@@ -1,7 +1,9 @@
import io
import textwrap
-from typing import Dict
+from typing import Dict, Optional
import vulkan_printer
+import opcodes
+import struct
class CommandPrinter:
@@ -21,7 +23,11 @@
"""
# Print out the command name
- print("\n{}.{} - {}: ({} bytes)".format(self.stream_idx, self.cmd_idx, self.cmd_name(), self.original_size - 8))
+ print("\n{}.{} - {}: ({} bytes)".format(self.stream_idx, self.cmd_idx, self.cmd_name(),
+ self.original_size - 8))
+
+ if len(self.data.getbuffer()) == 0:
+ return
pretty_printer = getattr(vulkan_printer, self.cmd_name(), None)
if not pretty_printer:
@@ -33,7 +39,7 @@
# Check that we processed all the bytes, otherwise there's probably a bug in the pretty printing logic
if self.data.tell() != len(self.data.getbuffer()):
raise BufferError(
- "Not all data was decoded. Decoded {} bytes but expected {}".format(
+ "Not all data was decoded. Decoded {} bytes but command had {}".format(
self.data.tell(), len(self.data.getbuffer())))
except Exception as ex:
print("Error while processing {}: {}".format(self.cmd_name(), repr(ex)))
@@ -43,7 +49,7 @@
def cmd_name(self) -> str:
"""Returns the command name (e.g.: "OP_vkBeginCommandBuffer", or the opcode as a string if unknown"""
- return vulkan_printer.opcodes.get(self.opcode, str(self.opcode))
+ return opcodes.opcodes.get(self.opcode, str(self.opcode))
def print_raw(self):
"""Prints the command data as a hex bytes, as a fallback if we don't know how to decode it"""
@@ -52,16 +58,26 @@
hex = ' '.join(["{:02x}".format(x) for x in self.data.getbuffer()])
if truncated:
hex += " [...]"
- lines = textwrap.wrap(hex, width=16 * 3 + indent, initial_indent=' ' * indent, subsequent_indent=' ' * indent)
+ lines = textwrap.wrap(hex, width=16 * 3 + indent, initial_indent=' ' * indent,
+ subsequent_indent=' ' * indent)
for l in lines:
print(l)
- def read_int(self, num_bytes: int, signed: bool = False) -> int:
- assert num_bytes == 4 or num_bytes == 8
- buf = self.data.read(num_bytes)
- if len(buf) != num_bytes:
- raise EOFError("Unexpectly reached the end of the buffer")
- return int.from_bytes(buf, byteorder='little', signed=signed)
+ def read_bytes(self, size: int):
+ buf = self.data.read(size)
+ if len(buf) != size:
+ raise EOFError("Unexpectedly reached the end of the buffer")
+ return buf
+
+ def read_int(self, size: int, signed: bool = False, big_endian: bool = False) -> int:
+ assert size in [1, 2, 4, 8], "Invalid size to read: " + str(size)
+ buf = self.read_bytes(size)
+ byte_order = 'big' if big_endian else 'little'
+ return int.from_bytes(buf, byteorder=byte_order, signed=signed)
+
+ def read_float(self) -> float:
+ buf = self.read_bytes(4)
+ return struct.unpack('f', buf)[0]
def write(self, msg: str, indent: int):
"""Prints a string at a given indentation level"""
@@ -71,53 +87,118 @@
def write_int(self,
field_name: str,
- num_bytes: int,
+ size: int,
indent: int,
signed: bool = False,
- value: int = None):
- """Reads the next 32 or 64 bytes integer from the data stream and prints it"""
- if value is None:
- value = self.read_int(num_bytes, signed)
- self.write("{}: {}\n".format(field_name, value), indent)
+ big_endian: bool = False,
+ optional: bool = False,
+ count: Optional[int] = None) -> Optional[int]:
+ """
+ Reads and prints integers from the data stream.
- def write_enum(self, field_name: str, enum: Dict[int, str], indent: int, value: int = None):
- """Reads the next 32-byte int from the data stream and prints it as an enum"""
- if value is None:
- value = self.read_int(4)
+ When reading a single int (ie: when count=None), returns the int that was read, otherwise
+ returns None.
+
+ size: size of the integer in bytes
+ indent: indentation level that we should write at
+ signed: whether to treat it as a signed or unsigned int
+ big_endian: whether to treat it as little endian or big endian
+ optional: if True, we will first read an 8 byte boolean value. If that value is false, we
+ will return without further reading.
+ count: how many integers to read, for repeated values.
+ """
+ if optional and self.check_null(field_name, indent):
+ return
+
+ # Write the field name
+ self.write("{name}: ".format(name=field_name), indent)
+
+ if count is not None:
+ values = ["0x{:x}".format(self.read_int(size, signed, big_endian)) for i in
+ range(0, count)]
+ self.write("[{}]\n".format(", ".join(values)), indent=0)
+ else:
+ value = self.read_int(size, signed, big_endian)
+ # Print small values as decimal only, otherwise hex + decimal
+ format_str = ("{val}\n" if value < 10 else "0x{val:x} ({val})\n")
+ self.write(format_str.format(val=value), indent=0)
+ return value
+
+ def write_float(self, field_name: str, indent: int, count: Optional[int] = None):
+ if count is not None:
+ values = [str(self.read_float()) for i in range(0, count)]
+ self.write("{}: [{}]\n".format(field_name, ", ".join(values)), indent)
+ else:
+ self.write("{}: {}\n".format(field_name, self.read_float()), indent)
+
+ def write_enum(self, field_name: str, enum: Dict[int, str], indent: int) -> int:
+ """Reads the next 32-byte int from the data stream, prints it as an enum, and return it"""
+ value = self.read_int(4)
self.write("{}: {} ({})\n".format(field_name, enum.get(value, ""), value), indent)
+ return value
+
+ def write_flags(self, field_name: str, enum: Dict[int, str], indent: int):
+ """Reads and prints Vulkan flags (byte masks)"""
+ flags = self.read_int(4)
+ flags_list = []
+ if flags != 0xffffffff: # When the value is set to all flags, don't bother listing them all
+ for (value, flag) in enum.items():
+ if value & flags:
+ flags_list.append(flag)
+ self.write("{}: {} (0x{:x})\n".format(field_name, " | ".join(flags_list), flags), indent)
def write_stype_and_pnext(self, expected_stype: str, indent: int):
"""Reads and prints the sType and pNext fields found in many Vulkan structs, while also sanity checking them"""
- stype = self.read_int(4)
- self.write_enum("sType", vulkan_printer.VkStructureType, indent, value=stype)
- if vulkan_printer.VkStructureType.get(stype) != expected_stype:
- raise ValueError("Wrong sType while decoding data. Expected: " + expected_stype)
+ stype = self.write_enum("sType", vulkan_printer.VkStructureType, indent)
+ stype_str = vulkan_printer.VkStructureType.get(stype)
+ if stype_str != expected_stype:
+ raise ValueError("Wrong structure type. Expected: {}, got {} ({}) instead".format(
+ expected_stype, stype, stype_str))
- pnext_size = self.read_int(4)
- self.write_int("pNextSize", 4, indent, value=pnext_size)
+ pnext_size = self.write_int("pNext_size", 4, indent, big_endian=True)
if pnext_size != 0:
- raise NotImplementedError("Decoding structs with pNextSize > 0 not supported")
+ self.write_enum("ext type", vulkan_printer.VkStructureType, indent + 1)
+ raise NotImplementedError("Decoding structs with extensions is not supported")
- def write_struct(self, field_name: str, struct_fn, indent: int):
- """Reads and prints a struct, calling `struct_fn` to pretty-print it"""
- self.write("{}:\n".format(field_name), indent)
- struct_fn(self, indent + 1)
+ def check_null(self, field_name: str, indent) -> bool:
+ is_null = self.read_int(8, big_endian=True) == 0
+ if is_null:
+ self.write("{}: (null)\n".format(field_name), indent)
+ return is_null
- def write_repeated(self,
- count_name: str,
- field_name: str,
- struct_fn,
- indent: int,
- pointer_name: str = None):
+ def write_struct(self, field_name: str, struct_fn, optional: bool, count: Optional[int],
+ indent: int):
"""
- Reads and prints repeated structs, with a 32-byte count field followed by the struct data.
- If pointer_name is not None, reads an additional 64-bit pointer within the repeated block
- before reading repeated data.
+ Reads and prints a struct, calling `struct_fn` to pretty-print it
+ optional: whether this is an optional structure. In this case, we will read an int64 first
+ and skip the struct if the result is null.
+ count: how many times this is repeated. Pass None for non-repeated fields.
"""
- count = self.read_int(4)
- if pointer_name is not None:
- self.write_int(pointer_name, 8, indent)
- assert count < 1000, "count too large: {}".format(count) # Sanity check that we haven't read garbage data
- self.write_int(count_name, 4, indent, value=count)
- for i in range(0, count):
- self.write_struct("{} #{}".format(field_name, i), struct_fn, indent)
+ if optional and self.check_null(field_name, indent):
+ return
+
+ is_repeated = count is not None
+ for i in range(0, count if is_repeated else 1):
+ suffix = " #{}".format(i) if is_repeated else ""
+ self.write("{}{}:\n".format(field_name, suffix), indent)
+ struct_fn(self, indent + 1)
+
+ def write_string(self, field_name: str, size: Optional[int], indent: int):
+ """
+ Reads a null-terminated string from the stream.
+ size: if specified, reads up to this many characters
+ """
+ buf = b''
+ if size is not None:
+ buf = self.read_bytes(size)
+ buf = buf.rstrip(b'\x00')
+ else:
+ # Reads from the string one char at a time, until we find a null
+ # Not the most efficient way of doing this, but whatever
+ while True:
+ c = self.read_int(1)
+ if c == 0:
+ break
+ buf += c
+
+ self.write("{}: \"{}\"\n".format(field_name, buf.decode('utf-8')), indent)
diff --git a/scripts/print_gfx_logs/opcodes.py b/scripts/print_gfx_logs/opcodes.py
new file mode 100644
index 0000000..6543a63
--- /dev/null
+++ b/scripts/print_gfx_logs/opcodes.py
@@ -0,0 +1,1295 @@
+"""
+gfxstream opcodes
+
+This is a map of all gfxstream opcodes back to their string names.
+
+Currently, this was manually generated from the following files:
+
+Vulkan: http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/vulkan/cereal/common/goldfish_vk_marshaling.h
+RenderControl: http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/renderControl_dec/renderControl_opcodes.h
+GLES1: http://source/android/device/generic/vulkan-cereal/stream-servers/gles1_dec/gles1_opcodes.h
+GLES2: http://source/android/device/generic/vulkan-cereal/stream-servers/gles2_dec/gles2_opcodes.h
+
+TODO(gregschlom): Consider auto-generating this file in the future.
+"""
+
+opcodes = {
+ ###############################################################################################
+ # Vulkan opcodes
+ # http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/vulkan/cereal/common/goldfish_vk_marshaling.h
+ ###############################################################################################
+ 20000: "OP_vkCreateInstance",
+ 20001: "OP_vkDestroyInstance",
+ 20002: "OP_vkEnumeratePhysicalDevices",
+ 20003: "OP_vkGetPhysicalDeviceFeatures",
+ 20004: "OP_vkGetPhysicalDeviceFormatProperties",
+ 20005: "OP_vkGetPhysicalDeviceImageFormatProperties",
+ 20006: "OP_vkGetPhysicalDeviceProperties",
+ 20007: "OP_vkGetPhysicalDeviceQueueFamilyProperties",
+ 20008: "OP_vkGetPhysicalDeviceMemoryProperties",
+ 20009: "OP_vkGetInstanceProcAddr",
+ 20010: "OP_vkGetDeviceProcAddr",
+ 20011: "OP_vkCreateDevice",
+ 20012: "OP_vkDestroyDevice",
+ 20013: "OP_vkEnumerateInstanceExtensionProperties",
+ 20014: "OP_vkEnumerateDeviceExtensionProperties",
+ 20015: "OP_vkEnumerateInstanceLayerProperties",
+ 20016: "OP_vkEnumerateDeviceLayerProperties",
+ 20017: "OP_vkGetDeviceQueue",
+ 20018: "OP_vkQueueSubmit",
+ 20019: "OP_vkQueueWaitIdle",
+ 20020: "OP_vkDeviceWaitIdle",
+ 20021: "OP_vkAllocateMemory",
+ 20022: "OP_vkFreeMemory",
+ 20023: "OP_vkMapMemory",
+ 20024: "OP_vkUnmapMemory",
+ 20025: "OP_vkFlushMappedMemoryRanges",
+ 20026: "OP_vkInvalidateMappedMemoryRanges",
+ 20027: "OP_vkGetDeviceMemoryCommitment",
+ 20028: "OP_vkBindBufferMemory",
+ 20029: "OP_vkBindImageMemory",
+ 20030: "OP_vkGetBufferMemoryRequirements",
+ 20031: "OP_vkGetImageMemoryRequirements",
+ 20032: "OP_vkGetImageSparseMemoryRequirements",
+ 20033: "OP_vkGetPhysicalDeviceSparseImageFormatProperties",
+ 20034: "OP_vkQueueBindSparse",
+ 20035: "OP_vkCreateFence",
+ 20036: "OP_vkDestroyFence",
+ 20037: "OP_vkResetFences",
+ 20038: "OP_vkGetFenceStatus",
+ 20039: "OP_vkWaitForFences",
+ 20040: "OP_vkCreateSemaphore",
+ 20041: "OP_vkDestroySemaphore",
+ 20042: "OP_vkCreateEvent",
+ 20043: "OP_vkDestroyEvent",
+ 20044: "OP_vkGetEventStatus",
+ 20045: "OP_vkSetEvent",
+ 20046: "OP_vkResetEvent",
+ 20047: "OP_vkCreateQueryPool",
+ 20048: "OP_vkDestroyQueryPool",
+ 20049: "OP_vkGetQueryPoolResults",
+ 20050: "OP_vkCreateBuffer",
+ 20051: "OP_vkDestroyBuffer",
+ 20052: "OP_vkCreateBufferView",
+ 20053: "OP_vkDestroyBufferView",
+ 20054: "OP_vkCreateImage",
+ 20055: "OP_vkDestroyImage",
+ 20056: "OP_vkGetImageSubresourceLayout",
+ 20057: "OP_vkCreateImageView",
+ 20058: "OP_vkDestroyImageView",
+ 20059: "OP_vkCreateShaderModule",
+ 20060: "OP_vkDestroyShaderModule",
+ 20061: "OP_vkCreatePipelineCache",
+ 20062: "OP_vkDestroyPipelineCache",
+ 20063: "OP_vkGetPipelineCacheData",
+ 20064: "OP_vkMergePipelineCaches",
+ 20065: "OP_vkCreateGraphicsPipelines",
+ 20066: "OP_vkCreateComputePipelines",
+ 20067: "OP_vkDestroyPipeline",
+ 20068: "OP_vkCreatePipelineLayout",
+ 20069: "OP_vkDestroyPipelineLayout",
+ 20070: "OP_vkCreateSampler",
+ 20071: "OP_vkDestroySampler",
+ 20072: "OP_vkCreateDescriptorSetLayout",
+ 20073: "OP_vkDestroyDescriptorSetLayout",
+ 20074: "OP_vkCreateDescriptorPool",
+ 20075: "OP_vkDestroyDescriptorPool",
+ 20076: "OP_vkResetDescriptorPool",
+ 20077: "OP_vkAllocateDescriptorSets",
+ 20078: "OP_vkFreeDescriptorSets",
+ 20079: "OP_vkUpdateDescriptorSets",
+ 20080: "OP_vkCreateFramebuffer",
+ 20081: "OP_vkDestroyFramebuffer",
+ 20082: "OP_vkCreateRenderPass",
+ 20083: "OP_vkDestroyRenderPass",
+ 20084: "OP_vkGetRenderAreaGranularity",
+ 20085: "OP_vkCreateCommandPool",
+ 20086: "OP_vkDestroyCommandPool",
+ 20087: "OP_vkResetCommandPool",
+ 20088: "OP_vkAllocateCommandBuffers",
+ 20089: "OP_vkFreeCommandBuffers",
+ 20090: "OP_vkBeginCommandBuffer",
+ 20091: "OP_vkEndCommandBuffer",
+ 20092: "OP_vkResetCommandBuffer",
+ 20093: "OP_vkCmdBindPipeline",
+ 20094: "OP_vkCmdSetViewport",
+ 20095: "OP_vkCmdSetScissor",
+ 20096: "OP_vkCmdSetLineWidth",
+ 20097: "OP_vkCmdSetDepthBias",
+ 20098: "OP_vkCmdSetBlendConstants",
+ 20099: "OP_vkCmdSetDepthBounds",
+ 20100: "OP_vkCmdSetStencilCompareMask",
+ 20101: "OP_vkCmdSetStencilWriteMask",
+ 20102: "OP_vkCmdSetStencilReference",
+ 20103: "OP_vkCmdBindDescriptorSets",
+ 20104: "OP_vkCmdBindIndexBuffer",
+ 20105: "OP_vkCmdBindVertexBuffers",
+ 20106: "OP_vkCmdDraw",
+ 20107: "OP_vkCmdDrawIndexed",
+ 20108: "OP_vkCmdDrawIndirect",
+ 20109: "OP_vkCmdDrawIndexedIndirect",
+ 20110: "OP_vkCmdDispatch",
+ 20111: "OP_vkCmdDispatchIndirect",
+ 20112: "OP_vkCmdCopyBuffer",
+ 20113: "OP_vkCmdCopyImage",
+ 20114: "OP_vkCmdBlitImage",
+ 20115: "OP_vkCmdCopyBufferToImage",
+ 20116: "OP_vkCmdCopyImageToBuffer",
+ 20117: "OP_vkCmdUpdateBuffer",
+ 20118: "OP_vkCmdFillBuffer",
+ 20119: "OP_vkCmdClearColorImage",
+ 20120: "OP_vkCmdClearDepthStencilImage",
+ 20121: "OP_vkCmdClearAttachments",
+ 20122: "OP_vkCmdResolveImage",
+ 20123: "OP_vkCmdSetEvent",
+ 20124: "OP_vkCmdResetEvent",
+ 20125: "OP_vkCmdWaitEvents",
+ 20126: "OP_vkCmdPipelineBarrier",
+ 20127: "OP_vkCmdBeginQuery",
+ 20128: "OP_vkCmdEndQuery",
+ 20129: "OP_vkCmdResetQueryPool",
+ 20130: "OP_vkCmdWriteTimestamp",
+ 20131: "OP_vkCmdCopyQueryPoolResults",
+ 20132: "OP_vkCmdPushConstants",
+ 20133: "OP_vkCmdBeginRenderPass",
+ 20134: "OP_vkCmdNextSubpass",
+ 20135: "OP_vkCmdEndRenderPass",
+ 20136: "OP_vkCmdExecuteCommands",
+ 20137: "OP_vkEnumerateInstanceVersion",
+ 20138: "OP_vkBindBufferMemory2",
+ 20139: "OP_vkBindImageMemory2",
+ 20140: "OP_vkGetDeviceGroupPeerMemoryFeatures",
+ 20141: "OP_vkCmdSetDeviceMask",
+ 20142: "OP_vkCmdDispatchBase",
+ 20143: "OP_vkEnumeratePhysicalDeviceGroups",
+ 20144: "OP_vkGetImageMemoryRequirements2",
+ 20145: "OP_vkGetBufferMemoryRequirements2",
+ 20146: "OP_vkGetImageSparseMemoryRequirements2",
+ 20147: "OP_vkGetPhysicalDeviceFeatures2",
+ 20148: "OP_vkGetPhysicalDeviceProperties2",
+ 20149: "OP_vkGetPhysicalDeviceFormatProperties2",
+ 20150: "OP_vkGetPhysicalDeviceImageFormatProperties2",
+ 20151: "OP_vkGetPhysicalDeviceQueueFamilyProperties2",
+ 20152: "OP_vkGetPhysicalDeviceMemoryProperties2",
+ 20153: "OP_vkGetPhysicalDeviceSparseImageFormatProperties2",
+ 20154: "OP_vkTrimCommandPool",
+ 20155: "OP_vkGetDeviceQueue2",
+ 20156: "OP_vkCreateSamplerYcbcrConversion",
+ 20157: "OP_vkDestroySamplerYcbcrConversion",
+ 20158: "OP_vkCreateDescriptorUpdateTemplate",
+ 20159: "OP_vkDestroyDescriptorUpdateTemplate",
+ 20160: "OP_vkUpdateDescriptorSetWithTemplate",
+ 20161: "OP_vkGetPhysicalDeviceExternalBufferProperties",
+ 20162: "OP_vkGetPhysicalDeviceExternalFenceProperties",
+ 20163: "OP_vkGetPhysicalDeviceExternalSemaphoreProperties",
+ 20164: "OP_vkGetDescriptorSetLayoutSupport",
+ 282774587: "OP_vkCmdDrawIndirectCount",
+ 245204359: "OP_vkCmdDrawIndexedIndirectCount",
+ 279590827: "OP_vkCreateRenderPass2",
+ 235222847: "OP_vkCmdBeginRenderPass2",
+ 244873750: "OP_vkCmdNextSubpass2",
+ 221297834: "OP_vkCmdEndRenderPass2",
+ 252097672: "OP_vkResetQueryPool",
+ 267066974: "OP_vkGetSemaphoreCounterValue",
+ 224777382: "OP_vkWaitSemaphores",
+ 271024127: "OP_vkSignalSemaphore",
+ 222632266: "OP_vkGetBufferDeviceAddress",
+ 230188231: "OP_vkGetBufferOpaqueCaptureAddress",
+ 260620079: "OP_vkGetDeviceMemoryOpaqueCaptureAddress",
+ 20165: "OP_vkDestroySurfaceKHR",
+ 20166: "OP_vkGetPhysicalDeviceSurfaceSupportKHR",
+ 20167: "OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
+ 20168: "OP_vkGetPhysicalDeviceSurfaceFormatsKHR",
+ 20169: "OP_vkGetPhysicalDeviceSurfacePresentModesKHR",
+ 20170: "OP_vkCreateSwapchainKHR",
+ 20171: "OP_vkDestroySwapchainKHR",
+ 20172: "OP_vkGetSwapchainImagesKHR",
+ 20173: "OP_vkAcquireNextImageKHR",
+ 20174: "OP_vkQueuePresentKHR",
+ 20175: "OP_vkGetDeviceGroupPresentCapabilitiesKHR",
+ 20176: "OP_vkGetDeviceGroupSurfacePresentModesKHR",
+ 20177: "OP_vkGetPhysicalDevicePresentRectanglesKHR",
+ 20178: "OP_vkAcquireNextImage2KHR",
+ 20179: "OP_vkGetPhysicalDeviceDisplayPropertiesKHR",
+ 20180: "OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR",
+ 20181: "OP_vkGetDisplayPlaneSupportedDisplaysKHR",
+ 20182: "OP_vkGetDisplayModePropertiesKHR",
+ 20183: "OP_vkCreateDisplayModeKHR",
+ 20184: "OP_vkGetDisplayPlaneCapabilitiesKHR",
+ 20185: "OP_vkCreateDisplayPlaneSurfaceKHR",
+ 20186: "OP_vkCreateSharedSwapchainsKHR",
+ 20187: "OP_vkCreateXlibSurfaceKHR",
+ 20188: "OP_vkGetPhysicalDeviceXlibPresentationSupportKHR",
+ 20189: "OP_vkCreateXcbSurfaceKHR",
+ 20190: "OP_vkGetPhysicalDeviceXcbPresentationSupportKHR",
+ 20191: "OP_vkCreateWaylandSurfaceKHR",
+ 20192: "OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR",
+ 20195: "OP_vkCreateAndroidSurfaceKHR",
+ 20196: "OP_vkCreateWin32SurfaceKHR",
+ 20197: "OP_vkGetPhysicalDeviceWin32PresentationSupportKHR",
+ 20198: "OP_vkGetPhysicalDeviceFeatures2KHR",
+ 20199: "OP_vkGetPhysicalDeviceProperties2KHR",
+ 20200: "OP_vkGetPhysicalDeviceFormatProperties2KHR",
+ 20201: "OP_vkGetPhysicalDeviceImageFormatProperties2KHR",
+ 20202: "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR",
+ 20203: "OP_vkGetPhysicalDeviceMemoryProperties2KHR",
+ 20204: "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
+ 20205: "OP_vkGetDeviceGroupPeerMemoryFeaturesKHR",
+ 20206: "OP_vkCmdSetDeviceMaskKHR",
+ 20207: "OP_vkCmdDispatchBaseKHR",
+ 20208: "OP_vkTrimCommandPoolKHR",
+ 20209: "OP_vkEnumeratePhysicalDeviceGroupsKHR",
+ 20210: "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR",
+ 20211: "OP_vkGetMemoryWin32HandleKHR",
+ 20212: "OP_vkGetMemoryWin32HandlePropertiesKHR",
+ 20213: "OP_vkGetMemoryFdKHR",
+ 20214: "OP_vkGetMemoryFdPropertiesKHR",
+ 20215: "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR",
+ 20216: "OP_vkImportSemaphoreWin32HandleKHR",
+ 20217: "OP_vkGetSemaphoreWin32HandleKHR",
+ 20218: "OP_vkImportSemaphoreFdKHR",
+ 20219: "OP_vkGetSemaphoreFdKHR",
+ 20220: "OP_vkCmdPushDescriptorSetKHR",
+ 20221: "OP_vkCmdPushDescriptorSetWithTemplateKHR",
+ 20222: "OP_vkCreateDescriptorUpdateTemplateKHR",
+ 20223: "OP_vkDestroyDescriptorUpdateTemplateKHR",
+ 20224: "OP_vkUpdateDescriptorSetWithTemplateKHR",
+ 20225: "OP_vkCreateRenderPass2KHR",
+ 20226: "OP_vkCmdBeginRenderPass2KHR",
+ 20227: "OP_vkCmdNextSubpass2KHR",
+ 20228: "OP_vkCmdEndRenderPass2KHR",
+ 20229: "OP_vkGetSwapchainStatusKHR",
+ 20230: "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR",
+ 20231: "OP_vkImportFenceWin32HandleKHR",
+ 20232: "OP_vkGetFenceWin32HandleKHR",
+ 20233: "OP_vkImportFenceFdKHR",
+ 20234: "OP_vkGetFenceFdKHR",
+ 299033148: "OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR",
+ 282029987: "OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR",
+ 238952296: "OP_vkAcquireProfilingLockKHR",
+ 223904011: "OP_vkReleaseProfilingLockKHR",
+ 20235: "OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR",
+ 20236: "OP_vkGetPhysicalDeviceSurfaceFormats2KHR",
+ 20237: "OP_vkGetPhysicalDeviceDisplayProperties2KHR",
+ 20238: "OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR",
+ 20239: "OP_vkGetDisplayModeProperties2KHR",
+ 20240: "OP_vkGetDisplayPlaneCapabilities2KHR",
+ 20241: "OP_vkGetImageMemoryRequirements2KHR",
+ 20242: "OP_vkGetBufferMemoryRequirements2KHR",
+ 20243: "OP_vkGetImageSparseMemoryRequirements2KHR",
+ 20244: "OP_vkCreateSamplerYcbcrConversionKHR",
+ 20245: "OP_vkDestroySamplerYcbcrConversionKHR",
+ 20246: "OP_vkBindBufferMemory2KHR",
+ 20247: "OP_vkBindImageMemory2KHR",
+ 20248: "OP_vkGetDescriptorSetLayoutSupportKHR",
+ 20249: "OP_vkCmdDrawIndirectCountKHR",
+ 20250: "OP_vkCmdDrawIndexedIndirectCountKHR",
+ 229059496: "OP_vkGetSemaphoreCounterValueKHR",
+ 263904357: "OP_vkWaitSemaphoresKHR",
+ 269919108: "OP_vkSignalSemaphoreKHR",
+ 272978593: "OP_vkGetPhysicalDeviceFragmentShadingRatesKHR",
+ 204060280: "OP_vkCmdSetFragmentShadingRateKHR",
+ 219261480: "OP_vkGetBufferDeviceAddressKHR",
+ 285631711: "OP_vkGetBufferOpaqueCaptureAddressKHR",
+ 294671624: "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR",
+ 274342644: "OP_vkCreateDeferredOperationKHR",
+ 215419514: "OP_vkDestroyDeferredOperationKHR",
+ 203387076: "OP_vkGetDeferredOperationMaxConcurrencyKHR",
+ 263822960: "OP_vkGetDeferredOperationResultKHR",
+ 218492930: "OP_vkDeferredOperationJoinKHR",
+ 269458798: "OP_vkGetPipelineExecutablePropertiesKHR",
+ 271191699: "OP_vkGetPipelineExecutableStatisticsKHR",
+ 274148497: "OP_vkGetPipelineExecutableInternalRepresentationsKHR",
+ 247893766: "OP_vkCmdCopyBuffer2KHR",
+ 227008250: "OP_vkCmdCopyImage2KHR",
+ 248841963: "OP_vkCmdCopyBufferToImage2KHR",
+ 252249060: "OP_vkCmdCopyImageToBuffer2KHR",
+ 259838288: "OP_vkCmdBlitImage2KHR",
+ 254857232: "OP_vkCmdResolveImage2KHR",
+ 20251: "OP_vkGetSwapchainGrallocUsageANDROID",
+ 20252: "OP_vkAcquireImageANDROID",
+ 20253: "OP_vkQueueSignalReleaseImageANDROID",
+ 20254: "OP_vkCreateDebugReportCallbackEXT",
+ 20255: "OP_vkDestroyDebugReportCallbackEXT",
+ 20256: "OP_vkDebugReportMessageEXT",
+ 20257: "OP_vkDebugMarkerSetObjectTagEXT",
+ 20258: "OP_vkDebugMarkerSetObjectNameEXT",
+ 20259: "OP_vkCmdDebugMarkerBeginEXT",
+ 20260: "OP_vkCmdDebugMarkerEndEXT",
+ 20261: "OP_vkCmdDebugMarkerInsertEXT",
+ 267779978: "OP_vkCmdBindTransformFeedbackBuffersEXT",
+ 294396901: "OP_vkCmdBeginTransformFeedbackEXT",
+ 272333731: "OP_vkCmdEndTransformFeedbackEXT",
+ 275810601: "OP_vkCmdBeginQueryIndexedEXT",
+ 279821337: "OP_vkCmdEndQueryIndexedEXT",
+ 285235943: "OP_vkCmdDrawIndirectByteCountEXT",
+ 204379647: "OP_vkGetImageViewHandleNVX",
+ 210668576: "OP_vkGetImageViewAddressNVX",
+ 20262: "OP_vkCmdDrawIndirectCountAMD",
+ 20263: "OP_vkCmdDrawIndexedIndirectCountAMD",
+ 20264: "OP_vkGetShaderInfoAMD",
+ 241902685: "OP_vkCreateStreamDescriptorSurfaceGGP",
+ 20265: "OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV",
+ 20266: "OP_vkGetMemoryWin32HandleNV",
+ 20267: "OP_vkCreateViSurfaceNN",
+ 20268: "OP_vkCmdBeginConditionalRenderingEXT",
+ 20269: "OP_vkCmdEndConditionalRenderingEXT",
+ 20279: "OP_vkCmdSetViewportWScalingNV",
+ 20280: "OP_vkReleaseDisplayEXT",
+ 20281: "OP_vkAcquireXlibDisplayEXT",
+ 20282: "OP_vkGetRandROutputDisplayEXT",
+ 20283: "OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT",
+ 20284: "OP_vkDisplayPowerControlEXT",
+ 20285: "OP_vkRegisterDeviceEventEXT",
+ 20286: "OP_vkRegisterDisplayEventEXT",
+ 20287: "OP_vkGetSwapchainCounterEXT",
+ 20288: "OP_vkGetRefreshCycleDurationGOOGLE",
+ 20289: "OP_vkGetPastPresentationTimingGOOGLE",
+ 20290: "OP_vkCmdSetDiscardRectangleEXT",
+ 20291: "OP_vkSetHdrMetadataEXT",
+ 20292: "OP_vkCreateIOSSurfaceMVK",
+ 20293: "OP_vkCreateMacOSSurfaceMVK",
+ 20334: "OP_vkGetMTLDeviceMVK",
+ 20335: "OP_vkSetMTLTextureMVK",
+ 20336: "OP_vkGetMTLTextureMVK",
+ 20337: "OP_vkGetMTLBufferMVK",
+ 20338: "OP_vkUseIOSurfaceMVK",
+ 20339: "OP_vkGetIOSurfaceMVK",
+ 20294: "OP_vkSetDebugUtilsObjectNameEXT",
+ 20295: "OP_vkSetDebugUtilsObjectTagEXT",
+ 20296: "OP_vkQueueBeginDebugUtilsLabelEXT",
+ 20297: "OP_vkQueueEndDebugUtilsLabelEXT",
+ 20298: "OP_vkQueueInsertDebugUtilsLabelEXT",
+ 20299: "OP_vkCmdBeginDebugUtilsLabelEXT",
+ 20300: "OP_vkCmdEndDebugUtilsLabelEXT",
+ 20301: "OP_vkCmdInsertDebugUtilsLabelEXT",
+ 20302: "OP_vkCreateDebugUtilsMessengerEXT",
+ 20303: "OP_vkDestroyDebugUtilsMessengerEXT",
+ 20304: "OP_vkSubmitDebugUtilsMessageEXT",
+ 20305: "OP_vkGetAndroidHardwareBufferPropertiesANDROID",
+ 20306: "OP_vkGetMemoryAndroidHardwareBufferANDROID",
+ 20307: "OP_vkCmdSetSampleLocationsEXT",
+ 20308: "OP_vkGetPhysicalDeviceMultisamplePropertiesEXT",
+ 251301237: "OP_vkGetImageDrmFormatModifierPropertiesEXT",
+ 20309: "OP_vkCreateValidationCacheEXT",
+ 20310: "OP_vkDestroyValidationCacheEXT",
+ 20311: "OP_vkMergeValidationCachesEXT",
+ 20312: "OP_vkGetValidationCacheDataEXT",
+ 238618340: "OP_vkCmdBindShadingRateImageNV",
+ 215295078: "OP_vkCmdSetViewportShadingRatePaletteNV",
+ 236858637: "OP_vkCmdSetCoarseSampleOrderNV",
+ 259713020: "OP_vkCreateAccelerationStructureNV",
+ 252775746: "OP_vkDestroyAccelerationStructureNV",
+ 220234370: "OP_vkGetAccelerationStructureMemoryRequirementsNV",
+ 202856743: "OP_vkBindAccelerationStructureMemoryNV",
+ 269050897: "OP_vkCmdBuildAccelerationStructureNV",
+ 211075498: "OP_vkCmdCopyAccelerationStructureNV",
+ 210219912: "OP_vkCmdTraceRaysNV",
+ 203653638: "OP_vkCreateRayTracingPipelinesNV",
+ 271962641: "OP_vkGetRayTracingShaderGroupHandlesKHR",
+ 230045846: "OP_vkGetRayTracingShaderGroupHandlesNV",
+ 269898134: "OP_vkGetAccelerationStructureHandleNV",
+ 207954431: "OP_vkCmdWriteAccelerationStructuresPropertiesNV",
+ 278731610: "OP_vkCompileDeferredNV",
+ 20313: "OP_vkGetMemoryHostPointerPropertiesEXT",
+ 20314: "OP_vkCmdWriteBufferMarkerAMD",
+ 295643221: "OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT",
+ 203583186: "OP_vkGetCalibratedTimestampsEXT",
+ 207334931: "OP_vkCmdDrawMeshTasksNV",
+ 274079208: "OP_vkCmdDrawMeshTasksIndirectNV",
+ 223801967: "OP_vkCmdDrawMeshTasksIndirectCountNV",
+ 225408194: "OP_vkCmdSetExclusiveScissorNV",
+ 20315: "OP_vkCmdSetCheckpointNV",
+ 20316: "OP_vkGetQueueCheckpointDataNV",
+ 203336121: "OP_vkInitializePerformanceApiINTEL",
+ 296137321: "OP_vkUninitializePerformanceApiINTEL",
+ 270016385: "OP_vkCmdSetPerformanceMarkerINTEL",
+ 261519634: "OP_vkCmdSetPerformanceStreamMarkerINTEL",
+ 251310287: "OP_vkCmdSetPerformanceOverrideINTEL",
+ 245737492: "OP_vkAcquirePerformanceConfigurationINTEL",
+ 252877217: "OP_vkReleasePerformanceConfigurationINTEL",
+ 294947726: "OP_vkQueueSetPerformanceConfigurationINTEL",
+ 213620482: "OP_vkGetPerformanceParameterINTEL",
+ 267533472: "OP_vkSetLocalDimmingAMD",
+ 261626137: "OP_vkCreateImagePipeSurfaceFUCHSIA",
+ 254915953: "OP_vkCreateMetalSurfaceEXT",
+ 224361693: "OP_vkGetBufferDeviceAddressEXT",
+ 282247593: "OP_vkGetPhysicalDeviceToolPropertiesEXT",
+ 287711429: "OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV",
+ 292032159: "OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV",
+ 268126279: "OP_vkGetPhysicalDeviceSurfacePresentModes2EXT",
+ 200946668: "OP_vkAcquireFullScreenExclusiveModeEXT",
+ 257629142: "OP_vkReleaseFullScreenExclusiveModeEXT",
+ 206369543: "OP_vkGetDeviceGroupSurfacePresentModes2EXT",
+ 298411290: "OP_vkCreateHeadlessSurfaceEXT",
+ 263855692: "OP_vkCmdSetLineStippleEXT",
+ 242995959: "OP_vkResetQueryPoolEXT",
+ 266285895: "OP_vkCmdSetCullModeEXT",
+ 212644406: "OP_vkCmdSetFrontFaceEXT",
+ 260783979: "OP_vkCmdSetPrimitiveTopologyEXT",
+ 257105245: "OP_vkCmdSetViewportWithCountEXT",
+ 204588120: "OP_vkCmdSetScissorWithCountEXT",
+ 243419921: "OP_vkCmdBindVertexBuffers2EXT",
+ 233771166: "OP_vkCmdSetDepthTestEnableEXT",
+ 218663304: "OP_vkCmdSetDepthWriteEnableEXT",
+ 247761589: "OP_vkCmdSetDepthCompareOpEXT",
+ 223213519: "OP_vkCmdSetDepthBoundsTestEnableEXT",
+ 286438749: "OP_vkCmdSetStencilTestEnableEXT",
+ 277159578: "OP_vkCmdSetStencilOpEXT",
+ 249047049: "OP_vkGetGeneratedCommandsMemoryRequirementsNV",
+ 297624330: "OP_vkCmdPreprocessGeneratedCommandsNV",
+ 234711184: "OP_vkCmdExecuteGeneratedCommandsNV",
+ 270362239: "OP_vkCmdBindPipelineShaderGroupNV",
+ 285310710: "OP_vkCreateIndirectCommandsLayoutNV",
+ 292584135: "OP_vkDestroyIndirectCommandsLayoutNV",
+ 236374049: "OP_vkCreatePrivateDataSlotEXT",
+ 208891309: "OP_vkDestroyPrivateDataSlotEXT",
+ 225259406: "OP_vkSetPrivateDataEXT",
+ 291399427: "OP_vkGetPrivateDataEXT",
+ 264649847: "OP_vkCmdSetFragmentShadingRateEnumNV",
+ 220792403: "OP_vkCreateDirectFBSurfaceEXT",
+ 285441990: "OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT",
+ 20318: "OP_vkRegisterImageColorBufferGOOGLE",
+ 20319: "OP_vkRegisterBufferColorBufferGOOGLE",
+ 20317: "OP_vkMapMemoryIntoAddressSpaceGOOGLE",
+ 20320: "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE",
+ 20321: "OP_vkBeginCommandBufferAsyncGOOGLE",
+ 20322: "OP_vkEndCommandBufferAsyncGOOGLE",
+ 20323: "OP_vkResetCommandBufferAsyncGOOGLE",
+ 20324: "OP_vkCommandBufferHostSyncGOOGLE",
+ 20325: "OP_vkCreateImageWithRequirementsGOOGLE",
+ 20326: "OP_vkCreateBufferWithRequirementsGOOGLE",
+ 20327: "OP_vkGetMemoryHostAddressInfoGOOGLE",
+ 20328: "OP_vkFreeMemorySyncGOOGLE",
+ 20329: "OP_vkQueueHostSyncGOOGLE",
+ 20330: "OP_vkQueueSubmitAsyncGOOGLE",
+ 20331: "OP_vkQueueWaitIdleAsyncGOOGLE",
+ 20332: "OP_vkQueueBindSparseAsyncGOOGLE",
+ 20333: "OP_vkGetLinearImageLayoutGOOGLE",
+ 20340: "OP_vkQueueFlushCommandsGOOGLE",
+ 267932433: "OP_vkQueueCommitDescriptorSetUpdatesGOOGLE",
+ 213659202: "OP_vkCollectDescriptorPoolIdsGOOGLE",
+ 243985229: "OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE",
+ 259403971: "OP_vkCreateAccelerationStructureKHR",
+ 223971120: "OP_vkDestroyAccelerationStructureKHR",
+ 272943905: "OP_vkCmdBuildAccelerationStructuresKHR",
+ 258066143: "OP_vkCmdBuildAccelerationStructuresIndirectKHR",
+ 241919567: "OP_vkBuildAccelerationStructuresKHR",
+ 241495016: "OP_vkCopyAccelerationStructureKHR",
+ 256139578: "OP_vkCopyAccelerationStructureToMemoryKHR",
+ 261558680: "OP_vkCopyMemoryToAccelerationStructureKHR",
+ 289745796: "OP_vkWriteAccelerationStructuresPropertiesKHR",
+ 279460332: "OP_vkCmdCopyAccelerationStructureKHR",
+ 223539733: "OP_vkCmdCopyAccelerationStructureToMemoryKHR",
+ 203733963: "OP_vkCmdCopyMemoryToAccelerationStructureKHR",
+ 223466148: "OP_vkGetAccelerationStructureDeviceAddressKHR",
+ 271696183: "OP_vkCmdWriteAccelerationStructuresPropertiesKHR",
+ 266386590: "OP_vkGetDeviceAccelerationStructureCompatibilityKHR",
+ 219720024: "OP_vkGetAccelerationStructureBuildSizesKHR",
+ 213680716: "OP_vkCmdTraceRaysKHR",
+ 247628685: "OP_vkCreateRayTracingPipelinesKHR",
+ 221334934: "OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR",
+ 211788517: "OP_vkCmdTraceRaysIndirectKHR",
+ 205271933: "OP_vkGetRayTracingShaderGroupStackSizeKHR",
+ 260219604: "OP_vkCmdSetRayTracingPipelineStackSizeKHR",
+
+ ###############################################################################################
+ # Render Control opcodes
+ # http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/renderControl_dec/renderControl_opcodes.h
+ ###############################################################################################
+ 10000: "OP_rcGetRendererVersion",
+ 10001: "OP_rcGetEGLVersion",
+ 10002: "OP_rcQueryEGLString",
+ 10003: "OP_rcGetGLString",
+ 10004: "OP_rcGetNumConfigs",
+ 10005: "OP_rcGetConfigs",
+ 10006: "OP_rcChooseConfig",
+ 10007: "OP_rcGetFBParam",
+ 10008: "OP_rcCreateContext",
+ 10009: "OP_rcDestroyContext",
+ 10010: "OP_rcCreateWindowSurface",
+ 10011: "OP_rcDestroyWindowSurface",
+ 10012: "OP_rcCreateColorBuffer",
+ 10013: "OP_rcOpenColorBuffer",
+ 10014: "OP_rcCloseColorBuffer",
+ 10015: "OP_rcSetWindowColorBuffer",
+ 10016: "OP_rcFlushWindowColorBuffer",
+ 10017: "OP_rcMakeCurrent",
+ 10018: "OP_rcFBPost",
+ 10019: "OP_rcFBSetSwapInterval",
+ 10020: "OP_rcBindTexture",
+ 10021: "OP_rcBindRenderbuffer",
+ 10022: "OP_rcColorBufferCacheFlush",
+ 10023: "OP_rcReadColorBuffer",
+ 10024: "OP_rcUpdateColorBuffer",
+ 10025: "OP_rcOpenColorBuffer2",
+ 10026: "OP_rcCreateClientImage",
+ 10027: "OP_rcDestroyClientImage",
+ 10028: "OP_rcSelectChecksumHelper",
+ 10029: "OP_rcCreateSyncKHR",
+ 10030: "OP_rcClientWaitSyncKHR",
+ 10031: "OP_rcFlushWindowColorBufferAsync",
+ 10032: "OP_rcDestroySyncKHR",
+ 10033: "OP_rcSetPuid",
+ 10034: "OP_rcUpdateColorBufferDMA",
+ 10035: "OP_rcCreateColorBufferDMA",
+ 10036: "OP_rcWaitSyncKHR",
+ 10037: "OP_rcCompose",
+ 10038: "OP_rcCreateDisplay",
+ 10039: "OP_rcDestroyDisplay",
+ 10040: "OP_rcSetDisplayColorBuffer",
+ 10041: "OP_rcGetDisplayColorBuffer",
+ 10042: "OP_rcGetColorBufferDisplay",
+ 10043: "OP_rcGetDisplayPose",
+ 10044: "OP_rcSetDisplayPose",
+ 10045: "OP_rcSetColorBufferVulkanMode",
+ 10046: "OP_rcReadColorBufferYUV",
+ 10047: "OP_rcIsSyncSignaled",
+ 10048: "OP_rcCreateColorBufferWithHandle",
+ 10049: "OP_rcCreateBuffer",
+ 10050: "OP_rcCloseBuffer",
+ 10051: "OP_rcSetColorBufferVulkanMode2",
+ 10052: "OP_rcMapGpaToBufferHandle",
+ 10053: "OP_rcCreateBuffer2",
+ 10054: "OP_rcMapGpaToBufferHandle2",
+ 10055: "OP_rcFlushWindowColorBufferAsyncWithFrameNumber",
+ 10056: "OP_rcSetTracingForPuid",
+ 10057: "OP_rcMakeCurrentAsync",
+ 10058: "OP_rcComposeAsync",
+ 10059: "OP_rcDestroySyncKHRAsync",
+ 10060: "OP_rcComposeWithoutPost",
+ 10061: "OP_rcComposeAsyncWithoutPost",
+ 10062: "OP_rcCreateDisplayById",
+ 10063: "OP_rcSetDisplayPoseDpi",
+ 10064: "OP_rcReadColorBufferDMA",
+
+ ###############################################################################################
+ # GLES1 opcodes
+ # http://source/android/device/generic/vulkan-cereal/stream-servers/gles1_dec/gles1_opcodes.h
+ ###############################################################################################
+ 1024: "OP_glAlphaFunc",
+ 1025: "OP_glClearColor",
+ 1026: "OP_glClearDepthf",
+ 1027: "OP_glClipPlanef",
+ 1028: "OP_glColor4f",
+ 1029: "OP_glDepthRangef",
+ 1030: "OP_glFogf",
+ 1031: "OP_glFogfv",
+ 1032: "OP_glFrustumf",
+ 1033: "OP_glGetClipPlanef",
+ 1034: "OP_glGetFloatv",
+ 1035: "OP_glGetLightfv",
+ 1036: "OP_glGetMaterialfv",
+ 1037: "OP_glGetTexEnvfv",
+ 1038: "OP_glGetTexParameterfv",
+ 1039: "OP_glLightModelf",
+ 1040: "OP_glLightModelfv",
+ 1041: "OP_glLightf",
+ 1042: "OP_glLightfv",
+ 1043: "OP_glLineWidth",
+ 1044: "OP_glLoadMatrixf",
+ 1045: "OP_glMaterialf",
+ 1046: "OP_glMaterialfv",
+ 1047: "OP_glMultMatrixf",
+ 1048: "OP_glMultiTexCoord4f",
+ 1049: "OP_glNormal3f",
+ 1050: "OP_glOrthof",
+ 1051: "OP_glPointParameterf",
+ 1052: "OP_glPointParameterfv",
+ 1053: "OP_glPointSize",
+ 1054: "OP_glPolygonOffset",
+ 1055: "OP_glRotatef",
+ 1056: "OP_glScalef",
+ 1057: "OP_glTexEnvf",
+ 1058: "OP_glTexEnvfv",
+ 1059: "OP_glTexParameterf",
+ 1060: "OP_glTexParameterfv",
+ 1061: "OP_glTranslatef",
+ 1062: "OP_glActiveTexture",
+ 1063: "OP_glAlphaFuncx",
+ 1064: "OP_glBindBuffer",
+ 1065: "OP_glBindTexture",
+ 1066: "OP_glBlendFunc",
+ 1067: "OP_glBufferData",
+ 1068: "OP_glBufferSubData",
+ 1069: "OP_glClear",
+ 1070: "OP_glClearColorx",
+ 1071: "OP_glClearDepthx",
+ 1072: "OP_glClearStencil",
+ 1073: "OP_glClientActiveTexture",
+ 1074: "OP_glColor4ub",
+ 1075: "OP_glColor4x",
+ 1076: "OP_glColorMask",
+ 1077: "OP_glColorPointer",
+ 1078: "OP_glCompressedTexImage2D",
+ 1079: "OP_glCompressedTexSubImage2D",
+ 1080: "OP_glCopyTexImage2D",
+ 1081: "OP_glCopyTexSubImage2D",
+ 1082: "OP_glCullFace",
+ 1083: "OP_glDeleteBuffers",
+ 1084: "OP_glDeleteTextures",
+ 1085: "OP_glDepthFunc",
+ 1086: "OP_glDepthMask",
+ 1087: "OP_glDepthRangex",
+ 1088: "OP_glDisable",
+ 1089: "OP_glDisableClientState",
+ 1090: "OP_glDrawArrays",
+ 1091: "OP_glDrawElements",
+ 1092: "OP_glEnable",
+ 1093: "OP_glEnableClientState",
+ 1094: "OP_glFinish",
+ 1095: "OP_glFlush",
+ 1096: "OP_glFogx",
+ 1097: "OP_glFogxv",
+ 1098: "OP_glFrontFace",
+ 1099: "OP_glFrustumx",
+ 1100: "OP_glGetBooleanv",
+ 1101: "OP_glGetBufferParameteriv",
+ 1102: "OP_glClipPlanex",
+ 1103: "OP_glGenBuffers",
+ 1104: "OP_glGenTextures",
+ 1105: "OP_glGetError",
+ 1106: "OP_glGetFixedv",
+ 1107: "OP_glGetIntegerv",
+ 1108: "OP_glGetLightxv",
+ 1109: "OP_glGetMaterialxv",
+ 1110: "OP_glGetPointerv",
+ 1111: "OP_glGetString",
+ 1112: "OP_glGetTexEnviv",
+ 1113: "OP_glGetTexEnvxv",
+ 1114: "OP_glGetTexParameteriv",
+ 1115: "OP_glGetTexParameterxv",
+ 1116: "OP_glHint",
+ 1117: "OP_glIsBuffer",
+ 1118: "OP_glIsEnabled",
+ 1119: "OP_glIsTexture",
+ 1120: "OP_glLightModelx",
+ 1121: "OP_glLightModelxv",
+ 1122: "OP_glLightx",
+ 1123: "OP_glLightxv",
+ 1124: "OP_glLineWidthx",
+ 1125: "OP_glLoadIdentity",
+ 1126: "OP_glLoadMatrixx",
+ 1127: "OP_glLogicOp",
+ 1128: "OP_glMaterialx",
+ 1129: "OP_glMaterialxv",
+ 1130: "OP_glMatrixMode",
+ 1131: "OP_glMultMatrixx",
+ 1132: "OP_glMultiTexCoord4x",
+ 1133: "OP_glNormal3x",
+ 1134: "OP_glNormalPointer",
+ 1135: "OP_glOrthox",
+ 1136: "OP_glPixelStorei",
+ 1137: "OP_glPointParameterx",
+ 1138: "OP_glPointParameterxv",
+ 1139: "OP_glPointSizex",
+ 1140: "OP_glPolygonOffsetx",
+ 1141: "OP_glPopMatrix",
+ 1142: "OP_glPushMatrix",
+ 1143: "OP_glReadPixels",
+ 1144: "OP_glRotatex",
+ 1145: "OP_glSampleCoverage",
+ 1146: "OP_glSampleCoveragex",
+ 1147: "OP_glScalex",
+ 1148: "OP_glScissor",
+ 1149: "OP_glShadeModel",
+ 1150: "OP_glStencilFunc",
+ 1151: "OP_glStencilMask",
+ 1152: "OP_glStencilOp",
+ 1153: "OP_glTexCoordPointer",
+ 1154: "OP_glTexEnvi",
+ 1155: "OP_glTexEnvx",
+ 1156: "OP_glTexEnviv",
+ 1157: "OP_glTexEnvxv",
+ 1158: "OP_glTexImage2D",
+ 1159: "OP_glTexParameteri",
+ 1160: "OP_glTexParameterx",
+ 1161: "OP_glTexParameteriv",
+ 1162: "OP_glTexParameterxv",
+ 1163: "OP_glTexSubImage2D",
+ 1164: "OP_glTranslatex",
+ 1165: "OP_glVertexPointer",
+ 1166: "OP_glViewport",
+ 1167: "OP_glPointSizePointerOES",
+ 1168: "OP_glVertexPointerOffset",
+ 1169: "OP_glColorPointerOffset",
+ 1170: "OP_glNormalPointerOffset",
+ 1171: "OP_glPointSizePointerOffset",
+ 1172: "OP_glTexCoordPointerOffset",
+ 1173: "OP_glWeightPointerOffset",
+ 1174: "OP_glMatrixIndexPointerOffset",
+ 1175: "OP_glVertexPointerData",
+ 1176: "OP_glColorPointerData",
+ 1177: "OP_glNormalPointerData",
+ 1178: "OP_glTexCoordPointerData",
+ 1179: "OP_glPointSizePointerData",
+ 1180: "OP_glWeightPointerData",
+ 1181: "OP_glMatrixIndexPointerData",
+ 1182: "OP_glDrawElementsOffset",
+ 1183: "OP_glDrawElementsData",
+ 1184: "OP_glGetCompressedTextureFormats",
+ 1185: "OP_glFinishRoundTrip",
+ 1186: "OP_glBlendEquationSeparateOES",
+ 1187: "OP_glBlendFuncSeparateOES",
+ 1188: "OP_glBlendEquationOES",
+ 1189: "OP_glDrawTexsOES",
+ 1190: "OP_glDrawTexiOES",
+ 1191: "OP_glDrawTexxOES",
+ 1192: "OP_glDrawTexsvOES",
+ 1193: "OP_glDrawTexivOES",
+ 1194: "OP_glDrawTexxvOES",
+ 1195: "OP_glDrawTexfOES",
+ 1196: "OP_glDrawTexfvOES",
+ 1197: "OP_glEGLImageTargetTexture2DOES",
+ 1198: "OP_glEGLImageTargetRenderbufferStorageOES",
+ 1199: "OP_glAlphaFuncxOES",
+ 1200: "OP_glClearColorxOES",
+ 1201: "OP_glClearDepthxOES",
+ 1202: "OP_glClipPlanexOES",
+ 1203: "OP_glClipPlanexIMG",
+ 1204: "OP_glColor4xOES",
+ 1205: "OP_glDepthRangexOES",
+ 1206: "OP_glFogxOES",
+ 1207: "OP_glFogxvOES",
+ 1208: "OP_glFrustumxOES",
+ 1209: "OP_glGetClipPlanexOES",
+ 1210: "OP_glGetClipPlanex",
+ 1211: "OP_glGetFixedvOES",
+ 1212: "OP_glGetLightxvOES",
+ 1213: "OP_glGetMaterialxvOES",
+ 1214: "OP_glGetTexEnvxvOES",
+ 1215: "OP_glGetTexParameterxvOES",
+ 1216: "OP_glLightModelxOES",
+ 1217: "OP_glLightModelxvOES",
+ 1218: "OP_glLightxOES",
+ 1219: "OP_glLightxvOES",
+ 1220: "OP_glLineWidthxOES",
+ 1221: "OP_glLoadMatrixxOES",
+ 1222: "OP_glMaterialxOES",
+ 1223: "OP_glMaterialxvOES",
+ 1224: "OP_glMultMatrixxOES",
+ 1225: "OP_glMultiTexCoord4xOES",
+ 1226: "OP_glNormal3xOES",
+ 1227: "OP_glOrthoxOES",
+ 1228: "OP_glPointParameterxOES",
+ 1229: "OP_glPointParameterxvOES",
+ 1230: "OP_glPointSizexOES",
+ 1231: "OP_glPolygonOffsetxOES",
+ 1232: "OP_glRotatexOES",
+ 1233: "OP_glSampleCoveragexOES",
+ 1234: "OP_glScalexOES",
+ 1235: "OP_glTexEnvxOES",
+ 1236: "OP_glTexEnvxvOES",
+ 1237: "OP_glTexParameterxOES",
+ 1238: "OP_glTexParameterxvOES",
+ 1239: "OP_glTranslatexOES",
+ 1240: "OP_glIsRenderbufferOES",
+ 1241: "OP_glBindRenderbufferOES",
+ 1242: "OP_glDeleteRenderbuffersOES",
+ 1243: "OP_glGenRenderbuffersOES",
+ 1244: "OP_glRenderbufferStorageOES",
+ 1245: "OP_glGetRenderbufferParameterivOES",
+ 1246: "OP_glIsFramebufferOES",
+ 1247: "OP_glBindFramebufferOES",
+ 1248: "OP_glDeleteFramebuffersOES",
+ 1249: "OP_glGenFramebuffersOES",
+ 1250: "OP_glCheckFramebufferStatusOES",
+ 1251: "OP_glFramebufferRenderbufferOES",
+ 1252: "OP_glFramebufferTexture2DOES",
+ 1253: "OP_glGetFramebufferAttachmentParameterivOES",
+ 1254: "OP_glGenerateMipmapOES",
+ 1255: "OP_glMapBufferOES",
+ 1256: "OP_glUnmapBufferOES",
+ 1257: "OP_glGetBufferPointervOES",
+ 1258: "OP_glCurrentPaletteMatrixOES",
+ 1259: "OP_glLoadPaletteFromModelViewMatrixOES",
+ 1260: "OP_glMatrixIndexPointerOES",
+ 1261: "OP_glWeightPointerOES",
+ 1262: "OP_glQueryMatrixxOES",
+ 1263: "OP_glDepthRangefOES",
+ 1264: "OP_glFrustumfOES",
+ 1265: "OP_glOrthofOES",
+ 1266: "OP_glClipPlanefOES",
+ 1267: "OP_glClipPlanefIMG",
+ 1268: "OP_glGetClipPlanefOES",
+ 1269: "OP_glClearDepthfOES",
+ 1270: "OP_glTexGenfOES",
+ 1271: "OP_glTexGenfvOES",
+ 1272: "OP_glTexGeniOES",
+ 1273: "OP_glTexGenivOES",
+ 1274: "OP_glTexGenxOES",
+ 1275: "OP_glTexGenxvOES",
+ 1276: "OP_glGetTexGenfvOES",
+ 1277: "OP_glGetTexGenivOES",
+ 1278: "OP_glGetTexGenxvOES",
+ 1279: "OP_glBindVertexArrayOES",
+ 1280: "OP_glDeleteVertexArraysOES",
+ 1281: "OP_glGenVertexArraysOES",
+ 1282: "OP_glIsVertexArrayOES",
+ 1283: "OP_glDiscardFramebufferEXT",
+ 1284: "OP_glMultiDrawArraysEXT",
+ 1285: "OP_glMultiDrawElementsEXT",
+ 1286: "OP_glMultiDrawArraysSUN",
+ 1287: "OP_glMultiDrawElementsSUN",
+ 1288: "OP_glRenderbufferStorageMultisampleIMG",
+ 1289: "OP_glFramebufferTexture2DMultisampleIMG",
+ 1290: "OP_glDeleteFencesNV",
+ 1291: "OP_glGenFencesNV",
+ 1292: "OP_glIsFenceNV",
+ 1293: "OP_glTestFenceNV",
+ 1294: "OP_glGetFenceivNV",
+ 1295: "OP_glFinishFenceNV",
+ 1296: "OP_glSetFenceNV",
+ 1297: "OP_glGetDriverControlsQCOM",
+ 1298: "OP_glGetDriverControlStringQCOM",
+ 1299: "OP_glEnableDriverControlQCOM",
+ 1300: "OP_glDisableDriverControlQCOM",
+ 1301: "OP_glExtGetTexturesQCOM",
+ 1302: "OP_glExtGetBuffersQCOM",
+ 1303: "OP_glExtGetRenderbuffersQCOM",
+ 1304: "OP_glExtGetFramebuffersQCOM",
+ 1305: "OP_glExtGetTexLevelParameterivQCOM",
+ 1306: "OP_glExtTexObjectStateOverrideiQCOM",
+ 1307: "OP_glExtGetTexSubImageQCOM",
+ 1308: "OP_glExtGetBufferPointervQCOM",
+ 1309: "OP_glExtGetShadersQCOM",
+ 1310: "OP_glExtGetProgramsQCOM",
+ 1311: "OP_glExtIsProgramBinaryQCOM",
+ 1312: "OP_glExtGetProgramBinarySourceQCOM",
+ 1313: "OP_glStartTilingQCOM",
+ 1314: "OP_glEndTilingQCOM",
+ 1315: "OP_glGetGraphicsResetStatusEXT",
+ 1316: "OP_glReadnPixelsEXT",
+
+ ###############################################################################################
+ # GLES2 opcodes
+ # http://source/android/device/generic/vulkan-cereal/stream-servers/gles2_dec/gles2_opcodes.h
+ ###############################################################################################
+ 2048: "OP_glActiveTexture",
+ 2049: "OP_glAttachShader",
+ 2050: "OP_glBindAttribLocation",
+ 2051: "OP_glBindBuffer",
+ 2052: "OP_glBindFramebuffer",
+ 2053: "OP_glBindRenderbuffer",
+ 2054: "OP_glBindTexture",
+ 2055: "OP_glBlendColor",
+ 2056: "OP_glBlendEquation",
+ 2057: "OP_glBlendEquationSeparate",
+ 2058: "OP_glBlendFunc",
+ 2059: "OP_glBlendFuncSeparate",
+ 2060: "OP_glBufferData",
+ 2061: "OP_glBufferSubData",
+ 2062: "OP_glCheckFramebufferStatus",
+ 2063: "OP_glClear",
+ 2064: "OP_glClearColor",
+ 2065: "OP_glClearDepthf",
+ 2066: "OP_glClearStencil",
+ 2067: "OP_glColorMask",
+ 2068: "OP_glCompileShader",
+ 2069: "OP_glCompressedTexImage2D",
+ 2070: "OP_glCompressedTexSubImage2D",
+ 2071: "OP_glCopyTexImage2D",
+ 2072: "OP_glCopyTexSubImage2D",
+ 2073: "OP_glCreateProgram",
+ 2074: "OP_glCreateShader",
+ 2075: "OP_glCullFace",
+ 2076: "OP_glDeleteBuffers",
+ 2077: "OP_glDeleteFramebuffers",
+ 2078: "OP_glDeleteProgram",
+ 2079: "OP_glDeleteRenderbuffers",
+ 2080: "OP_glDeleteShader",
+ 2081: "OP_glDeleteTextures",
+ 2082: "OP_glDepthFunc",
+ 2083: "OP_glDepthMask",
+ 2084: "OP_glDepthRangef",
+ 2085: "OP_glDetachShader",
+ 2086: "OP_glDisable",
+ 2087: "OP_glDisableVertexAttribArray",
+ 2088: "OP_glDrawArrays",
+ 2089: "OP_glDrawElements",
+ 2090: "OP_glEnable",
+ 2091: "OP_glEnableVertexAttribArray",
+ 2092: "OP_glFinish",
+ 2093: "OP_glFlush",
+ 2094: "OP_glFramebufferRenderbuffer",
+ 2095: "OP_glFramebufferTexture2D",
+ 2096: "OP_glFrontFace",
+ 2097: "OP_glGenBuffers",
+ 2098: "OP_glGenerateMipmap",
+ 2099: "OP_glGenFramebuffers",
+ 2100: "OP_glGenRenderbuffers",
+ 2101: "OP_glGenTextures",
+ 2102: "OP_glGetActiveAttrib",
+ 2103: "OP_glGetActiveUniform",
+ 2104: "OP_glGetAttachedShaders",
+ 2105: "OP_glGetAttribLocation",
+ 2106: "OP_glGetBooleanv",
+ 2107: "OP_glGetBufferParameteriv",
+ 2108: "OP_glGetError",
+ 2109: "OP_glGetFloatv",
+ 2110: "OP_glGetFramebufferAttachmentParameteriv",
+ 2111: "OP_glGetIntegerv",
+ 2112: "OP_glGetProgramiv",
+ 2113: "OP_glGetProgramInfoLog",
+ 2114: "OP_glGetRenderbufferParameteriv",
+ 2115: "OP_glGetShaderiv",
+ 2116: "OP_glGetShaderInfoLog",
+ 2117: "OP_glGetShaderPrecisionFormat",
+ 2118: "OP_glGetShaderSource",
+ 2119: "OP_glGetString",
+ 2120: "OP_glGetTexParameterfv",
+ 2121: "OP_glGetTexParameteriv",
+ 2122: "OP_glGetUniformfv",
+ 2123: "OP_glGetUniformiv",
+ 2124: "OP_glGetUniformLocation",
+ 2125: "OP_glGetVertexAttribfv",
+ 2126: "OP_glGetVertexAttribiv",
+ 2127: "OP_glGetVertexAttribPointerv",
+ 2128: "OP_glHint",
+ 2129: "OP_glIsBuffer",
+ 2130: "OP_glIsEnabled",
+ 2131: "OP_glIsFramebuffer",
+ 2132: "OP_glIsProgram",
+ 2133: "OP_glIsRenderbuffer",
+ 2134: "OP_glIsShader",
+ 2135: "OP_glIsTexture",
+ 2136: "OP_glLineWidth",
+ 2137: "OP_glLinkProgram",
+ 2138: "OP_glPixelStorei",
+ 2139: "OP_glPolygonOffset",
+ 2140: "OP_glReadPixels",
+ 2141: "OP_glReleaseShaderCompiler",
+ 2142: "OP_glRenderbufferStorage",
+ 2143: "OP_glSampleCoverage",
+ 2144: "OP_glScissor",
+ 2145: "OP_glShaderBinary",
+ 2146: "OP_glShaderSource",
+ 2147: "OP_glStencilFunc",
+ 2148: "OP_glStencilFuncSeparate",
+ 2149: "OP_glStencilMask",
+ 2150: "OP_glStencilMaskSeparate",
+ 2151: "OP_glStencilOp",
+ 2152: "OP_glStencilOpSeparate",
+ 2153: "OP_glTexImage2D",
+ 2154: "OP_glTexParameterf",
+ 2155: "OP_glTexParameterfv",
+ 2156: "OP_glTexParameteri",
+ 2157: "OP_glTexParameteriv",
+ 2158: "OP_glTexSubImage2D",
+ 2159: "OP_glUniform1f",
+ 2160: "OP_glUniform1fv",
+ 2161: "OP_glUniform1i",
+ 2162: "OP_glUniform1iv",
+ 2163: "OP_glUniform2f",
+ 2164: "OP_glUniform2fv",
+ 2165: "OP_glUniform2i",
+ 2166: "OP_glUniform2iv",
+ 2167: "OP_glUniform3f",
+ 2168: "OP_glUniform3fv",
+ 2169: "OP_glUniform3i",
+ 2170: "OP_glUniform3iv",
+ 2171: "OP_glUniform4f",
+ 2172: "OP_glUniform4fv",
+ 2173: "OP_glUniform4i",
+ 2174: "OP_glUniform4iv",
+ 2175: "OP_glUniformMatrix2fv",
+ 2176: "OP_glUniformMatrix3fv",
+ 2177: "OP_glUniformMatrix4fv",
+ 2178: "OP_glUseProgram",
+ 2179: "OP_glValidateProgram",
+ 2180: "OP_glVertexAttrib1f",
+ 2181: "OP_glVertexAttrib1fv",
+ 2182: "OP_glVertexAttrib2f",
+ 2183: "OP_glVertexAttrib2fv",
+ 2184: "OP_glVertexAttrib3f",
+ 2185: "OP_glVertexAttrib3fv",
+ 2186: "OP_glVertexAttrib4f",
+ 2187: "OP_glVertexAttrib4fv",
+ 2188: "OP_glVertexAttribPointer",
+ 2189: "OP_glViewport",
+ 2190: "OP_glEGLImageTargetTexture2DOES",
+ 2191: "OP_glEGLImageTargetRenderbufferStorageOES",
+ 2192: "OP_glGetProgramBinaryOES",
+ 2193: "OP_glProgramBinaryOES",
+ 2194: "OP_glMapBufferOES",
+ 2195: "OP_glUnmapBufferOES",
+ 2196: "OP_glTexImage3DOES",
+ 2197: "OP_glTexSubImage3DOES",
+ 2198: "OP_glCopyTexSubImage3DOES",
+ 2199: "OP_glCompressedTexImage3DOES",
+ 2200: "OP_glCompressedTexSubImage3DOES",
+ 2201: "OP_glFramebufferTexture3DOES",
+ 2202: "OP_glBindVertexArrayOES",
+ 2203: "OP_glDeleteVertexArraysOES",
+ 2204: "OP_glGenVertexArraysOES",
+ 2205: "OP_glIsVertexArrayOES",
+ 2206: "OP_glDiscardFramebufferEXT",
+ 2207: "OP_glMultiDrawArraysEXT",
+ 2208: "OP_glMultiDrawElementsEXT",
+ 2209: "OP_glGetPerfMonitorGroupsAMD",
+ 2210: "OP_glGetPerfMonitorCountersAMD",
+ 2211: "OP_glGetPerfMonitorGroupStringAMD",
+ 2212: "OP_glGetPerfMonitorCounterStringAMD",
+ 2213: "OP_glGetPerfMonitorCounterInfoAMD",
+ 2214: "OP_glGenPerfMonitorsAMD",
+ 2215: "OP_glDeletePerfMonitorsAMD",
+ 2216: "OP_glSelectPerfMonitorCountersAMD",
+ 2217: "OP_glBeginPerfMonitorAMD",
+ 2218: "OP_glEndPerfMonitorAMD",
+ 2219: "OP_glGetPerfMonitorCounterDataAMD",
+ 2220: "OP_glRenderbufferStorageMultisampleIMG",
+ 2221: "OP_glFramebufferTexture2DMultisampleIMG",
+ 2222: "OP_glDeleteFencesNV",
+ 2223: "OP_glGenFencesNV",
+ 2224: "OP_glIsFenceNV",
+ 2225: "OP_glTestFenceNV",
+ 2226: "OP_glGetFenceivNV",
+ 2227: "OP_glFinishFenceNV",
+ 2228: "OP_glSetFenceNV",
+ 2229: "OP_glCoverageMaskNV",
+ 2230: "OP_glCoverageOperationNV",
+ 2231: "OP_glGetDriverControlsQCOM",
+ 2232: "OP_glGetDriverControlStringQCOM",
+ 2233: "OP_glEnableDriverControlQCOM",
+ 2234: "OP_glDisableDriverControlQCOM",
+ 2235: "OP_glExtGetTexturesQCOM",
+ 2236: "OP_glExtGetBuffersQCOM",
+ 2237: "OP_glExtGetRenderbuffersQCOM",
+ 2238: "OP_glExtGetFramebuffersQCOM",
+ 2239: "OP_glExtGetTexLevelParameterivQCOM",
+ 2240: "OP_glExtTexObjectStateOverrideiQCOM",
+ 2241: "OP_glExtGetTexSubImageQCOM",
+ 2242: "OP_glExtGetBufferPointervQCOM",
+ 2243: "OP_glExtGetShadersQCOM",
+ 2244: "OP_glExtGetProgramsQCOM",
+ 2245: "OP_glExtIsProgramBinaryQCOM",
+ 2246: "OP_glExtGetProgramBinarySourceQCOM",
+ 2247: "OP_glStartTilingQCOM",
+ 2248: "OP_glEndTilingQCOM",
+ 2249: "OP_glVertexAttribPointerData",
+ 2250: "OP_glVertexAttribPointerOffset",
+ 2251: "OP_glDrawElementsOffset",
+ 2252: "OP_glDrawElementsData",
+ 2253: "OP_glGetCompressedTextureFormats",
+ 2254: "OP_glShaderString",
+ 2255: "OP_glFinishRoundTrip",
+ 2256: "OP_glGenVertexArrays",
+ 2257: "OP_glBindVertexArray",
+ 2258: "OP_glDeleteVertexArrays",
+ 2259: "OP_glIsVertexArray",
+ 2260: "OP_glMapBufferRange",
+ 2261: "OP_glUnmapBuffer",
+ 2262: "OP_glFlushMappedBufferRange",
+ 2263: "OP_glMapBufferRangeAEMU",
+ 2264: "OP_glUnmapBufferAEMU",
+ 2265: "OP_glFlushMappedBufferRangeAEMU",
+ 2266: "OP_glReadPixelsOffsetAEMU",
+ 2267: "OP_glCompressedTexImage2DOffsetAEMU",
+ 2268: "OP_glCompressedTexSubImage2DOffsetAEMU",
+ 2269: "OP_glTexImage2DOffsetAEMU",
+ 2270: "OP_glTexSubImage2DOffsetAEMU",
+ 2271: "OP_glBindBufferRange",
+ 2272: "OP_glBindBufferBase",
+ 2273: "OP_glCopyBufferSubData",
+ 2274: "OP_glClearBufferiv",
+ 2275: "OP_glClearBufferuiv",
+ 2276: "OP_glClearBufferfv",
+ 2277: "OP_glClearBufferfi",
+ 2278: "OP_glGetBufferParameteri64v",
+ 2279: "OP_glGetBufferPointerv",
+ 2280: "OP_glUniformBlockBinding",
+ 2281: "OP_glGetUniformBlockIndex",
+ 2282: "OP_glGetUniformIndices",
+ 2283: "OP_glGetUniformIndicesAEMU",
+ 2284: "OP_glGetActiveUniformBlockiv",
+ 2285: "OP_glGetActiveUniformBlockName",
+ 2286: "OP_glUniform1ui",
+ 2287: "OP_glUniform2ui",
+ 2288: "OP_glUniform3ui",
+ 2289: "OP_glUniform4ui",
+ 2290: "OP_glUniform1uiv",
+ 2291: "OP_glUniform2uiv",
+ 2292: "OP_glUniform3uiv",
+ 2293: "OP_glUniform4uiv",
+ 2294: "OP_glUniformMatrix2x3fv",
+ 2295: "OP_glUniformMatrix3x2fv",
+ 2296: "OP_glUniformMatrix2x4fv",
+ 2297: "OP_glUniformMatrix4x2fv",
+ 2298: "OP_glUniformMatrix3x4fv",
+ 2299: "OP_glUniformMatrix4x3fv",
+ 2300: "OP_glGetUniformuiv",
+ 2301: "OP_glGetActiveUniformsiv",
+ 2302: "OP_glVertexAttribI4i",
+ 2303: "OP_glVertexAttribI4ui",
+ 2304: "OP_glVertexAttribI4iv",
+ 2305: "OP_glVertexAttribI4uiv",
+ 2306: "OP_glVertexAttribIPointer",
+ 2307: "OP_glVertexAttribIPointerOffsetAEMU",
+ 2308: "OP_glVertexAttribIPointerDataAEMU",
+ 2309: "OP_glGetVertexAttribIiv",
+ 2310: "OP_glGetVertexAttribIuiv",
+ 2311: "OP_glVertexAttribDivisor",
+ 2312: "OP_glDrawArraysInstanced",
+ 2313: "OP_glDrawElementsInstanced",
+ 2314: "OP_glDrawElementsInstancedDataAEMU",
+ 2315: "OP_glDrawElementsInstancedOffsetAEMU",
+ 2316: "OP_glDrawRangeElements",
+ 2317: "OP_glDrawRangeElementsDataAEMU",
+ 2318: "OP_glDrawRangeElementsOffsetAEMU",
+ 2319: "OP_glFenceSync",
+ 2320: "OP_glClientWaitSync",
+ 2321: "OP_glWaitSync",
+ 2322: "OP_glDeleteSync",
+ 2323: "OP_glIsSync",
+ 2324: "OP_glGetSynciv",
+ 2325: "OP_glFenceSyncAEMU",
+ 2326: "OP_glClientWaitSyncAEMU",
+ 2327: "OP_glWaitSyncAEMU",
+ 2328: "OP_glDeleteSyncAEMU",
+ 2329: "OP_glIsSyncAEMU",
+ 2330: "OP_glGetSyncivAEMU",
+ 2331: "OP_glDrawBuffers",
+ 2332: "OP_glReadBuffer",
+ 2333: "OP_glBlitFramebuffer",
+ 2334: "OP_glInvalidateFramebuffer",
+ 2335: "OP_glInvalidateSubFramebuffer",
+ 2336: "OP_glFramebufferTextureLayer",
+ 2337: "OP_glRenderbufferStorageMultisample",
+ 2338: "OP_glTexStorage2D",
+ 2339: "OP_glGetInternalformativ",
+ 2340: "OP_glBeginTransformFeedback",
+ 2341: "OP_glEndTransformFeedback",
+ 2342: "OP_glGenTransformFeedbacks",
+ 2343: "OP_glDeleteTransformFeedbacks",
+ 2344: "OP_glBindTransformFeedback",
+ 2345: "OP_glPauseTransformFeedback",
+ 2346: "OP_glResumeTransformFeedback",
+ 2347: "OP_glIsTransformFeedback",
+ 2348: "OP_glTransformFeedbackVaryings",
+ 2349: "OP_glTransformFeedbackVaryingsAEMU",
+ 2350: "OP_glGetTransformFeedbackVarying",
+ 2351: "OP_glGenSamplers",
+ 2352: "OP_glDeleteSamplers",
+ 2353: "OP_glBindSampler",
+ 2354: "OP_glSamplerParameterf",
+ 2355: "OP_glSamplerParameteri",
+ 2356: "OP_glSamplerParameterfv",
+ 2357: "OP_glSamplerParameteriv",
+ 2358: "OP_glGetSamplerParameterfv",
+ 2359: "OP_glGetSamplerParameteriv",
+ 2360: "OP_glIsSampler",
+ 2361: "OP_glGenQueries",
+ 2362: "OP_glDeleteQueries",
+ 2363: "OP_glBeginQuery",
+ 2364: "OP_glEndQuery",
+ 2365: "OP_glGetQueryiv",
+ 2366: "OP_glGetQueryObjectuiv",
+ 2367: "OP_glIsQuery",
+ 2368: "OP_glProgramParameteri",
+ 2369: "OP_glProgramBinary",
+ 2370: "OP_glGetProgramBinary",
+ 2371: "OP_glGetFragDataLocation",
+ 2372: "OP_glGetInteger64v",
+ 2373: "OP_glGetIntegeri_v",
+ 2374: "OP_glGetInteger64i_v",
+ 2375: "OP_glTexImage3D",
+ 2376: "OP_glTexImage3DOffsetAEMU",
+ 2377: "OP_glTexStorage3D",
+ 2378: "OP_glTexSubImage3D",
+ 2379: "OP_glTexSubImage3DOffsetAEMU",
+ 2380: "OP_glCompressedTexImage3D",
+ 2381: "OP_glCompressedTexImage3DOffsetAEMU",
+ 2382: "OP_glCompressedTexSubImage3D",
+ 2383: "OP_glCompressedTexSubImage3DOffsetAEMU",
+ 2384: "OP_glCopyTexSubImage3D",
+ 2385: "OP_glGetStringi",
+ 2386: "OP_glGetBooleani_v",
+ 2387: "OP_glMemoryBarrier",
+ 2388: "OP_glMemoryBarrierByRegion",
+ 2389: "OP_glGenProgramPipelines",
+ 2390: "OP_glDeleteProgramPipelines",
+ 2391: "OP_glBindProgramPipeline",
+ 2392: "OP_glGetProgramPipelineiv",
+ 2393: "OP_glGetProgramPipelineInfoLog",
+ 2394: "OP_glValidateProgramPipeline",
+ 2395: "OP_glIsProgramPipeline",
+ 2396: "OP_glUseProgramStages",
+ 2397: "OP_glActiveShaderProgram",
+ 2398: "OP_glCreateShaderProgramv",
+ 2399: "OP_glCreateShaderProgramvAEMU",
+ 2400: "OP_glProgramUniform1f",
+ 2401: "OP_glProgramUniform2f",
+ 2402: "OP_glProgramUniform3f",
+ 2403: "OP_glProgramUniform4f",
+ 2404: "OP_glProgramUniform1i",
+ 2405: "OP_glProgramUniform2i",
+ 2406: "OP_glProgramUniform3i",
+ 2407: "OP_glProgramUniform4i",
+ 2408: "OP_glProgramUniform1ui",
+ 2409: "OP_glProgramUniform2ui",
+ 2410: "OP_glProgramUniform3ui",
+ 2411: "OP_glProgramUniform4ui",
+ 2412: "OP_glProgramUniform1fv",
+ 2413: "OP_glProgramUniform2fv",
+ 2414: "OP_glProgramUniform3fv",
+ 2415: "OP_glProgramUniform4fv",
+ 2416: "OP_glProgramUniform1iv",
+ 2417: "OP_glProgramUniform2iv",
+ 2418: "OP_glProgramUniform3iv",
+ 2419: "OP_glProgramUniform4iv",
+ 2420: "OP_glProgramUniform1uiv",
+ 2421: "OP_glProgramUniform2uiv",
+ 2422: "OP_glProgramUniform3uiv",
+ 2423: "OP_glProgramUniform4uiv",
+ 2424: "OP_glProgramUniformMatrix2fv",
+ 2425: "OP_glProgramUniformMatrix3fv",
+ 2426: "OP_glProgramUniformMatrix4fv",
+ 2427: "OP_glProgramUniformMatrix2x3fv",
+ 2428: "OP_glProgramUniformMatrix3x2fv",
+ 2429: "OP_glProgramUniformMatrix2x4fv",
+ 2430: "OP_glProgramUniformMatrix4x2fv",
+ 2431: "OP_glProgramUniformMatrix3x4fv",
+ 2432: "OP_glProgramUniformMatrix4x3fv",
+ 2433: "OP_glGetProgramInterfaceiv",
+ 2434: "OP_glGetProgramResourceiv",
+ 2435: "OP_glGetProgramResourceIndex",
+ 2436: "OP_glGetProgramResourceLocation",
+ 2437: "OP_glGetProgramResourceName",
+ 2438: "OP_glBindImageTexture",
+ 2439: "OP_glDispatchCompute",
+ 2440: "OP_glDispatchComputeIndirect",
+ 2441: "OP_glBindVertexBuffer",
+ 2442: "OP_glVertexAttribBinding",
+ 2443: "OP_glVertexAttribFormat",
+ 2444: "OP_glVertexAttribIFormat",
+ 2445: "OP_glVertexBindingDivisor",
+ 2446: "OP_glDrawArraysIndirect",
+ 2447: "OP_glDrawArraysIndirectDataAEMU",
+ 2448: "OP_glDrawArraysIndirectOffsetAEMU",
+ 2449: "OP_glDrawElementsIndirect",
+ 2450: "OP_glDrawElementsIndirectDataAEMU",
+ 2451: "OP_glDrawElementsIndirectOffsetAEMU",
+ 2452: "OP_glTexStorage2DMultisample",
+ 2453: "OP_glSampleMaski",
+ 2454: "OP_glGetMultisamplefv",
+ 2455: "OP_glFramebufferParameteri",
+ 2456: "OP_glGetFramebufferParameteriv",
+ 2457: "OP_glGetTexLevelParameterfv",
+ 2458: "OP_glGetTexLevelParameteriv",
+ 2459: "OP_glMapBufferRangeDMA",
+ 2460: "OP_glUnmapBufferDMA",
+ 2461: "OP_glMapBufferRangeDirect",
+ 2462: "OP_glUnmapBufferDirect",
+ 2463: "OP_glFlushMappedBufferRangeDirect",
+ 2464: "OP_glGetGraphicsResetStatusEXT",
+ 2465: "OP_glReadnPixelsEXT",
+ 2466: "OP_glGetnUniformfvEXT",
+ 2467: "OP_glGetnUniformivEXT",
+ 2468: "OP_glDrawArraysNullAEMU",
+ 2469: "OP_glDrawElementsNullAEMU",
+ 2470: "OP_glDrawElementsOffsetNullAEMU",
+ 2471: "OP_glDrawElementsDataNullAEMU",
+ 2472: "OP_glUnmapBufferAsyncAEMU",
+ 2473: "OP_glFlushMappedBufferRangeAEMU2",
+ 2474: "OP_glBufferDataSyncAEMU",
+}
diff --git a/scripts/print_gfx_logs/print_gfx_logs.py b/scripts/print_gfx_logs/print_gfx_logs.py
index 273863b..76854e6 100644
--- a/scripts/print_gfx_logs/print_gfx_logs.py
+++ b/scripts/print_gfx_logs/print_gfx_logs.py
@@ -144,6 +144,8 @@
streams.sort(key=lambda s: s.timestamp)
+ total_commands = 0
+ num_errors = 0
for stream_idx, stream in enumerate(streams):
print(textwrap.dedent("""
=======================================================
@@ -160,11 +162,13 @@
subdecode_size = 0
for cmd_idx, cmd in enumerate(stream.commands):
+ total_commands += 1
cmd_printer = command_printer.CommandPrinter(cmd.opcode, cmd.original_size, cmd.data, stream_idx, cmd_idx)
try:
cmd_printer.print_cmd()
except:
+ num_errors += 1
# Print stack trace and continue
traceback.print_exc(file=sys.stdout)
@@ -178,6 +182,12 @@
assert subdecode_size == 0
subdecode_size = cmd.original_size - 36
print("\n--- start of subdecode, size = {} bytes ---".format(subdecode_size))
+ print("\nDone: {} commands, {} errors".format(total_commands, num_errors))
+ if num_errors > 0:
+ print("""
+NOTE: This script uses some simplifying assumptions to decode the commands. All
+decoding errors are almost certainly a bug with this script, NOT a sign of bad
+or corrupted data.""")
if __name__ == '__main__':
diff --git a/scripts/print_gfx_logs/vulkan_printer.py b/scripts/print_gfx_logs/vulkan_printer.py
index bbddce8..5cab810 100644
--- a/scripts/print_gfx_logs/vulkan_printer.py
+++ b/scripts/print_gfx_logs/vulkan_printer.py
@@ -1,109 +1,123 @@
#####################################################################################################
# Pretty-printer functions for Vulkan data structures
# THIS FILE IS AUTO-GENERATED - DO NOT EDIT
-# Actually right now it is written by hand - TODO(gregschlom): auto-generate this
+#
+# To re-generate this file, run generate-vulkan-sources.sh
#####################################################################################################
def OP_vkCmdBeginRenderPass(printer, indent: int):
- printer.write_struct("pRenderPassBegin", struct_VkRenderPassBeginInfo, indent)
+ printer.write_struct("pRenderPassBegin", struct_VkRenderPassBeginInfo, False, None, indent)
printer.write_enum("contents", VkSubpassContents, indent)
+ return
def OP_vkCmdBindPipeline(printer, indent: int):
printer.write_enum("pipelineBindPoint", VkPipelineBindPoint, indent)
- printer.write_int("pipeline", 8, indent)
+ pipeline = printer.write_int("pipeline", 8, indent, signed=False, big_endian=False)
+ return
def OP_vkCmdCopyBufferToImage(printer, indent: int):
- printer.write_int("srcBuffer", 8, indent)
- printer.write_int("dstImage", 8, indent)
+ srcBuffer = printer.write_int("srcBuffer", 8, indent, signed=False, big_endian=False)
+ dstImage = printer.write_int("dstImage", 8, indent, signed=False, big_endian=False)
printer.write_enum("dstImageLayout", VkImageLayout, indent)
- printer.write_repeated("regionCount", "pRegions", struct_VkBufferImageCopy, indent)
+ regionCount = printer.write_int("regionCount", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("pRegions", struct_VkBufferImageCopy, False, regionCount, indent)
+ return
def OP_vkCmdPipelineBarrier(printer, indent: int):
- printer.write_int("srcStageMask", 4, indent)
- printer.write_int("dstStageMask", 4, indent)
- printer.write_int("dependencyFlags", 4, indent)
- printer.write_repeated("memoryBarrierCount", "pMemoryBarriers", struct_VkMemoryBarrier, indent)
- printer.write_repeated("bufferMemoryBarrierCount", "pBufferMemoryBarriers", struct_VkBufferMemoryBarrier, indent)
- printer.write_repeated("imageMemoryBarrierCount", "pImageMemoryBarriers", struct_VkImageMemoryBarrier, indent)
-
+ srcStageMask = printer.write_int("srcStageMask", 4, indent, signed=False, big_endian=False)
+ dstStageMask = printer.write_int("dstStageMask", 4, indent, signed=False, big_endian=False)
+ dependencyFlags = printer.write_int("dependencyFlags", 4, indent, signed=False, big_endian=False)
+ memoryBarrierCount = printer.write_int("memoryBarrierCount", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("pMemoryBarriers", struct_VkMemoryBarrier, False, memoryBarrierCount, indent)
+ bufferMemoryBarrierCount = printer.write_int("bufferMemoryBarrierCount", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("pBufferMemoryBarriers", struct_VkBufferMemoryBarrier, False, bufferMemoryBarrierCount, indent)
+ imageMemoryBarrierCount = printer.write_int("imageMemoryBarrierCount", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("pImageMemoryBarriers", struct_VkImageMemoryBarrier, False, imageMemoryBarrierCount, indent)
+ return
def struct_VkBufferImageCopy(printer, indent: int):
- printer.write_int("bufferOffset", 8, indent)
- printer.write_int("bufferRowLength", 4, indent)
- printer.write_int("bufferImageHeight", 4, indent)
- printer.write_struct("imageSubresource", struct_VkImageSubresourceLayers, indent)
- printer.write_struct("imageOffset", struct_VkOffset3D, indent)
- printer.write_struct("imageExtent", struct_VkOffset3D, indent)
-
+ bufferOffset = printer.write_int("bufferOffset", 8, indent, signed=False, big_endian=False)
+ bufferRowLength = printer.write_int("bufferRowLength", 4, indent, signed=False, big_endian=False)
+ bufferImageHeight = printer.write_int("bufferImageHeight", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("imageSubresource", struct_VkImageSubresourceLayers, False, None, indent)
+ printer.write_struct("imageOffset", struct_VkOffset3D, False, None, indent)
+ printer.write_struct("imageExtent", struct_VkExtent3D, False, None, indent)
def struct_VkBufferMemoryBarrier(printer, indent: int):
printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER", indent)
- printer.write_int("srcAccessMask", 4, indent)
- printer.write_int("dstAccessMask", 4, indent)
- printer.write_int("srcQueueFamilyIndex", 4, indent)
- printer.write_int("dstQueueFamilyIndex", 4, indent)
- printer.write_int("buffer", 8, indent)
- printer.write_int("offset", 8, indent)
- printer.write_int("size", 8, indent)
-
-def struct_VkClearValue(printer, indent: int):
- printer.write_struct("color", struct_VkClearColorValue, indent)
+ srcAccessMask = printer.write_int("srcAccessMask", 4, indent, signed=False, big_endian=False)
+ dstAccessMask = printer.write_int("dstAccessMask", 4, indent, signed=False, big_endian=False)
+ srcQueueFamilyIndex = printer.write_int("srcQueueFamilyIndex", 4, indent, signed=False, big_endian=False)
+ dstQueueFamilyIndex = printer.write_int("dstQueueFamilyIndex", 4, indent, signed=False, big_endian=False)
+ buffer = printer.write_int("buffer", 8, indent, signed=False, big_endian=False)
+ offset = printer.write_int("offset", 8, indent, signed=False, big_endian=False)
+ size = printer.write_int("size", 8, indent, signed=False, big_endian=False)
def struct_VkClearColorValue(printer, indent: int):
- printer.write("0x{:04X}, 0x{:04X}, 0x{:04X}, 0x{:04X}\n".format(
- printer.read_int(4), printer.read_int(4), printer.read_int(4), printer.read_int(4)), indent)
+ printer.write_float("float32", indent, count=4)
+
+def struct_VkClearValue(printer, indent: int):
+ printer.write_struct("color", struct_VkClearColorValue, False, None, indent)
+
+def struct_VkExtent2D(printer, indent: int):
+ width = printer.write_int("width", 4, indent, signed=False, big_endian=False)
+ height = printer.write_int("height", 4, indent, signed=False, big_endian=False)
+
+def struct_VkExtent3D(printer, indent: int):
+ width = printer.write_int("width", 4, indent, signed=False, big_endian=False)
+ height = printer.write_int("height", 4, indent, signed=False, big_endian=False)
+ depth = printer.write_int("depth", 4, indent, signed=False, big_endian=False)
def struct_VkImageMemoryBarrier(printer, indent: int):
printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER", indent)
- printer.write_int("srcAccessMask", 4, indent)
- printer.write_int("dstAccessMask", 4, indent)
+ srcAccessMask = printer.write_int("srcAccessMask", 4, indent, signed=False, big_endian=False)
+ dstAccessMask = printer.write_int("dstAccessMask", 4, indent, signed=False, big_endian=False)
printer.write_enum("oldLayout", VkImageLayout, indent)
printer.write_enum("newLayout", VkImageLayout, indent)
- printer.write_int("srcQueueFamilyIndex", 4, indent)
- printer.write_int("dstQueueFamilyIndex", 4, indent)
- printer.write_int("image", 8, indent)
- printer.write_struct("subresourceRange", struct_VkImageSubresourceRange, indent)
-
-def struct_VkExtent2D(printer, indent: int):
- printer.write_int("width", 4, indent)
- printer.write_int("height", 4, indent)
+ srcQueueFamilyIndex = printer.write_int("srcQueueFamilyIndex", 4, indent, signed=False, big_endian=False)
+ dstQueueFamilyIndex = printer.write_int("dstQueueFamilyIndex", 4, indent, signed=False, big_endian=False)
+ image = printer.write_int("image", 8, indent, signed=False, big_endian=False)
+ printer.write_struct("subresourceRange", struct_VkImageSubresourceRange, False, None, indent)
def struct_VkImageSubresourceLayers(printer, indent: int):
- printer.write_int("aspectMask", 4, indent)
- printer.write_int("mipLevel", 4, indent)
- printer.write_int("baseArrayLayer", 4, indent)
- printer.write_int("layerCount", 4, indent)
+ aspectMask = printer.write_int("aspectMask", 4, indent, signed=False, big_endian=False)
+ mipLevel = printer.write_int("mipLevel", 4, indent, signed=False, big_endian=False)
+ baseArrayLayer = printer.write_int("baseArrayLayer", 4, indent, signed=False, big_endian=False)
+ layerCount = printer.write_int("layerCount", 4, indent, signed=False, big_endian=False)
def struct_VkImageSubresourceRange(printer, indent: int):
- printer.write_int("aspectMask", 4, indent)
- printer.write_int("baseMipLevel", 4, indent)
- printer.write_int("levelCount", 4, indent)
- printer.write_int("baseArrayLayer", 4, indent)
- printer.write_int("layerCount", 4, indent)
+ aspectMask = printer.write_int("aspectMask", 4, indent, signed=False, big_endian=False)
+ baseMipLevel = printer.write_int("baseMipLevel", 4, indent, signed=False, big_endian=False)
+ levelCount = printer.write_int("levelCount", 4, indent, signed=False, big_endian=False)
+ baseArrayLayer = printer.write_int("baseArrayLayer", 4, indent, signed=False, big_endian=False)
+ layerCount = printer.write_int("layerCount", 4, indent, signed=False, big_endian=False)
def struct_VkMemoryBarrier(printer, indent: int):
printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_MEMORY_BARRIER", indent)
- printer.write_int("srcAccessMask", 4, indent)
- printer.write_int("dstAccessMask", 4, indent)
+ srcAccessMask = printer.write_int("srcAccessMask", 4, indent, signed=False, big_endian=False)
+ dstAccessMask = printer.write_int("dstAccessMask", 4, indent, signed=False, big_endian=False)
def struct_VkOffset2D(printer, indent: int):
- printer.write_int("x", 4, indent, signed=True)
- printer.write_int("y", 4, indent, signed=True)
+ x = printer.write_int("x", 4, indent, signed=True, big_endian=False)
+ y = printer.write_int("y", 4, indent, signed=True, big_endian=False)
def struct_VkOffset3D(printer, indent: int):
- printer.write("x: {}, y: {}, z: {}\n".format(printer.read_int(4), printer.read_int(4), printer.read_int(4)), indent)
+ x = printer.write_int("x", 4, indent, signed=True, big_endian=False)
+ y = printer.write_int("y", 4, indent, signed=True, big_endian=False)
+ z = printer.write_int("z", 4, indent, signed=True, big_endian=False)
def struct_VkRect2D(printer, indent: int):
- printer.write_struct("offset", struct_VkOffset2D, indent)
- printer.write_struct("extent", struct_VkExtent2D, indent)
+ printer.write_struct("offset", struct_VkOffset2D, False, None, indent)
+ printer.write_struct("extent", struct_VkExtent2D, False, None, indent)
def struct_VkRenderPassBeginInfo(printer, indent: int):
printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO", indent)
- printer.write_int("renderPass", 8, indent)
- printer.write_int("framebuffer", 8, indent)
- printer.write_struct("renderArea", struct_VkRect2D, indent)
- printer.write_repeated("clearValueCount", "pClearValues", struct_VkClearValue, indent,
- "pClearValuesPtr")
+ renderPass = printer.write_int("renderPass", 8, indent, signed=False, big_endian=False)
+ framebuffer = printer.write_int("framebuffer", 8, indent, signed=False, big_endian=False)
+ printer.write_struct("renderArea", struct_VkRect2D, False, None, indent)
+ clearValueCount = printer.write_int("clearValueCount", 4, indent, signed=False, big_endian=False)
+ printer.write_struct("pClearValues", struct_VkClearValue, True, clearValueCount, indent)
+
VkImageLayout = {
0: "VK_IMAGE_LAYOUT_UNDEFINED",
1: "VK_IMAGE_LAYOUT_GENERAL",
@@ -120,8 +134,6 @@
1000241001: "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL",
1000241002: "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL",
1000241003: "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL",
- 1000314000: "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL",
- 1000314001: "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL",
1000001002: "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR",
1000024000: "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR",
1000024001: "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR",
@@ -132,6 +144,8 @@
1000299000: "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR",
1000299001: "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR",
1000299002: "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR",
+ 1000314000: "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR",
+ 1000314001: "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR",
}
VkPipelineBindPoint = {
@@ -306,58 +320,6 @@
1000257002: "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO",
1000257003: "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO",
1000257004: "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO",
- 53: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES",
- 54: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES",
- 1000192000: "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO",
- 1000215000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES",
- 1000245000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES",
- 1000276000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES",
- 1000295000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES",
- 1000295001: "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO",
- 1000295002: "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO",
- 1000297000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES",
- 1000314000: "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2",
- 1000314001: "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2",
- 1000314002: "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2",
- 1000314003: "VK_STRUCTURE_TYPE_DEPENDENCY_INFO",
- 1000314004: "VK_STRUCTURE_TYPE_SUBMIT_INFO_2",
- 1000314005: "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO",
- 1000314006: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO",
- 1000314007: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES",
- 1000325000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES",
- 1000335000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES",
- 1000337000: "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2",
- 1000337001: "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2",
- 1000337002: "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2",
- 1000337003: "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2",
- 1000337004: "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2",
- 1000337005: "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2",
- 1000337006: "VK_STRUCTURE_TYPE_BUFFER_COPY_2",
- 1000337007: "VK_STRUCTURE_TYPE_IMAGE_COPY_2",
- 1000337008: "VK_STRUCTURE_TYPE_IMAGE_BLIT_2",
- 1000337009: "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2",
- 1000337010: "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2",
- 1000225000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES",
- 1000225001: "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO",
- 1000225002: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES",
- 1000138000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES",
- 1000138001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES",
- 1000138002: "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK",
- 1000138003: "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO",
- 1000066000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES",
- 1000044000: "VK_STRUCTURE_TYPE_RENDERING_INFO",
- 1000044001: "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO",
- 1000044002: "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO",
- 1000044003: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES",
- 1000044004: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO",
- 1000280000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES",
- 1000280001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES",
- 1000281001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES",
- 1000360000: "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3",
- 1000413000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES",
- 1000413001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES",
- 1000413002: "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS",
- 1000413003: "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS",
1000001000: "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR",
1000001001: "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR",
1000060007: "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR",
@@ -374,6 +336,7 @@
1000006000: "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR",
1000008000: "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR",
1000009000: "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR",
+ 1000010000: "VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID",
1000011000: "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT",
1000018000: "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD",
1000022000: "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT",
@@ -395,9 +358,7 @@
1000023013: "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR",
1000023014: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR",
1000023015: "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR",
- 1000023016: "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR",
1000024000: "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR",
- 1000024001: "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR",
1000026000: "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV",
1000026001: "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV",
1000026002: "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV",
@@ -418,21 +379,16 @@
1000038006: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT",
1000038007: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT",
1000038008: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT",
- 1000038009: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT",
- 1000038010: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT",
- 1000038011: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT",
1000039000: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT",
1000039001: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT",
1000039002: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT",
1000039003: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT",
1000039004: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT",
1000039005: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT",
- 1000039006: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT",
+ 1000039006: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT",
1000039007: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT",
1000039008: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT",
1000039009: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT",
- 1000039010: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT",
- 1000039011: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT",
1000040000: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT",
1000040001: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT",
1000040002: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT",
@@ -442,6 +398,11 @@
1000040006: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT",
1000040007: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT",
1000041000: "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD",
+ 1000044000: "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR",
+ 1000044001: "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR",
+ 1000044002: "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR",
+ 1000044003: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR",
+ 1000044004: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR",
1000044006: "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR",
1000044007: "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT",
1000044008: "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD",
@@ -453,8 +414,15 @@
1000057000: "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV",
1000057001: "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV",
1000058000: "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV",
+ 1000060007: "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR",
+ 1000060008: "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR",
+ 1000060009: "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR",
+ 1000060010: "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR",
+ 1000060011: "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR",
+ 1000060012: "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR",
1000061000: "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT",
1000062000: "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN",
+ 1000066000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT",
1000067000: "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT",
1000067001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT",
1000073000: "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR",
@@ -527,6 +495,10 @@
1000129004: "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID",
1000129005: "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID",
1000129006: "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID",
+ 1000138000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT",
+ 1000138001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT",
+ 1000138002: "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT",
+ 1000138003: "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT",
1000143000: "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT",
1000143001: "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT",
1000143002: "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT",
@@ -589,6 +561,7 @@
1000166001: "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV",
1000170000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT",
1000170001: "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT",
+ 1000174000: "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT",
1000178000: "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT",
1000178001: "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT",
1000178002: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT",
@@ -603,14 +576,12 @@
1000187004: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT",
1000187005: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT",
1000187006: "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT",
- 1000174000: "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR",
- 1000388000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR",
- 1000388001: "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR",
1000189000: "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD",
1000190000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT",
1000190001: "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT",
1000190002: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT",
1000191000: "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP",
+ 1000192000: "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT",
1000201000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV",
1000202000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV",
1000202001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV",
@@ -631,10 +602,14 @@
1000213000: "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD",
1000213001: "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD",
1000214000: "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA",
+ 1000215000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR",
1000217000: "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT",
1000218000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT",
1000218001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT",
1000218002: "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT",
+ 1000225000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT",
+ 1000225001: "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT",
+ 1000225002: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT",
1000226000: "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR",
1000226001: "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR",
1000226002: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR",
@@ -650,6 +625,7 @@
1000240000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV",
1000244000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT",
1000244002: "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT",
+ 1000245000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT",
1000247000: "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT",
1000248000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR",
1000249000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV",
@@ -680,6 +656,7 @@
1000269004: "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR",
1000269005: "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR",
1000273000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT",
+ 1000276000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT",
1000277000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV",
1000277001: "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV",
1000277002: "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV",
@@ -690,7 +667,10 @@
1000277007: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV",
1000278000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV",
1000278001: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV",
+ 1000280000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR",
+ 1000280001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR",
1000281000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT",
+ 1000281001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT",
1000282000: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM",
1000282001: "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM",
1000284000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT",
@@ -704,15 +684,27 @@
1000290000: "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR",
1000294000: "VK_STRUCTURE_TYPE_PRESENT_ID_KHR",
1000294001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR",
+ 1000295000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT",
+ 1000295001: "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT",
+ 1000295002: "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT",
+ 1000297000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT",
1000299000: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR",
1000299001: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR",
- 1000299002: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR",
- 1000299003: "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR",
1000300000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV",
1000300001: "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV",
+ 1000309000: "VK_STRUCTURE_TYPE_RESERVED_QCOM",
+ 1000314000: "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR",
+ 1000314001: "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR",
+ 1000314002: "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR",
+ 1000314003: "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR",
+ 1000314004: "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR",
+ 1000314005: "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR",
+ 1000314006: "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR",
+ 1000314007: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR",
1000314008: "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV",
1000314009: "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV",
1000323000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR",
+ 1000325000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR",
1000326000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV",
1000326001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV",
1000326002: "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV",
@@ -723,9 +715,20 @@
1000332000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT",
1000332001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT",
1000333000: "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM",
+ 1000335000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT",
1000336000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR",
+ 1000337000: "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR",
+ 1000337001: "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR",
+ 1000337002: "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR",
+ 1000337003: "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR",
+ 1000337004: "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR",
+ 1000337005: "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR",
+ 1000337006: "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR",
+ 1000337007: "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR",
+ 1000337008: "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR",
+ 1000337009: "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR",
+ 1000337010: "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR",
1000340000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT",
- 1000342000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM",
1000344000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT",
1000346000: "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT",
1000351000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE",
@@ -734,9 +737,8 @@
1000352001: "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT",
1000352002: "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT",
1000353000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT",
- 1000355000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT",
- 1000355001: "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT",
1000356000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT",
+ 1000360000: "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR",
1000364000: "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA",
1000364001: "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA",
1000364002: "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA",
@@ -762,20 +764,20 @@
1000378000: "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX",
1000381000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT",
1000381001: "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT",
- 1000391000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT",
- 1000391001: "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT",
+ 1000388000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT",
+ 1000388001: "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT",
1000392000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT",
1000392001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT",
1000411000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT",
1000411001: "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT",
1000412000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT",
- 1000420000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE",
- 1000420001: "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE",
- 1000420002: "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE",
- 1000425000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM",
- 1000425001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM",
- 1000425002: "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM",
- 1000430000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV",
+ 1000413000: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR",
+ 1000413001: "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR",
+ 1000413002: "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR",
+ 1000413003: "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR",
+ 1000385000: "VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE",
+ 1000385001: "VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE",
+ 1000385002: "VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE",
}
VkSubpassContents = {
@@ -783,1271 +785,3 @@
1: "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS",
}
-opcodes = {
- # From http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/vulkan/cereal/common/goldfish_vk_marshaling.h
- 20000: "OP_vkCreateInstance",
- 20001: "OP_vkDestroyInstance",
- 20002: "OP_vkEnumeratePhysicalDevices",
- 20003: "OP_vkGetPhysicalDeviceFeatures",
- 20004: "OP_vkGetPhysicalDeviceFormatProperties",
- 20005: "OP_vkGetPhysicalDeviceImageFormatProperties",
- 20006: "OP_vkGetPhysicalDeviceProperties",
- 20007: "OP_vkGetPhysicalDeviceQueueFamilyProperties",
- 20008: "OP_vkGetPhysicalDeviceMemoryProperties",
- 20009: "OP_vkGetInstanceProcAddr",
- 20010: "OP_vkGetDeviceProcAddr",
- 20011: "OP_vkCreateDevice",
- 20012: "OP_vkDestroyDevice",
- 20013: "OP_vkEnumerateInstanceExtensionProperties",
- 20014: "OP_vkEnumerateDeviceExtensionProperties",
- 20015: "OP_vkEnumerateInstanceLayerProperties",
- 20016: "OP_vkEnumerateDeviceLayerProperties",
- 20017: "OP_vkGetDeviceQueue",
- 20018: "OP_vkQueueSubmit",
- 20019: "OP_vkQueueWaitIdle",
- 20020: "OP_vkDeviceWaitIdle",
- 20021: "OP_vkAllocateMemory",
- 20022: "OP_vkFreeMemory",
- 20023: "OP_vkMapMemory",
- 20024: "OP_vkUnmapMemory",
- 20025: "OP_vkFlushMappedMemoryRanges",
- 20026: "OP_vkInvalidateMappedMemoryRanges",
- 20027: "OP_vkGetDeviceMemoryCommitment",
- 20028: "OP_vkBindBufferMemory",
- 20029: "OP_vkBindImageMemory",
- 20030: "OP_vkGetBufferMemoryRequirements",
- 20031: "OP_vkGetImageMemoryRequirements",
- 20032: "OP_vkGetImageSparseMemoryRequirements",
- 20033: "OP_vkGetPhysicalDeviceSparseImageFormatProperties",
- 20034: "OP_vkQueueBindSparse",
- 20035: "OP_vkCreateFence",
- 20036: "OP_vkDestroyFence",
- 20037: "OP_vkResetFences",
- 20038: "OP_vkGetFenceStatus",
- 20039: "OP_vkWaitForFences",
- 20040: "OP_vkCreateSemaphore",
- 20041: "OP_vkDestroySemaphore",
- 20042: "OP_vkCreateEvent",
- 20043: "OP_vkDestroyEvent",
- 20044: "OP_vkGetEventStatus",
- 20045: "OP_vkSetEvent",
- 20046: "OP_vkResetEvent",
- 20047: "OP_vkCreateQueryPool",
- 20048: "OP_vkDestroyQueryPool",
- 20049: "OP_vkGetQueryPoolResults",
- 20050: "OP_vkCreateBuffer",
- 20051: "OP_vkDestroyBuffer",
- 20052: "OP_vkCreateBufferView",
- 20053: "OP_vkDestroyBufferView",
- 20054: "OP_vkCreateImage",
- 20055: "OP_vkDestroyImage",
- 20056: "OP_vkGetImageSubresourceLayout",
- 20057: "OP_vkCreateImageView",
- 20058: "OP_vkDestroyImageView",
- 20059: "OP_vkCreateShaderModule",
- 20060: "OP_vkDestroyShaderModule",
- 20061: "OP_vkCreatePipelineCache",
- 20062: "OP_vkDestroyPipelineCache",
- 20063: "OP_vkGetPipelineCacheData",
- 20064: "OP_vkMergePipelineCaches",
- 20065: "OP_vkCreateGraphicsPipelines",
- 20066: "OP_vkCreateComputePipelines",
- 20067: "OP_vkDestroyPipeline",
- 20068: "OP_vkCreatePipelineLayout",
- 20069: "OP_vkDestroyPipelineLayout",
- 20070: "OP_vkCreateSampler",
- 20071: "OP_vkDestroySampler",
- 20072: "OP_vkCreateDescriptorSetLayout",
- 20073: "OP_vkDestroyDescriptorSetLayout",
- 20074: "OP_vkCreateDescriptorPool",
- 20075: "OP_vkDestroyDescriptorPool",
- 20076: "OP_vkResetDescriptorPool",
- 20077: "OP_vkAllocateDescriptorSets",
- 20078: "OP_vkFreeDescriptorSets",
- 20079: "OP_vkUpdateDescriptorSets",
- 20080: "OP_vkCreateFramebuffer",
- 20081: "OP_vkDestroyFramebuffer",
- 20082: "OP_vkCreateRenderPass",
- 20083: "OP_vkDestroyRenderPass",
- 20084: "OP_vkGetRenderAreaGranularity",
- 20085: "OP_vkCreateCommandPool",
- 20086: "OP_vkDestroyCommandPool",
- 20087: "OP_vkResetCommandPool",
- 20088: "OP_vkAllocateCommandBuffers",
- 20089: "OP_vkFreeCommandBuffers",
- 20090: "OP_vkBeginCommandBuffer",
- 20091: "OP_vkEndCommandBuffer",
- 20092: "OP_vkResetCommandBuffer",
- 20093: "OP_vkCmdBindPipeline",
- 20094: "OP_vkCmdSetViewport",
- 20095: "OP_vkCmdSetScissor",
- 20096: "OP_vkCmdSetLineWidth",
- 20097: "OP_vkCmdSetDepthBias",
- 20098: "OP_vkCmdSetBlendConstants",
- 20099: "OP_vkCmdSetDepthBounds",
- 20100: "OP_vkCmdSetStencilCompareMask",
- 20101: "OP_vkCmdSetStencilWriteMask",
- 20102: "OP_vkCmdSetStencilReference",
- 20103: "OP_vkCmdBindDescriptorSets",
- 20104: "OP_vkCmdBindIndexBuffer",
- 20105: "OP_vkCmdBindVertexBuffers",
- 20106: "OP_vkCmdDraw",
- 20107: "OP_vkCmdDrawIndexed",
- 20108: "OP_vkCmdDrawIndirect",
- 20109: "OP_vkCmdDrawIndexedIndirect",
- 20110: "OP_vkCmdDispatch",
- 20111: "OP_vkCmdDispatchIndirect",
- 20112: "OP_vkCmdCopyBuffer",
- 20113: "OP_vkCmdCopyImage",
- 20114: "OP_vkCmdBlitImage",
- 20115: "OP_vkCmdCopyBufferToImage",
- 20116: "OP_vkCmdCopyImageToBuffer",
- 20117: "OP_vkCmdUpdateBuffer",
- 20118: "OP_vkCmdFillBuffer",
- 20119: "OP_vkCmdClearColorImage",
- 20120: "OP_vkCmdClearDepthStencilImage",
- 20121: "OP_vkCmdClearAttachments",
- 20122: "OP_vkCmdResolveImage",
- 20123: "OP_vkCmdSetEvent",
- 20124: "OP_vkCmdResetEvent",
- 20125: "OP_vkCmdWaitEvents",
- 20126: "OP_vkCmdPipelineBarrier",
- 20127: "OP_vkCmdBeginQuery",
- 20128: "OP_vkCmdEndQuery",
- 20129: "OP_vkCmdResetQueryPool",
- 20130: "OP_vkCmdWriteTimestamp",
- 20131: "OP_vkCmdCopyQueryPoolResults",
- 20132: "OP_vkCmdPushConstants",
- 20133: "OP_vkCmdBeginRenderPass",
- 20134: "OP_vkCmdNextSubpass",
- 20135: "OP_vkCmdEndRenderPass",
- 20136: "OP_vkCmdExecuteCommands",
- 20137: "OP_vkEnumerateInstanceVersion",
- 20138: "OP_vkBindBufferMemory2",
- 20139: "OP_vkBindImageMemory2",
- 20140: "OP_vkGetDeviceGroupPeerMemoryFeatures",
- 20141: "OP_vkCmdSetDeviceMask",
- 20142: "OP_vkCmdDispatchBase",
- 20143: "OP_vkEnumeratePhysicalDeviceGroups",
- 20144: "OP_vkGetImageMemoryRequirements2",
- 20145: "OP_vkGetBufferMemoryRequirements2",
- 20146: "OP_vkGetImageSparseMemoryRequirements2",
- 20147: "OP_vkGetPhysicalDeviceFeatures2",
- 20148: "OP_vkGetPhysicalDeviceProperties2",
- 20149: "OP_vkGetPhysicalDeviceFormatProperties2",
- 20150: "OP_vkGetPhysicalDeviceImageFormatProperties2",
- 20151: "OP_vkGetPhysicalDeviceQueueFamilyProperties2",
- 20152: "OP_vkGetPhysicalDeviceMemoryProperties2",
- 20153: "OP_vkGetPhysicalDeviceSparseImageFormatProperties2",
- 20154: "OP_vkTrimCommandPool",
- 20155: "OP_vkGetDeviceQueue2",
- 20156: "OP_vkCreateSamplerYcbcrConversion",
- 20157: "OP_vkDestroySamplerYcbcrConversion",
- 20158: "OP_vkCreateDescriptorUpdateTemplate",
- 20159: "OP_vkDestroyDescriptorUpdateTemplate",
- 20160: "OP_vkUpdateDescriptorSetWithTemplate",
- 20161: "OP_vkGetPhysicalDeviceExternalBufferProperties",
- 20162: "OP_vkGetPhysicalDeviceExternalFenceProperties",
- 20163: "OP_vkGetPhysicalDeviceExternalSemaphoreProperties",
- 20164: "OP_vkGetDescriptorSetLayoutSupport",
- 282774587: "OP_vkCmdDrawIndirectCount",
- 245204359: "OP_vkCmdDrawIndexedIndirectCount",
- 279590827: "OP_vkCreateRenderPass2",
- 235222847: "OP_vkCmdBeginRenderPass2",
- 244873750: "OP_vkCmdNextSubpass2",
- 221297834: "OP_vkCmdEndRenderPass2",
- 252097672: "OP_vkResetQueryPool",
- 267066974: "OP_vkGetSemaphoreCounterValue",
- 224777382: "OP_vkWaitSemaphores",
- 271024127: "OP_vkSignalSemaphore",
- 222632266: "OP_vkGetBufferDeviceAddress",
- 230188231: "OP_vkGetBufferOpaqueCaptureAddress",
- 260620079: "OP_vkGetDeviceMemoryOpaqueCaptureAddress",
- 20165: "OP_vkDestroySurfaceKHR",
- 20166: "OP_vkGetPhysicalDeviceSurfaceSupportKHR",
- 20167: "OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR",
- 20168: "OP_vkGetPhysicalDeviceSurfaceFormatsKHR",
- 20169: "OP_vkGetPhysicalDeviceSurfacePresentModesKHR",
- 20170: "OP_vkCreateSwapchainKHR",
- 20171: "OP_vkDestroySwapchainKHR",
- 20172: "OP_vkGetSwapchainImagesKHR",
- 20173: "OP_vkAcquireNextImageKHR",
- 20174: "OP_vkQueuePresentKHR",
- 20175: "OP_vkGetDeviceGroupPresentCapabilitiesKHR",
- 20176: "OP_vkGetDeviceGroupSurfacePresentModesKHR",
- 20177: "OP_vkGetPhysicalDevicePresentRectanglesKHR",
- 20178: "OP_vkAcquireNextImage2KHR",
- 20179: "OP_vkGetPhysicalDeviceDisplayPropertiesKHR",
- 20180: "OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR",
- 20181: "OP_vkGetDisplayPlaneSupportedDisplaysKHR",
- 20182: "OP_vkGetDisplayModePropertiesKHR",
- 20183: "OP_vkCreateDisplayModeKHR",
- 20184: "OP_vkGetDisplayPlaneCapabilitiesKHR",
- 20185: "OP_vkCreateDisplayPlaneSurfaceKHR",
- 20186: "OP_vkCreateSharedSwapchainsKHR",
- 20187: "OP_vkCreateXlibSurfaceKHR",
- 20188: "OP_vkGetPhysicalDeviceXlibPresentationSupportKHR",
- 20189: "OP_vkCreateXcbSurfaceKHR",
- 20190: "OP_vkGetPhysicalDeviceXcbPresentationSupportKHR",
- 20191: "OP_vkCreateWaylandSurfaceKHR",
- 20192: "OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR",
- 20195: "OP_vkCreateAndroidSurfaceKHR",
- 20196: "OP_vkCreateWin32SurfaceKHR",
- 20197: "OP_vkGetPhysicalDeviceWin32PresentationSupportKHR",
- 20198: "OP_vkGetPhysicalDeviceFeatures2KHR",
- 20199: "OP_vkGetPhysicalDeviceProperties2KHR",
- 20200: "OP_vkGetPhysicalDeviceFormatProperties2KHR",
- 20201: "OP_vkGetPhysicalDeviceImageFormatProperties2KHR",
- 20202: "OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR",
- 20203: "OP_vkGetPhysicalDeviceMemoryProperties2KHR",
- 20204: "OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
- 20205: "OP_vkGetDeviceGroupPeerMemoryFeaturesKHR",
- 20206: "OP_vkCmdSetDeviceMaskKHR",
- 20207: "OP_vkCmdDispatchBaseKHR",
- 20208: "OP_vkTrimCommandPoolKHR",
- 20209: "OP_vkEnumeratePhysicalDeviceGroupsKHR",
- 20210: "OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR",
- 20211: "OP_vkGetMemoryWin32HandleKHR",
- 20212: "OP_vkGetMemoryWin32HandlePropertiesKHR",
- 20213: "OP_vkGetMemoryFdKHR",
- 20214: "OP_vkGetMemoryFdPropertiesKHR",
- 20215: "OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR",
- 20216: "OP_vkImportSemaphoreWin32HandleKHR",
- 20217: "OP_vkGetSemaphoreWin32HandleKHR",
- 20218: "OP_vkImportSemaphoreFdKHR",
- 20219: "OP_vkGetSemaphoreFdKHR",
- 20220: "OP_vkCmdPushDescriptorSetKHR",
- 20221: "OP_vkCmdPushDescriptorSetWithTemplateKHR",
- 20222: "OP_vkCreateDescriptorUpdateTemplateKHR",
- 20223: "OP_vkDestroyDescriptorUpdateTemplateKHR",
- 20224: "OP_vkUpdateDescriptorSetWithTemplateKHR",
- 20225: "OP_vkCreateRenderPass2KHR",
- 20226: "OP_vkCmdBeginRenderPass2KHR",
- 20227: "OP_vkCmdNextSubpass2KHR",
- 20228: "OP_vkCmdEndRenderPass2KHR",
- 20229: "OP_vkGetSwapchainStatusKHR",
- 20230: "OP_vkGetPhysicalDeviceExternalFencePropertiesKHR",
- 20231: "OP_vkImportFenceWin32HandleKHR",
- 20232: "OP_vkGetFenceWin32HandleKHR",
- 20233: "OP_vkImportFenceFdKHR",
- 20234: "OP_vkGetFenceFdKHR",
- 299033148: "OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR",
- 282029987: "OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR",
- 238952296: "OP_vkAcquireProfilingLockKHR",
- 223904011: "OP_vkReleaseProfilingLockKHR",
- 20235: "OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR",
- 20236: "OP_vkGetPhysicalDeviceSurfaceFormats2KHR",
- 20237: "OP_vkGetPhysicalDeviceDisplayProperties2KHR",
- 20238: "OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR",
- 20239: "OP_vkGetDisplayModeProperties2KHR",
- 20240: "OP_vkGetDisplayPlaneCapabilities2KHR",
- 20241: "OP_vkGetImageMemoryRequirements2KHR",
- 20242: "OP_vkGetBufferMemoryRequirements2KHR",
- 20243: "OP_vkGetImageSparseMemoryRequirements2KHR",
- 20244: "OP_vkCreateSamplerYcbcrConversionKHR",
- 20245: "OP_vkDestroySamplerYcbcrConversionKHR",
- 20246: "OP_vkBindBufferMemory2KHR",
- 20247: "OP_vkBindImageMemory2KHR",
- 20248: "OP_vkGetDescriptorSetLayoutSupportKHR",
- 20249: "OP_vkCmdDrawIndirectCountKHR",
- 20250: "OP_vkCmdDrawIndexedIndirectCountKHR",
- 229059496: "OP_vkGetSemaphoreCounterValueKHR",
- 263904357: "OP_vkWaitSemaphoresKHR",
- 269919108: "OP_vkSignalSemaphoreKHR",
- 272978593: "OP_vkGetPhysicalDeviceFragmentShadingRatesKHR",
- 204060280: "OP_vkCmdSetFragmentShadingRateKHR",
- 219261480: "OP_vkGetBufferDeviceAddressKHR",
- 285631711: "OP_vkGetBufferOpaqueCaptureAddressKHR",
- 294671624: "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR",
- 274342644: "OP_vkCreateDeferredOperationKHR",
- 215419514: "OP_vkDestroyDeferredOperationKHR",
- 203387076: "OP_vkGetDeferredOperationMaxConcurrencyKHR",
- 263822960: "OP_vkGetDeferredOperationResultKHR",
- 218492930: "OP_vkDeferredOperationJoinKHR",
- 269458798: "OP_vkGetPipelineExecutablePropertiesKHR",
- 271191699: "OP_vkGetPipelineExecutableStatisticsKHR",
- 274148497: "OP_vkGetPipelineExecutableInternalRepresentationsKHR",
- 247893766: "OP_vkCmdCopyBuffer2KHR",
- 227008250: "OP_vkCmdCopyImage2KHR",
- 248841963: "OP_vkCmdCopyBufferToImage2KHR",
- 252249060: "OP_vkCmdCopyImageToBuffer2KHR",
- 259838288: "OP_vkCmdBlitImage2KHR",
- 254857232: "OP_vkCmdResolveImage2KHR",
- 20251: "OP_vkGetSwapchainGrallocUsageANDROID",
- 20252: "OP_vkAcquireImageANDROID",
- 20253: "OP_vkQueueSignalReleaseImageANDROID",
- 20254: "OP_vkCreateDebugReportCallbackEXT",
- 20255: "OP_vkDestroyDebugReportCallbackEXT",
- 20256: "OP_vkDebugReportMessageEXT",
- 20257: "OP_vkDebugMarkerSetObjectTagEXT",
- 20258: "OP_vkDebugMarkerSetObjectNameEXT",
- 20259: "OP_vkCmdDebugMarkerBeginEXT",
- 20260: "OP_vkCmdDebugMarkerEndEXT",
- 20261: "OP_vkCmdDebugMarkerInsertEXT",
- 267779978: "OP_vkCmdBindTransformFeedbackBuffersEXT",
- 294396901: "OP_vkCmdBeginTransformFeedbackEXT",
- 272333731: "OP_vkCmdEndTransformFeedbackEXT",
- 275810601: "OP_vkCmdBeginQueryIndexedEXT",
- 279821337: "OP_vkCmdEndQueryIndexedEXT",
- 285235943: "OP_vkCmdDrawIndirectByteCountEXT",
- 204379647: "OP_vkGetImageViewHandleNVX",
- 210668576: "OP_vkGetImageViewAddressNVX",
- 20262: "OP_vkCmdDrawIndirectCountAMD",
- 20263: "OP_vkCmdDrawIndexedIndirectCountAMD",
- 20264: "OP_vkGetShaderInfoAMD",
- 241902685: "OP_vkCreateStreamDescriptorSurfaceGGP",
- 20265: "OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV",
- 20266: "OP_vkGetMemoryWin32HandleNV",
- 20267: "OP_vkCreateViSurfaceNN",
- 20268: "OP_vkCmdBeginConditionalRenderingEXT",
- 20269: "OP_vkCmdEndConditionalRenderingEXT",
- 20279: "OP_vkCmdSetViewportWScalingNV",
- 20280: "OP_vkReleaseDisplayEXT",
- 20281: "OP_vkAcquireXlibDisplayEXT",
- 20282: "OP_vkGetRandROutputDisplayEXT",
- 20283: "OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT",
- 20284: "OP_vkDisplayPowerControlEXT",
- 20285: "OP_vkRegisterDeviceEventEXT",
- 20286: "OP_vkRegisterDisplayEventEXT",
- 20287: "OP_vkGetSwapchainCounterEXT",
- 20288: "OP_vkGetRefreshCycleDurationGOOGLE",
- 20289: "OP_vkGetPastPresentationTimingGOOGLE",
- 20290: "OP_vkCmdSetDiscardRectangleEXT",
- 20291: "OP_vkSetHdrMetadataEXT",
- 20292: "OP_vkCreateIOSSurfaceMVK",
- 20293: "OP_vkCreateMacOSSurfaceMVK",
- 20334: "OP_vkGetMTLDeviceMVK",
- 20335: "OP_vkSetMTLTextureMVK",
- 20336: "OP_vkGetMTLTextureMVK",
- 20337: "OP_vkGetMTLBufferMVK",
- 20338: "OP_vkUseIOSurfaceMVK",
- 20339: "OP_vkGetIOSurfaceMVK",
- 20294: "OP_vkSetDebugUtilsObjectNameEXT",
- 20295: "OP_vkSetDebugUtilsObjectTagEXT",
- 20296: "OP_vkQueueBeginDebugUtilsLabelEXT",
- 20297: "OP_vkQueueEndDebugUtilsLabelEXT",
- 20298: "OP_vkQueueInsertDebugUtilsLabelEXT",
- 20299: "OP_vkCmdBeginDebugUtilsLabelEXT",
- 20300: "OP_vkCmdEndDebugUtilsLabelEXT",
- 20301: "OP_vkCmdInsertDebugUtilsLabelEXT",
- 20302: "OP_vkCreateDebugUtilsMessengerEXT",
- 20303: "OP_vkDestroyDebugUtilsMessengerEXT",
- 20304: "OP_vkSubmitDebugUtilsMessageEXT",
- 20305: "OP_vkGetAndroidHardwareBufferPropertiesANDROID",
- 20306: "OP_vkGetMemoryAndroidHardwareBufferANDROID",
- 20307: "OP_vkCmdSetSampleLocationsEXT",
- 20308: "OP_vkGetPhysicalDeviceMultisamplePropertiesEXT",
- 251301237: "OP_vkGetImageDrmFormatModifierPropertiesEXT",
- 20309: "OP_vkCreateValidationCacheEXT",
- 20310: "OP_vkDestroyValidationCacheEXT",
- 20311: "OP_vkMergeValidationCachesEXT",
- 20312: "OP_vkGetValidationCacheDataEXT",
- 238618340: "OP_vkCmdBindShadingRateImageNV",
- 215295078: "OP_vkCmdSetViewportShadingRatePaletteNV",
- 236858637: "OP_vkCmdSetCoarseSampleOrderNV",
- 259713020: "OP_vkCreateAccelerationStructureNV",
- 252775746: "OP_vkDestroyAccelerationStructureNV",
- 220234370: "OP_vkGetAccelerationStructureMemoryRequirementsNV",
- 202856743: "OP_vkBindAccelerationStructureMemoryNV",
- 269050897: "OP_vkCmdBuildAccelerationStructureNV",
- 211075498: "OP_vkCmdCopyAccelerationStructureNV",
- 210219912: "OP_vkCmdTraceRaysNV",
- 203653638: "OP_vkCreateRayTracingPipelinesNV",
- 271962641: "OP_vkGetRayTracingShaderGroupHandlesKHR",
- 230045846: "OP_vkGetRayTracingShaderGroupHandlesNV",
- 269898134: "OP_vkGetAccelerationStructureHandleNV",
- 207954431: "OP_vkCmdWriteAccelerationStructuresPropertiesNV",
- 278731610: "OP_vkCompileDeferredNV",
- 20313: "OP_vkGetMemoryHostPointerPropertiesEXT",
- 20314: "OP_vkCmdWriteBufferMarkerAMD",
- 295643221: "OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT",
- 203583186: "OP_vkGetCalibratedTimestampsEXT",
- 207334931: "OP_vkCmdDrawMeshTasksNV",
- 274079208: "OP_vkCmdDrawMeshTasksIndirectNV",
- 223801967: "OP_vkCmdDrawMeshTasksIndirectCountNV",
- 225408194: "OP_vkCmdSetExclusiveScissorNV",
- 20315: "OP_vkCmdSetCheckpointNV",
- 20316: "OP_vkGetQueueCheckpointDataNV",
- 203336121: "OP_vkInitializePerformanceApiINTEL",
- 296137321: "OP_vkUninitializePerformanceApiINTEL",
- 270016385: "OP_vkCmdSetPerformanceMarkerINTEL",
- 261519634: "OP_vkCmdSetPerformanceStreamMarkerINTEL",
- 251310287: "OP_vkCmdSetPerformanceOverrideINTEL",
- 245737492: "OP_vkAcquirePerformanceConfigurationINTEL",
- 252877217: "OP_vkReleasePerformanceConfigurationINTEL",
- 294947726: "OP_vkQueueSetPerformanceConfigurationINTEL",
- 213620482: "OP_vkGetPerformanceParameterINTEL",
- 267533472: "OP_vkSetLocalDimmingAMD",
- 261626137: "OP_vkCreateImagePipeSurfaceFUCHSIA",
- 254915953: "OP_vkCreateMetalSurfaceEXT",
- 224361693: "OP_vkGetBufferDeviceAddressEXT",
- 282247593: "OP_vkGetPhysicalDeviceToolPropertiesEXT",
- 287711429: "OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV",
- 292032159: "OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV",
- 268126279: "OP_vkGetPhysicalDeviceSurfacePresentModes2EXT",
- 200946668: "OP_vkAcquireFullScreenExclusiveModeEXT",
- 257629142: "OP_vkReleaseFullScreenExclusiveModeEXT",
- 206369543: "OP_vkGetDeviceGroupSurfacePresentModes2EXT",
- 298411290: "OP_vkCreateHeadlessSurfaceEXT",
- 263855692: "OP_vkCmdSetLineStippleEXT",
- 242995959: "OP_vkResetQueryPoolEXT",
- 266285895: "OP_vkCmdSetCullModeEXT",
- 212644406: "OP_vkCmdSetFrontFaceEXT",
- 260783979: "OP_vkCmdSetPrimitiveTopologyEXT",
- 257105245: "OP_vkCmdSetViewportWithCountEXT",
- 204588120: "OP_vkCmdSetScissorWithCountEXT",
- 243419921: "OP_vkCmdBindVertexBuffers2EXT",
- 233771166: "OP_vkCmdSetDepthTestEnableEXT",
- 218663304: "OP_vkCmdSetDepthWriteEnableEXT",
- 247761589: "OP_vkCmdSetDepthCompareOpEXT",
- 223213519: "OP_vkCmdSetDepthBoundsTestEnableEXT",
- 286438749: "OP_vkCmdSetStencilTestEnableEXT",
- 277159578: "OP_vkCmdSetStencilOpEXT",
- 249047049: "OP_vkGetGeneratedCommandsMemoryRequirementsNV",
- 297624330: "OP_vkCmdPreprocessGeneratedCommandsNV",
- 234711184: "OP_vkCmdExecuteGeneratedCommandsNV",
- 270362239: "OP_vkCmdBindPipelineShaderGroupNV",
- 285310710: "OP_vkCreateIndirectCommandsLayoutNV",
- 292584135: "OP_vkDestroyIndirectCommandsLayoutNV",
- 236374049: "OP_vkCreatePrivateDataSlotEXT",
- 208891309: "OP_vkDestroyPrivateDataSlotEXT",
- 225259406: "OP_vkSetPrivateDataEXT",
- 291399427: "OP_vkGetPrivateDataEXT",
- 264649847: "OP_vkCmdSetFragmentShadingRateEnumNV",
- 220792403: "OP_vkCreateDirectFBSurfaceEXT",
- 285441990: "OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT",
- 20318: "OP_vkRegisterImageColorBufferGOOGLE",
- 20319: "OP_vkRegisterBufferColorBufferGOOGLE",
- 20317: "OP_vkMapMemoryIntoAddressSpaceGOOGLE",
- 20320: "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE",
- 20321: "OP_vkBeginCommandBufferAsyncGOOGLE",
- 20322: "OP_vkEndCommandBufferAsyncGOOGLE",
- 20323: "OP_vkResetCommandBufferAsyncGOOGLE",
- 20324: "OP_vkCommandBufferHostSyncGOOGLE",
- 20325: "OP_vkCreateImageWithRequirementsGOOGLE",
- 20326: "OP_vkCreateBufferWithRequirementsGOOGLE",
- 20327: "OP_vkGetMemoryHostAddressInfoGOOGLE",
- 20328: "OP_vkFreeMemorySyncGOOGLE",
- 20329: "OP_vkQueueHostSyncGOOGLE",
- 20330: "OP_vkQueueSubmitAsyncGOOGLE",
- 20331: "OP_vkQueueWaitIdleAsyncGOOGLE",
- 20332: "OP_vkQueueBindSparseAsyncGOOGLE",
- 20333: "OP_vkGetLinearImageLayoutGOOGLE",
- 20340: "OP_vkQueueFlushCommandsGOOGLE",
- 267932433: "OP_vkQueueCommitDescriptorSetUpdatesGOOGLE",
- 213659202: "OP_vkCollectDescriptorPoolIdsGOOGLE",
- 243985229: "OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE",
- 259403971: "OP_vkCreateAccelerationStructureKHR",
- 223971120: "OP_vkDestroyAccelerationStructureKHR",
- 272943905: "OP_vkCmdBuildAccelerationStructuresKHR",
- 258066143: "OP_vkCmdBuildAccelerationStructuresIndirectKHR",
- 241919567: "OP_vkBuildAccelerationStructuresKHR",
- 241495016: "OP_vkCopyAccelerationStructureKHR",
- 256139578: "OP_vkCopyAccelerationStructureToMemoryKHR",
- 261558680: "OP_vkCopyMemoryToAccelerationStructureKHR",
- 289745796: "OP_vkWriteAccelerationStructuresPropertiesKHR",
- 279460332: "OP_vkCmdCopyAccelerationStructureKHR",
- 223539733: "OP_vkCmdCopyAccelerationStructureToMemoryKHR",
- 203733963: "OP_vkCmdCopyMemoryToAccelerationStructureKHR",
- 223466148: "OP_vkGetAccelerationStructureDeviceAddressKHR",
- 271696183: "OP_vkCmdWriteAccelerationStructuresPropertiesKHR",
- 266386590: "OP_vkGetDeviceAccelerationStructureCompatibilityKHR",
- 219720024: "OP_vkGetAccelerationStructureBuildSizesKHR",
- 213680716: "OP_vkCmdTraceRaysKHR",
- 247628685: "OP_vkCreateRayTracingPipelinesKHR",
- 221334934: "OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR",
- 211788517: "OP_vkCmdTraceRaysIndirectKHR",
- 205271933: "OP_vkGetRayTracingShaderGroupStackSizeKHR",
- 260219604: "OP_vkCmdSetRayTracingPipelineStackSizeKHR",
-
- # From http://source/play-internal/battlestar/aosp/device/generic/vulkan-cereal/stream-servers/renderControl_dec/renderControl_opcodes.h
- 10000: "OP_rcGetRendererVersion",
- 10001: "OP_rcGetEGLVersion",
- 10002: "OP_rcQueryEGLString",
- 10003: "OP_rcGetGLString",
- 10004: "OP_rcGetNumConfigs",
- 10005: "OP_rcGetConfigs",
- 10006: "OP_rcChooseConfig",
- 10007: "OP_rcGetFBParam",
- 10008: "OP_rcCreateContext",
- 10009: "OP_rcDestroyContext",
- 10010: "OP_rcCreateWindowSurface",
- 10011: "OP_rcDestroyWindowSurface",
- 10012: "OP_rcCreateColorBuffer",
- 10013: "OP_rcOpenColorBuffer",
- 10014: "OP_rcCloseColorBuffer",
- 10015: "OP_rcSetWindowColorBuffer",
- 10016: "OP_rcFlushWindowColorBuffer",
- 10017: "OP_rcMakeCurrent",
- 10018: "OP_rcFBPost",
- 10019: "OP_rcFBSetSwapInterval",
- 10020: "OP_rcBindTexture",
- 10021: "OP_rcBindRenderbuffer",
- 10022: "OP_rcColorBufferCacheFlush",
- 10023: "OP_rcReadColorBuffer",
- 10024: "OP_rcUpdateColorBuffer",
- 10025: "OP_rcOpenColorBuffer2",
- 10026: "OP_rcCreateClientImage",
- 10027: "OP_rcDestroyClientImage",
- 10028: "OP_rcSelectChecksumHelper",
- 10029: "OP_rcCreateSyncKHR",
- 10030: "OP_rcClientWaitSyncKHR",
- 10031: "OP_rcFlushWindowColorBufferAsync",
- 10032: "OP_rcDestroySyncKHR",
- 10033: "OP_rcSetPuid",
- 10034: "OP_rcUpdateColorBufferDMA",
- 10035: "OP_rcCreateColorBufferDMA",
- 10036: "OP_rcWaitSyncKHR",
- 10037: "OP_rcCompose",
- 10038: "OP_rcCreateDisplay",
- 10039: "OP_rcDestroyDisplay",
- 10040: "OP_rcSetDisplayColorBuffer",
- 10041: "OP_rcGetDisplayColorBuffer",
- 10042: "OP_rcGetColorBufferDisplay",
- 10043: "OP_rcGetDisplayPose",
- 10044: "OP_rcSetDisplayPose",
- 10045: "OP_rcSetColorBufferVulkanMode",
- 10046: "OP_rcReadColorBufferYUV",
- 10047: "OP_rcIsSyncSignaled",
- 10048: "OP_rcCreateColorBufferWithHandle",
- 10049: "OP_rcCreateBuffer",
- 10050: "OP_rcCloseBuffer",
- 10051: "OP_rcSetColorBufferVulkanMode2",
- 10052: "OP_rcMapGpaToBufferHandle",
- 10053: "OP_rcCreateBuffer2",
- 10054: "OP_rcMapGpaToBufferHandle2",
- 10055: "OP_rcFlushWindowColorBufferAsyncWithFrameNumber",
- 10056: "OP_rcSetTracingForPuid",
- 10057: "OP_rcMakeCurrentAsync",
- 10058: "OP_rcComposeAsync",
- 10059: "OP_rcDestroySyncKHRAsync",
- 10060: "OP_rcComposeWithoutPost",
- 10061: "OP_rcComposeAsyncWithoutPost",
- 10062: "OP_rcCreateDisplayById",
- 10063: "OP_rcSetDisplayPoseDpi",
- 10064: "OP_rcReadColorBufferDMA",
-
- # From http://source/android/device/generic/vulkan-cereal/stream-servers/gles1_dec/gles1_opcodes.h
- 1024: "OP_glAlphaFunc",
- 1025: "OP_glClearColor",
- 1026: "OP_glClearDepthf",
- 1027: "OP_glClipPlanef",
- 1028: "OP_glColor4f",
- 1029: "OP_glDepthRangef",
- 1030: "OP_glFogf",
- 1031: "OP_glFogfv",
- 1032: "OP_glFrustumf",
- 1033: "OP_glGetClipPlanef",
- 1034: "OP_glGetFloatv",
- 1035: "OP_glGetLightfv",
- 1036: "OP_glGetMaterialfv",
- 1037: "OP_glGetTexEnvfv",
- 1038: "OP_glGetTexParameterfv",
- 1039: "OP_glLightModelf",
- 1040: "OP_glLightModelfv",
- 1041: "OP_glLightf",
- 1042: "OP_glLightfv",
- 1043: "OP_glLineWidth",
- 1044: "OP_glLoadMatrixf",
- 1045: "OP_glMaterialf",
- 1046: "OP_glMaterialfv",
- 1047: "OP_glMultMatrixf",
- 1048: "OP_glMultiTexCoord4f",
- 1049: "OP_glNormal3f",
- 1050: "OP_glOrthof",
- 1051: "OP_glPointParameterf",
- 1052: "OP_glPointParameterfv",
- 1053: "OP_glPointSize",
- 1054: "OP_glPolygonOffset",
- 1055: "OP_glRotatef",
- 1056: "OP_glScalef",
- 1057: "OP_glTexEnvf",
- 1058: "OP_glTexEnvfv",
- 1059: "OP_glTexParameterf",
- 1060: "OP_glTexParameterfv",
- 1061: "OP_glTranslatef",
- 1062: "OP_glActiveTexture",
- 1063: "OP_glAlphaFuncx",
- 1064: "OP_glBindBuffer",
- 1065: "OP_glBindTexture",
- 1066: "OP_glBlendFunc",
- 1067: "OP_glBufferData",
- 1068: "OP_glBufferSubData",
- 1069: "OP_glClear",
- 1070: "OP_glClearColorx",
- 1071: "OP_glClearDepthx",
- 1072: "OP_glClearStencil",
- 1073: "OP_glClientActiveTexture",
- 1074: "OP_glColor4ub",
- 1075: "OP_glColor4x",
- 1076: "OP_glColorMask",
- 1077: "OP_glColorPointer",
- 1078: "OP_glCompressedTexImage2D",
- 1079: "OP_glCompressedTexSubImage2D",
- 1080: "OP_glCopyTexImage2D",
- 1081: "OP_glCopyTexSubImage2D",
- 1082: "OP_glCullFace",
- 1083: "OP_glDeleteBuffers",
- 1084: "OP_glDeleteTextures",
- 1085: "OP_glDepthFunc",
- 1086: "OP_glDepthMask",
- 1087: "OP_glDepthRangex",
- 1088: "OP_glDisable",
- 1089: "OP_glDisableClientState",
- 1090: "OP_glDrawArrays",
- 1091: "OP_glDrawElements",
- 1092: "OP_glEnable",
- 1093: "OP_glEnableClientState",
- 1094: "OP_glFinish",
- 1095: "OP_glFlush",
- 1096: "OP_glFogx",
- 1097: "OP_glFogxv",
- 1098: "OP_glFrontFace",
- 1099: "OP_glFrustumx",
- 1100: "OP_glGetBooleanv",
- 1101: "OP_glGetBufferParameteriv",
- 1102: "OP_glClipPlanex",
- 1103: "OP_glGenBuffers",
- 1104: "OP_glGenTextures",
- 1105: "OP_glGetError",
- 1106: "OP_glGetFixedv",
- 1107: "OP_glGetIntegerv",
- 1108: "OP_glGetLightxv",
- 1109: "OP_glGetMaterialxv",
- 1110: "OP_glGetPointerv",
- 1111: "OP_glGetString",
- 1112: "OP_glGetTexEnviv",
- 1113: "OP_glGetTexEnvxv",
- 1114: "OP_glGetTexParameteriv",
- 1115: "OP_glGetTexParameterxv",
- 1116: "OP_glHint",
- 1117: "OP_glIsBuffer",
- 1118: "OP_glIsEnabled",
- 1119: "OP_glIsTexture",
- 1120: "OP_glLightModelx",
- 1121: "OP_glLightModelxv",
- 1122: "OP_glLightx",
- 1123: "OP_glLightxv",
- 1124: "OP_glLineWidthx",
- 1125: "OP_glLoadIdentity",
- 1126: "OP_glLoadMatrixx",
- 1127: "OP_glLogicOp",
- 1128: "OP_glMaterialx",
- 1129: "OP_glMaterialxv",
- 1130: "OP_glMatrixMode",
- 1131: "OP_glMultMatrixx",
- 1132: "OP_glMultiTexCoord4x",
- 1133: "OP_glNormal3x",
- 1134: "OP_glNormalPointer",
- 1135: "OP_glOrthox",
- 1136: "OP_glPixelStorei",
- 1137: "OP_glPointParameterx",
- 1138: "OP_glPointParameterxv",
- 1139: "OP_glPointSizex",
- 1140: "OP_glPolygonOffsetx",
- 1141: "OP_glPopMatrix",
- 1142: "OP_glPushMatrix",
- 1143: "OP_glReadPixels",
- 1144: "OP_glRotatex",
- 1145: "OP_glSampleCoverage",
- 1146: "OP_glSampleCoveragex",
- 1147: "OP_glScalex",
- 1148: "OP_glScissor",
- 1149: "OP_glShadeModel",
- 1150: "OP_glStencilFunc",
- 1151: "OP_glStencilMask",
- 1152: "OP_glStencilOp",
- 1153: "OP_glTexCoordPointer",
- 1154: "OP_glTexEnvi",
- 1155: "OP_glTexEnvx",
- 1156: "OP_glTexEnviv",
- 1157: "OP_glTexEnvxv",
- 1158: "OP_glTexImage2D",
- 1159: "OP_glTexParameteri",
- 1160: "OP_glTexParameterx",
- 1161: "OP_glTexParameteriv",
- 1162: "OP_glTexParameterxv",
- 1163: "OP_glTexSubImage2D",
- 1164: "OP_glTranslatex",
- 1165: "OP_glVertexPointer",
- 1166: "OP_glViewport",
- 1167: "OP_glPointSizePointerOES",
- 1168: "OP_glVertexPointerOffset",
- 1169: "OP_glColorPointerOffset",
- 1170: "OP_glNormalPointerOffset",
- 1171: "OP_glPointSizePointerOffset",
- 1172: "OP_glTexCoordPointerOffset",
- 1173: "OP_glWeightPointerOffset",
- 1174: "OP_glMatrixIndexPointerOffset",
- 1175: "OP_glVertexPointerData",
- 1176: "OP_glColorPointerData",
- 1177: "OP_glNormalPointerData",
- 1178: "OP_glTexCoordPointerData",
- 1179: "OP_glPointSizePointerData",
- 1180: "OP_glWeightPointerData",
- 1181: "OP_glMatrixIndexPointerData",
- 1182: "OP_glDrawElementsOffset",
- 1183: "OP_glDrawElementsData",
- 1184: "OP_glGetCompressedTextureFormats",
- 1185: "OP_glFinishRoundTrip",
- 1186: "OP_glBlendEquationSeparateOES",
- 1187: "OP_glBlendFuncSeparateOES",
- 1188: "OP_glBlendEquationOES",
- 1189: "OP_glDrawTexsOES",
- 1190: "OP_glDrawTexiOES",
- 1191: "OP_glDrawTexxOES",
- 1192: "OP_glDrawTexsvOES",
- 1193: "OP_glDrawTexivOES",
- 1194: "OP_glDrawTexxvOES",
- 1195: "OP_glDrawTexfOES",
- 1196: "OP_glDrawTexfvOES",
- 1197: "OP_glEGLImageTargetTexture2DOES",
- 1198: "OP_glEGLImageTargetRenderbufferStorageOES",
- 1199: "OP_glAlphaFuncxOES",
- 1200: "OP_glClearColorxOES",
- 1201: "OP_glClearDepthxOES",
- 1202: "OP_glClipPlanexOES",
- 1203: "OP_glClipPlanexIMG",
- 1204: "OP_glColor4xOES",
- 1205: "OP_glDepthRangexOES",
- 1206: "OP_glFogxOES",
- 1207: "OP_glFogxvOES",
- 1208: "OP_glFrustumxOES",
- 1209: "OP_glGetClipPlanexOES",
- 1210: "OP_glGetClipPlanex",
- 1211: "OP_glGetFixedvOES",
- 1212: "OP_glGetLightxvOES",
- 1213: "OP_glGetMaterialxvOES",
- 1214: "OP_glGetTexEnvxvOES",
- 1215: "OP_glGetTexParameterxvOES",
- 1216: "OP_glLightModelxOES",
- 1217: "OP_glLightModelxvOES",
- 1218: "OP_glLightxOES",
- 1219: "OP_glLightxvOES",
- 1220: "OP_glLineWidthxOES",
- 1221: "OP_glLoadMatrixxOES",
- 1222: "OP_glMaterialxOES",
- 1223: "OP_glMaterialxvOES",
- 1224: "OP_glMultMatrixxOES",
- 1225: "OP_glMultiTexCoord4xOES",
- 1226: "OP_glNormal3xOES",
- 1227: "OP_glOrthoxOES",
- 1228: "OP_glPointParameterxOES",
- 1229: "OP_glPointParameterxvOES",
- 1230: "OP_glPointSizexOES",
- 1231: "OP_glPolygonOffsetxOES",
- 1232: "OP_glRotatexOES",
- 1233: "OP_glSampleCoveragexOES",
- 1234: "OP_glScalexOES",
- 1235: "OP_glTexEnvxOES",
- 1236: "OP_glTexEnvxvOES",
- 1237: "OP_glTexParameterxOES",
- 1238: "OP_glTexParameterxvOES",
- 1239: "OP_glTranslatexOES",
- 1240: "OP_glIsRenderbufferOES",
- 1241: "OP_glBindRenderbufferOES",
- 1242: "OP_glDeleteRenderbuffersOES",
- 1243: "OP_glGenRenderbuffersOES",
- 1244: "OP_glRenderbufferStorageOES",
- 1245: "OP_glGetRenderbufferParameterivOES",
- 1246: "OP_glIsFramebufferOES",
- 1247: "OP_glBindFramebufferOES",
- 1248: "OP_glDeleteFramebuffersOES",
- 1249: "OP_glGenFramebuffersOES",
- 1250: "OP_glCheckFramebufferStatusOES",
- 1251: "OP_glFramebufferRenderbufferOES",
- 1252: "OP_glFramebufferTexture2DOES",
- 1253: "OP_glGetFramebufferAttachmentParameterivOES",
- 1254: "OP_glGenerateMipmapOES",
- 1255: "OP_glMapBufferOES",
- 1256: "OP_glUnmapBufferOES",
- 1257: "OP_glGetBufferPointervOES",
- 1258: "OP_glCurrentPaletteMatrixOES",
- 1259: "OP_glLoadPaletteFromModelViewMatrixOES",
- 1260: "OP_glMatrixIndexPointerOES",
- 1261: "OP_glWeightPointerOES",
- 1262: "OP_glQueryMatrixxOES",
- 1263: "OP_glDepthRangefOES",
- 1264: "OP_glFrustumfOES",
- 1265: "OP_glOrthofOES",
- 1266: "OP_glClipPlanefOES",
- 1267: "OP_glClipPlanefIMG",
- 1268: "OP_glGetClipPlanefOES",
- 1269: "OP_glClearDepthfOES",
- 1270: "OP_glTexGenfOES",
- 1271: "OP_glTexGenfvOES",
- 1272: "OP_glTexGeniOES",
- 1273: "OP_glTexGenivOES",
- 1274: "OP_glTexGenxOES",
- 1275: "OP_glTexGenxvOES",
- 1276: "OP_glGetTexGenfvOES",
- 1277: "OP_glGetTexGenivOES",
- 1278: "OP_glGetTexGenxvOES",
- 1279: "OP_glBindVertexArrayOES",
- 1280: "OP_glDeleteVertexArraysOES",
- 1281: "OP_glGenVertexArraysOES",
- 1282: "OP_glIsVertexArrayOES",
- 1283: "OP_glDiscardFramebufferEXT",
- 1284: "OP_glMultiDrawArraysEXT",
- 1285: "OP_glMultiDrawElementsEXT",
- 1286: "OP_glMultiDrawArraysSUN",
- 1287: "OP_glMultiDrawElementsSUN",
- 1288: "OP_glRenderbufferStorageMultisampleIMG",
- 1289: "OP_glFramebufferTexture2DMultisampleIMG",
- 1290: "OP_glDeleteFencesNV",
- 1291: "OP_glGenFencesNV",
- 1292: "OP_glIsFenceNV",
- 1293: "OP_glTestFenceNV",
- 1294: "OP_glGetFenceivNV",
- 1295: "OP_glFinishFenceNV",
- 1296: "OP_glSetFenceNV",
- 1297: "OP_glGetDriverControlsQCOM",
- 1298: "OP_glGetDriverControlStringQCOM",
- 1299: "OP_glEnableDriverControlQCOM",
- 1300: "OP_glDisableDriverControlQCOM",
- 1301: "OP_glExtGetTexturesQCOM",
- 1302: "OP_glExtGetBuffersQCOM",
- 1303: "OP_glExtGetRenderbuffersQCOM",
- 1304: "OP_glExtGetFramebuffersQCOM",
- 1305: "OP_glExtGetTexLevelParameterivQCOM",
- 1306: "OP_glExtTexObjectStateOverrideiQCOM",
- 1307: "OP_glExtGetTexSubImageQCOM",
- 1308: "OP_glExtGetBufferPointervQCOM",
- 1309: "OP_glExtGetShadersQCOM",
- 1310: "OP_glExtGetProgramsQCOM",
- 1311: "OP_glExtIsProgramBinaryQCOM",
- 1312: "OP_glExtGetProgramBinarySourceQCOM",
- 1313: "OP_glStartTilingQCOM",
- 1314: "OP_glEndTilingQCOM",
- 1315: "OP_glGetGraphicsResetStatusEXT",
- 1316: "OP_glReadnPixelsEXT",
-
- # From https://source.corp.google.com/android/device/generic/vulkan-cereal/stream-servers/gles2_dec/gles2_opcodes.h
- 2048: "OP_glActiveTexture",
- 2049: "OP_glAttachShader",
- 2050: "OP_glBindAttribLocation",
- 2051: "OP_glBindBuffer",
- 2052: "OP_glBindFramebuffer",
- 2053: "OP_glBindRenderbuffer",
- 2054: "OP_glBindTexture",
- 2055: "OP_glBlendColor",
- 2056: "OP_glBlendEquation",
- 2057: "OP_glBlendEquationSeparate",
- 2058: "OP_glBlendFunc",
- 2059: "OP_glBlendFuncSeparate",
- 2060: "OP_glBufferData",
- 2061: "OP_glBufferSubData",
- 2062: "OP_glCheckFramebufferStatus",
- 2063: "OP_glClear",
- 2064: "OP_glClearColor",
- 2065: "OP_glClearDepthf",
- 2066: "OP_glClearStencil",
- 2067: "OP_glColorMask",
- 2068: "OP_glCompileShader",
- 2069: "OP_glCompressedTexImage2D",
- 2070: "OP_glCompressedTexSubImage2D",
- 2071: "OP_glCopyTexImage2D",
- 2072: "OP_glCopyTexSubImage2D",
- 2073: "OP_glCreateProgram",
- 2074: "OP_glCreateShader",
- 2075: "OP_glCullFace",
- 2076: "OP_glDeleteBuffers",
- 2077: "OP_glDeleteFramebuffers",
- 2078: "OP_glDeleteProgram",
- 2079: "OP_glDeleteRenderbuffers",
- 2080: "OP_glDeleteShader",
- 2081: "OP_glDeleteTextures",
- 2082: "OP_glDepthFunc",
- 2083: "OP_glDepthMask",
- 2084: "OP_glDepthRangef",
- 2085: "OP_glDetachShader",
- 2086: "OP_glDisable",
- 2087: "OP_glDisableVertexAttribArray",
- 2088: "OP_glDrawArrays",
- 2089: "OP_glDrawElements",
- 2090: "OP_glEnable",
- 2091: "OP_glEnableVertexAttribArray",
- 2092: "OP_glFinish",
- 2093: "OP_glFlush",
- 2094: "OP_glFramebufferRenderbuffer",
- 2095: "OP_glFramebufferTexture2D",
- 2096: "OP_glFrontFace",
- 2097: "OP_glGenBuffers",
- 2098: "OP_glGenerateMipmap",
- 2099: "OP_glGenFramebuffers",
- 2100: "OP_glGenRenderbuffers",
- 2101: "OP_glGenTextures",
- 2102: "OP_glGetActiveAttrib",
- 2103: "OP_glGetActiveUniform",
- 2104: "OP_glGetAttachedShaders",
- 2105: "OP_glGetAttribLocation",
- 2106: "OP_glGetBooleanv",
- 2107: "OP_glGetBufferParameteriv",
- 2108: "OP_glGetError",
- 2109: "OP_glGetFloatv",
- 2110: "OP_glGetFramebufferAttachmentParameteriv",
- 2111: "OP_glGetIntegerv",
- 2112: "OP_glGetProgramiv",
- 2113: "OP_glGetProgramInfoLog",
- 2114: "OP_glGetRenderbufferParameteriv",
- 2115: "OP_glGetShaderiv",
- 2116: "OP_glGetShaderInfoLog",
- 2117: "OP_glGetShaderPrecisionFormat",
- 2118: "OP_glGetShaderSource",
- 2119: "OP_glGetString",
- 2120: "OP_glGetTexParameterfv",
- 2121: "OP_glGetTexParameteriv",
- 2122: "OP_glGetUniformfv",
- 2123: "OP_glGetUniformiv",
- 2124: "OP_glGetUniformLocation",
- 2125: "OP_glGetVertexAttribfv",
- 2126: "OP_glGetVertexAttribiv",
- 2127: "OP_glGetVertexAttribPointerv",
- 2128: "OP_glHint",
- 2129: "OP_glIsBuffer",
- 2130: "OP_glIsEnabled",
- 2131: "OP_glIsFramebuffer",
- 2132: "OP_glIsProgram",
- 2133: "OP_glIsRenderbuffer",
- 2134: "OP_glIsShader",
- 2135: "OP_glIsTexture",
- 2136: "OP_glLineWidth",
- 2137: "OP_glLinkProgram",
- 2138: "OP_glPixelStorei",
- 2139: "OP_glPolygonOffset",
- 2140: "OP_glReadPixels",
- 2141: "OP_glReleaseShaderCompiler",
- 2142: "OP_glRenderbufferStorage",
- 2143: "OP_glSampleCoverage",
- 2144: "OP_glScissor",
- 2145: "OP_glShaderBinary",
- 2146: "OP_glShaderSource",
- 2147: "OP_glStencilFunc",
- 2148: "OP_glStencilFuncSeparate",
- 2149: "OP_glStencilMask",
- 2150: "OP_glStencilMaskSeparate",
- 2151: "OP_glStencilOp",
- 2152: "OP_glStencilOpSeparate",
- 2153: "OP_glTexImage2D",
- 2154: "OP_glTexParameterf",
- 2155: "OP_glTexParameterfv",
- 2156: "OP_glTexParameteri",
- 2157: "OP_glTexParameteriv",
- 2158: "OP_glTexSubImage2D",
- 2159: "OP_glUniform1f",
- 2160: "OP_glUniform1fv",
- 2161: "OP_glUniform1i",
- 2162: "OP_glUniform1iv",
- 2163: "OP_glUniform2f",
- 2164: "OP_glUniform2fv",
- 2165: "OP_glUniform2i",
- 2166: "OP_glUniform2iv",
- 2167: "OP_glUniform3f",
- 2168: "OP_glUniform3fv",
- 2169: "OP_glUniform3i",
- 2170: "OP_glUniform3iv",
- 2171: "OP_glUniform4f",
- 2172: "OP_glUniform4fv",
- 2173: "OP_glUniform4i",
- 2174: "OP_glUniform4iv",
- 2175: "OP_glUniformMatrix2fv",
- 2176: "OP_glUniformMatrix3fv",
- 2177: "OP_glUniformMatrix4fv",
- 2178: "OP_glUseProgram",
- 2179: "OP_glValidateProgram",
- 2180: "OP_glVertexAttrib1f",
- 2181: "OP_glVertexAttrib1fv",
- 2182: "OP_glVertexAttrib2f",
- 2183: "OP_glVertexAttrib2fv",
- 2184: "OP_glVertexAttrib3f",
- 2185: "OP_glVertexAttrib3fv",
- 2186: "OP_glVertexAttrib4f",
- 2187: "OP_glVertexAttrib4fv",
- 2188: "OP_glVertexAttribPointer",
- 2189: "OP_glViewport",
- 2190: "OP_glEGLImageTargetTexture2DOES",
- 2191: "OP_glEGLImageTargetRenderbufferStorageOES",
- 2192: "OP_glGetProgramBinaryOES",
- 2193: "OP_glProgramBinaryOES",
- 2194: "OP_glMapBufferOES",
- 2195: "OP_glUnmapBufferOES",
- 2196: "OP_glTexImage3DOES",
- 2197: "OP_glTexSubImage3DOES",
- 2198: "OP_glCopyTexSubImage3DOES",
- 2199: "OP_glCompressedTexImage3DOES",
- 2200: "OP_glCompressedTexSubImage3DOES",
- 2201: "OP_glFramebufferTexture3DOES",
- 2202: "OP_glBindVertexArrayOES",
- 2203: "OP_glDeleteVertexArraysOES",
- 2204: "OP_glGenVertexArraysOES",
- 2205: "OP_glIsVertexArrayOES",
- 2206: "OP_glDiscardFramebufferEXT",
- 2207: "OP_glMultiDrawArraysEXT",
- 2208: "OP_glMultiDrawElementsEXT",
- 2209: "OP_glGetPerfMonitorGroupsAMD",
- 2210: "OP_glGetPerfMonitorCountersAMD",
- 2211: "OP_glGetPerfMonitorGroupStringAMD",
- 2212: "OP_glGetPerfMonitorCounterStringAMD",
- 2213: "OP_glGetPerfMonitorCounterInfoAMD",
- 2214: "OP_glGenPerfMonitorsAMD",
- 2215: "OP_glDeletePerfMonitorsAMD",
- 2216: "OP_glSelectPerfMonitorCountersAMD",
- 2217: "OP_glBeginPerfMonitorAMD",
- 2218: "OP_glEndPerfMonitorAMD",
- 2219: "OP_glGetPerfMonitorCounterDataAMD",
- 2220: "OP_glRenderbufferStorageMultisampleIMG",
- 2221: "OP_glFramebufferTexture2DMultisampleIMG",
- 2222: "OP_glDeleteFencesNV",
- 2223: "OP_glGenFencesNV",
- 2224: "OP_glIsFenceNV",
- 2225: "OP_glTestFenceNV",
- 2226: "OP_glGetFenceivNV",
- 2227: "OP_glFinishFenceNV",
- 2228: "OP_glSetFenceNV",
- 2229: "OP_glCoverageMaskNV",
- 2230: "OP_glCoverageOperationNV",
- 2231: "OP_glGetDriverControlsQCOM",
- 2232: "OP_glGetDriverControlStringQCOM",
- 2233: "OP_glEnableDriverControlQCOM",
- 2234: "OP_glDisableDriverControlQCOM",
- 2235: "OP_glExtGetTexturesQCOM",
- 2236: "OP_glExtGetBuffersQCOM",
- 2237: "OP_glExtGetRenderbuffersQCOM",
- 2238: "OP_glExtGetFramebuffersQCOM",
- 2239: "OP_glExtGetTexLevelParameterivQCOM",
- 2240: "OP_glExtTexObjectStateOverrideiQCOM",
- 2241: "OP_glExtGetTexSubImageQCOM",
- 2242: "OP_glExtGetBufferPointervQCOM",
- 2243: "OP_glExtGetShadersQCOM",
- 2244: "OP_glExtGetProgramsQCOM",
- 2245: "OP_glExtIsProgramBinaryQCOM",
- 2246: "OP_glExtGetProgramBinarySourceQCOM",
- 2247: "OP_glStartTilingQCOM",
- 2248: "OP_glEndTilingQCOM",
- 2249: "OP_glVertexAttribPointerData",
- 2250: "OP_glVertexAttribPointerOffset",
- 2251: "OP_glDrawElementsOffset",
- 2252: "OP_glDrawElementsData",
- 2253: "OP_glGetCompressedTextureFormats",
- 2254: "OP_glShaderString",
- 2255: "OP_glFinishRoundTrip",
- 2256: "OP_glGenVertexArrays",
- 2257: "OP_glBindVertexArray",
- 2258: "OP_glDeleteVertexArrays",
- 2259: "OP_glIsVertexArray",
- 2260: "OP_glMapBufferRange",
- 2261: "OP_glUnmapBuffer",
- 2262: "OP_glFlushMappedBufferRange",
- 2263: "OP_glMapBufferRangeAEMU",
- 2264: "OP_glUnmapBufferAEMU",
- 2265: "OP_glFlushMappedBufferRangeAEMU",
- 2266: "OP_glReadPixelsOffsetAEMU",
- 2267: "OP_glCompressedTexImage2DOffsetAEMU",
- 2268: "OP_glCompressedTexSubImage2DOffsetAEMU",
- 2269: "OP_glTexImage2DOffsetAEMU",
- 2270: "OP_glTexSubImage2DOffsetAEMU",
- 2271: "OP_glBindBufferRange",
- 2272: "OP_glBindBufferBase",
- 2273: "OP_glCopyBufferSubData",
- 2274: "OP_glClearBufferiv",
- 2275: "OP_glClearBufferuiv",
- 2276: "OP_glClearBufferfv",
- 2277: "OP_glClearBufferfi",
- 2278: "OP_glGetBufferParameteri64v",
- 2279: "OP_glGetBufferPointerv",
- 2280: "OP_glUniformBlockBinding",
- 2281: "OP_glGetUniformBlockIndex",
- 2282: "OP_glGetUniformIndices",
- 2283: "OP_glGetUniformIndicesAEMU",
- 2284: "OP_glGetActiveUniformBlockiv",
- 2285: "OP_glGetActiveUniformBlockName",
- 2286: "OP_glUniform1ui",
- 2287: "OP_glUniform2ui",
- 2288: "OP_glUniform3ui",
- 2289: "OP_glUniform4ui",
- 2290: "OP_glUniform1uiv",
- 2291: "OP_glUniform2uiv",
- 2292: "OP_glUniform3uiv",
- 2293: "OP_glUniform4uiv",
- 2294: "OP_glUniformMatrix2x3fv",
- 2295: "OP_glUniformMatrix3x2fv",
- 2296: "OP_glUniformMatrix2x4fv",
- 2297: "OP_glUniformMatrix4x2fv",
- 2298: "OP_glUniformMatrix3x4fv",
- 2299: "OP_glUniformMatrix4x3fv",
- 2300: "OP_glGetUniformuiv",
- 2301: "OP_glGetActiveUniformsiv",
- 2302: "OP_glVertexAttribI4i",
- 2303: "OP_glVertexAttribI4ui",
- 2304: "OP_glVertexAttribI4iv",
- 2305: "OP_glVertexAttribI4uiv",
- 2306: "OP_glVertexAttribIPointer",
- 2307: "OP_glVertexAttribIPointerOffsetAEMU",
- 2308: "OP_glVertexAttribIPointerDataAEMU",
- 2309: "OP_glGetVertexAttribIiv",
- 2310: "OP_glGetVertexAttribIuiv",
- 2311: "OP_glVertexAttribDivisor",
- 2312: "OP_glDrawArraysInstanced",
- 2313: "OP_glDrawElementsInstanced",
- 2314: "OP_glDrawElementsInstancedDataAEMU",
- 2315: "OP_glDrawElementsInstancedOffsetAEMU",
- 2316: "OP_glDrawRangeElements",
- 2317: "OP_glDrawRangeElementsDataAEMU",
- 2318: "OP_glDrawRangeElementsOffsetAEMU",
- 2319: "OP_glFenceSync",
- 2320: "OP_glClientWaitSync",
- 2321: "OP_glWaitSync",
- 2322: "OP_glDeleteSync",
- 2323: "OP_glIsSync",
- 2324: "OP_glGetSynciv",
- 2325: "OP_glFenceSyncAEMU",
- 2326: "OP_glClientWaitSyncAEMU",
- 2327: "OP_glWaitSyncAEMU",
- 2328: "OP_glDeleteSyncAEMU",
- 2329: "OP_glIsSyncAEMU",
- 2330: "OP_glGetSyncivAEMU",
- 2331: "OP_glDrawBuffers",
- 2332: "OP_glReadBuffer",
- 2333: "OP_glBlitFramebuffer",
- 2334: "OP_glInvalidateFramebuffer",
- 2335: "OP_glInvalidateSubFramebuffer",
- 2336: "OP_glFramebufferTextureLayer",
- 2337: "OP_glRenderbufferStorageMultisample",
- 2338: "OP_glTexStorage2D",
- 2339: "OP_glGetInternalformativ",
- 2340: "OP_glBeginTransformFeedback",
- 2341: "OP_glEndTransformFeedback",
- 2342: "OP_glGenTransformFeedbacks",
- 2343: "OP_glDeleteTransformFeedbacks",
- 2344: "OP_glBindTransformFeedback",
- 2345: "OP_glPauseTransformFeedback",
- 2346: "OP_glResumeTransformFeedback",
- 2347: "OP_glIsTransformFeedback",
- 2348: "OP_glTransformFeedbackVaryings",
- 2349: "OP_glTransformFeedbackVaryingsAEMU",
- 2350: "OP_glGetTransformFeedbackVarying",
- 2351: "OP_glGenSamplers",
- 2352: "OP_glDeleteSamplers",
- 2353: "OP_glBindSampler",
- 2354: "OP_glSamplerParameterf",
- 2355: "OP_glSamplerParameteri",
- 2356: "OP_glSamplerParameterfv",
- 2357: "OP_glSamplerParameteriv",
- 2358: "OP_glGetSamplerParameterfv",
- 2359: "OP_glGetSamplerParameteriv",
- 2360: "OP_glIsSampler",
- 2361: "OP_glGenQueries",
- 2362: "OP_glDeleteQueries",
- 2363: "OP_glBeginQuery",
- 2364: "OP_glEndQuery",
- 2365: "OP_glGetQueryiv",
- 2366: "OP_glGetQueryObjectuiv",
- 2367: "OP_glIsQuery",
- 2368: "OP_glProgramParameteri",
- 2369: "OP_glProgramBinary",
- 2370: "OP_glGetProgramBinary",
- 2371: "OP_glGetFragDataLocation",
- 2372: "OP_glGetInteger64v",
- 2373: "OP_glGetIntegeri_v",
- 2374: "OP_glGetInteger64i_v",
- 2375: "OP_glTexImage3D",
- 2376: "OP_glTexImage3DOffsetAEMU",
- 2377: "OP_glTexStorage3D",
- 2378: "OP_glTexSubImage3D",
- 2379: "OP_glTexSubImage3DOffsetAEMU",
- 2380: "OP_glCompressedTexImage3D",
- 2381: "OP_glCompressedTexImage3DOffsetAEMU",
- 2382: "OP_glCompressedTexSubImage3D",
- 2383: "OP_glCompressedTexSubImage3DOffsetAEMU",
- 2384: "OP_glCopyTexSubImage3D",
- 2385: "OP_glGetStringi",
- 2386: "OP_glGetBooleani_v",
- 2387: "OP_glMemoryBarrier",
- 2388: "OP_glMemoryBarrierByRegion",
- 2389: "OP_glGenProgramPipelines",
- 2390: "OP_glDeleteProgramPipelines",
- 2391: "OP_glBindProgramPipeline",
- 2392: "OP_glGetProgramPipelineiv",
- 2393: "OP_glGetProgramPipelineInfoLog",
- 2394: "OP_glValidateProgramPipeline",
- 2395: "OP_glIsProgramPipeline",
- 2396: "OP_glUseProgramStages",
- 2397: "OP_glActiveShaderProgram",
- 2398: "OP_glCreateShaderProgramv",
- 2399: "OP_glCreateShaderProgramvAEMU",
- 2400: "OP_glProgramUniform1f",
- 2401: "OP_glProgramUniform2f",
- 2402: "OP_glProgramUniform3f",
- 2403: "OP_glProgramUniform4f",
- 2404: "OP_glProgramUniform1i",
- 2405: "OP_glProgramUniform2i",
- 2406: "OP_glProgramUniform3i",
- 2407: "OP_glProgramUniform4i",
- 2408: "OP_glProgramUniform1ui",
- 2409: "OP_glProgramUniform2ui",
- 2410: "OP_glProgramUniform3ui",
- 2411: "OP_glProgramUniform4ui",
- 2412: "OP_glProgramUniform1fv",
- 2413: "OP_glProgramUniform2fv",
- 2414: "OP_glProgramUniform3fv",
- 2415: "OP_glProgramUniform4fv",
- 2416: "OP_glProgramUniform1iv",
- 2417: "OP_glProgramUniform2iv",
- 2418: "OP_glProgramUniform3iv",
- 2419: "OP_glProgramUniform4iv",
- 2420: "OP_glProgramUniform1uiv",
- 2421: "OP_glProgramUniform2uiv",
- 2422: "OP_glProgramUniform3uiv",
- 2423: "OP_glProgramUniform4uiv",
- 2424: "OP_glProgramUniformMatrix2fv",
- 2425: "OP_glProgramUniformMatrix3fv",
- 2426: "OP_glProgramUniformMatrix4fv",
- 2427: "OP_glProgramUniformMatrix2x3fv",
- 2428: "OP_glProgramUniformMatrix3x2fv",
- 2429: "OP_glProgramUniformMatrix2x4fv",
- 2430: "OP_glProgramUniformMatrix4x2fv",
- 2431: "OP_glProgramUniformMatrix3x4fv",
- 2432: "OP_glProgramUniformMatrix4x3fv",
- 2433: "OP_glGetProgramInterfaceiv",
- 2434: "OP_glGetProgramResourceiv",
- 2435: "OP_glGetProgramResourceIndex",
- 2436: "OP_glGetProgramResourceLocation",
- 2437: "OP_glGetProgramResourceName",
- 2438: "OP_glBindImageTexture",
- 2439: "OP_glDispatchCompute",
- 2440: "OP_glDispatchComputeIndirect",
- 2441: "OP_glBindVertexBuffer",
- 2442: "OP_glVertexAttribBinding",
- 2443: "OP_glVertexAttribFormat",
- 2444: "OP_glVertexAttribIFormat",
- 2445: "OP_glVertexBindingDivisor",
- 2446: "OP_glDrawArraysIndirect",
- 2447: "OP_glDrawArraysIndirectDataAEMU",
- 2448: "OP_glDrawArraysIndirectOffsetAEMU",
- 2449: "OP_glDrawElementsIndirect",
- 2450: "OP_glDrawElementsIndirectDataAEMU",
- 2451: "OP_glDrawElementsIndirectOffsetAEMU",
- 2452: "OP_glTexStorage2DMultisample",
- 2453: "OP_glSampleMaski",
- 2454: "OP_glGetMultisamplefv",
- 2455: "OP_glFramebufferParameteri",
- 2456: "OP_glGetFramebufferParameteriv",
- 2457: "OP_glGetTexLevelParameterfv",
- 2458: "OP_glGetTexLevelParameteriv",
- 2459: "OP_glMapBufferRangeDMA",
- 2460: "OP_glUnmapBufferDMA",
- 2461: "OP_glMapBufferRangeDirect",
- 2462: "OP_glUnmapBufferDirect",
- 2463: "OP_glFlushMappedBufferRangeDirect",
- 2464: "OP_glGetGraphicsResetStatusEXT",
- 2465: "OP_glReadnPixelsEXT",
- 2466: "OP_glGetnUniformfvEXT",
- 2467: "OP_glGetnUniformivEXT",
- 2468: "OP_glDrawArraysNullAEMU",
- 2469: "OP_glDrawElementsNullAEMU",
- 2470: "OP_glDrawElementsOffsetNullAEMU",
- 2471: "OP_glDrawElementsDataNullAEMU",
- 2472: "OP_glUnmapBufferAsyncAEMU",
- 2473: "OP_glFlushMappedBufferRangeAEMU2",
- 2474: "OP_glBufferDataSyncAEMU",
-}