diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2022-07-25 23:24:00 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-07-25 23:24:00 +0000 |
commit | 821579defb396c6ff5dba192ca6ee7a40b5bb054 (patch) | |
tree | 87623d8962c31641ad210171ff62979defdcc67a | |
parent | bc19742abb96204980bd65180fad6b52272a608f (diff) | |
parent | 17f97eb70a8147b5df0d188005303a121836102c (diff) | |
download | gfxstream-protocols-821579defb396c6ff5dba192ca6ee7a40b5bb054.tar.gz |
Merge "Adding tests to command_printer.py, and auto-generating decoding logic for more commands" am: 17f97eb70a
Original change: https://android-review.googlesource.com/c/platform/external/gfxstream-protocols/+/2163368
Change-Id: I36a3e688ec69982d1147454052b01492baf7c1e6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | registry/vulkan/scripts/cereal/api_log_decoder.py | 63 | ||||
-rw-r--r-- | scripts/print_gfx_logs/comand_printer_test.py | 771 | ||||
-rw-r--r-- | scripts/print_gfx_logs/command_printer.py | 47 | ||||
-rw-r--r-- | scripts/print_gfx_logs/vulkan_printer.py | 1603 |
4 files changed, 2468 insertions, 16 deletions
diff --git a/registry/vulkan/scripts/cereal/api_log_decoder.py b/registry/vulkan/scripts/cereal/api_log_decoder.py index c4c119f0..0e6aa642 100644 --- a/registry/vulkan/scripts/cereal/api_log_decoder.py +++ b/registry/vulkan/scripts/cereal/api_log_decoder.py @@ -16,10 +16,73 @@ class ApiLogDecoder(VulkanWrapperGenerator): # List of Vulkan APIs that we will generate decoding logic for generated_apis = [ + "vkAcquireImageANDROID", + "vkAllocateMemory", + "vkBeginCommandBufferAsyncGOOGLE", + "vkBindBufferMemory", + "vkBindImageMemory", "vkCmdBeginRenderPass", + "vkCmdBindDescriptorSets", + "vkCmdBindIndexBuffer", "vkCmdBindPipeline", + "vkCmdBindVertexBuffers", + "vkCmdClearAttachments", + "vkCmdClearColorImage", "vkCmdCopyBufferToImage", + "vkCmdCopyImageToBuffer", + "vkCmdDraw", + "vkCmdDrawIndexed", + "vkCmdEndRenderPass", "vkCmdPipelineBarrier", + "vkCmdSetScissor", + "vkCmdSetViewport", + "vkCollectDescriptorPoolIdsGOOGLE", + "vkCreateBufferWithRequirementsGOOGLE", + "vkCreateDescriptorPool", + "vkCreateDescriptorSetLayout", + "vkCreateFence", + "vkCreateFramebuffer", + "vkCreateGraphicsPipelines", + "vkCreateImageView", + "vkCreateImageWithRequirementsGOOGLE", + "vkCreatePipelineCache", + "vkCreateRenderPass", + "vkCreateSampler", + "vkCreateSemaphore", + "vkCreateShaderModule", + "vkDestroyBuffer", + "vkDestroyCommandPool", + "vkDestroyDescriptorPool", + "vkDestroyDescriptorSetLayout", + "vkDestroyDevice", + "vkDestroyFence", + "vkDestroyFramebuffer", + "vkDestroyImage", + "vkDestroyImageView", + "vkDestroyInstance", + "vkDestroyPipeline", + "vkDestroyPipelineCache", + "vkDestroyPipelineLayout", + "vkDestroyRenderPass", + "vkDestroySemaphore", + "vkDestroyShaderModule", + "vkEndCommandBufferAsyncGOOGLE", + "vkFreeCommandBuffers", + "vkFreeMemory", + "vkFreeMemorySyncGOOGLE", + "vkGetFenceStatus", + "vkGetMemoryHostAddressInfoGOOGLE", + "vkGetPhysicalDeviceFormatProperties", + "vkGetPhysicalDeviceProperties2KHR", + "vkGetPipelineCacheData", + "vkGetSwapchainGrallocUsageANDROID", + "vkQueueCommitDescriptorSetUpdatesGOOGLE", + "vkQueueFlushCommandsGOOGLE", + "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE", + "vkQueueSubmitAsyncGOOGLE", + "vkQueueWaitIdle", + "vkResetFences", + "vkWaitForFences", ] def __init__(self, module, typeInfo): diff --git a/scripts/print_gfx_logs/comand_printer_test.py b/scripts/print_gfx_logs/comand_printer_test.py new file mode 100644 index 00000000..70f68e43 --- /dev/null +++ b/scripts/print_gfx_logs/comand_printer_test.py @@ -0,0 +1,771 @@ +import io + +import unittest +from typing import Dict + +import opcodes +from scripts.print_gfx_logs import command_printer + +reverse_opcodes: Dict[str, int] = {v: k for k, v in opcodes.opcodes.items()} + + +class ComandPrinterOutputTestCase(unittest.TestCase): + """ + Tests individual aspects of the command printer logic. + """ + + def get_printer(self, hex_data: str): + """Helper function to return the command printer""" + out = io.StringIO() + buf = bytes.fromhex(hex_data) + cmd_printer = command_printer.CommandPrinter(0, len(buf), buf, 0, 0, out) + return cmd_printer, out + + def test_raises_if_not_all_bytes_decoded(self): + # Make a command printer with 5 bytes + cmd_printer, output = self.get_printer("01 02 03 04 05") + # Decode 4 of them + cmd_printer.write_int("foobar", size=4, indent=0) + self.assertRaises(BufferError, cmd_printer.check_no_more_bytes) + + def test_decode_int(self): + cmd_printer, output = self.get_printer("02 00 00 00") + r = cmd_printer.write_int("foobar", size=4, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(r, 2) + self.assertEqual(output.getvalue(), "foobar: 2\n") + + def test_decode_optional_int(self): + cmd_printer, output = self.get_printer("00 00 00 00 00 00 00 01 08") + r = cmd_printer.write_int("i", size=1, indent=0, optional=True) + cmd_printer.check_no_more_bytes() + self.assertEqual(r, 8) + self.assertEqual(output.getvalue(), "i: 8\n") + + def test_decode_missing_int(self): + cmd_printer, output = self.get_printer("00 00 00 00 00 00 00 00") + r = cmd_printer.write_int("i", size=1, indent=0, optional=True) + cmd_printer.check_no_more_bytes() + self.assertEqual(r, None) + self.assertEqual(output.getvalue(), "i: (null)\n") + + def test_decode_optional_repeated_int(self): + cmd_printer, output = self.get_printer("00 00 00 00 00 00 00 01 02 00 03 00") + cmd_printer.write_int("i", size=2, indent=0, optional=True, count=2) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), "i: [0x2, 0x3]\n") + + def test_decode_float(self): + cmd_printer, output = self.get_printer("00 00 00 3f") + cmd_printer.write_float("foo", indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), "foo: 0.5\n") + + def test_decode_repeated_float(self): + cmd_printer, output = self.get_printer("00 00 00 3f 00 00 80 3f") + cmd_printer.write_float("foo", indent=0, count=2) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), "foo: [0.5, 1.0]\n") + + def test_decode_null_terminated_string(self): + cmd_printer, output = self.get_printer("77 6f 72 6c 64 00") + cmd_printer.write_string("hello", indent=1, size=None) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), ' hello: "world"\n') + + def test_decode_fixed_size_string(self): + cmd_printer, output = self.get_printer("77 6f 72 6c 64 00 00 00") + cmd_printer.write_string("hello", indent=1, size=8) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), ' hello: "world"\n') + + def test_decode_enum(self): + enum = {1000156007: "FOOBAR"} + cmd_printer, output = self.get_printer("67 2B 9D 3B") + cmd_printer.write_enum("foo", enum, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), 'foo: FOOBAR (1000156007)\n') + + def test_decode_unknown_enum(self): + cmd_printer, output = self.get_printer("67 2B 9D 3B") + cmd_printer.write_enum("foo", {}, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), 'foo: (1000156007)\n') + + def test_decode_flags(self): + enum = {1: "FOO", 2: "BAR", 4: "BAZ"} + cmd_printer, output = self.get_printer("03 00 00 00") + cmd_printer.write_flags("foo", enum, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), 'foo: FOO | BAR (0x3)\n') + + def test_decode_unknown_flags(self): + enum = {1: "FOO", 2: "BAR", 4: "BAZ"} + cmd_printer, output = self.get_printer("0A 00 00 00") + cmd_printer.write_flags("foo", enum, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), 'foo: 0x8 | BAR (0xa)\n') + + def test_decode_all_flags(self): + enum = {1: "FOO", 2: "BAR", 4: "BAZ"} + cmd_printer, output = self.get_printer("ff ff ff ff") + cmd_printer.write_flags("foo", enum, indent=0) + cmd_printer.check_no_more_bytes() + self.assertEqual(output.getvalue(), 'foo: (all flags) (0xffffffff)\n') + + +class SuccessfullyDecodesCommandTestCase(unittest.TestCase): + """ + This test suite checks that we're able to successfully decode each command (but doesn't check + the exact output.) + Each command that we pretty print should have at least one test here (unless the command takes + no arguments). + + Please keep the test methods sorted in alphabetical order. + """ + + def run_test(self, opcode_str: str, cmd_data_hex: str): + opcode = reverse_opcodes[opcode_str] + cmd_data = bytes.fromhex(cmd_data_hex) + cmd_printer = command_printer.CommandPrinter(opcode, len(cmd_data), cmd_data, 0, 0) + cmd_printer.print_cmd() + + def test_OP_vkAcquireImageANDROID(self): + self.run_test("OP_vkAcquireImageANDROID", """ + e2 00 00 00 b8 08 00 00 02 00 03 00 e5 08 00 00 + 02 00 06 00 ff ff ff ff f3 08 00 00 02 00 17 00 + 00 00 00 00 00 00 00 00 + """) + + @unittest.skip("Needs support for struct extensions") + def test_OP_vkAllocateMemory(self): + self.run_test("OP_vkAllocateMemory", """ + d7 01 00 00 02 00 00 00 02 00 03 00 05 00 00 00 + 00 00 00 18 e8 a9 a0 3b e8 a9 a0 3b 00 00 00 00 + 0d 00 00 00 00 90 7e 00 00 00 00 00 07 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkBeginCommandBufferAsyncGOOGLE(self): + self.run_test("OP_vkBeginCommandBufferAsyncGOOGLE", """ + 2a 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkBindBufferMemory(self): + self.run_test("OP_vkBindBufferMemory", """ + cc 00 00 00 b8 08 00 00 02 00 03 00 e3 08 00 00 + 03 00 05 00 e4 08 00 00 02 00 07 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkBindImageMemory(self): + self.run_test("OP_vkBindImageMemory", """ + de 00 00 00 b8 08 00 00 02 00 03 00 f1 08 00 00 + 02 00 06 00 f2 08 00 00 02 00 07 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCmdBeginRenderPass(self): + self.run_test("OP_vkCmdBeginRenderPass", """ + 2b 00 00 00 00 00 00 00 65 0a 00 00 02 00 11 00 + e7 09 00 00 03 00 12 00 00 00 00 00 00 00 00 00 + c4 01 00 00 80 00 00 00 02 00 00 00 00 00 79 bd + 2d fe 70 70 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 80 3f 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCmdBindDescriptorSets(self): + self.run_test("OP_vkCmdBindDescriptorSets", """ + 00 00 00 00 c8 09 00 00 03 00 13 00 01 00 00 00 + 01 00 00 00 41 09 00 00 03 00 0d 00 02 00 00 00 + 00 03 00 00 00 00 00 00 + """) + + def test_OP_vkCmdBindIndexBuffer(self): + self.run_test("OP_vkCmdBindIndexBuffer", """ + a4 09 00 00 04 00 05 00 00 80 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCmdBindPipeline(self): + self.run_test("OP_vkCmdBindPipeline", """ + 00 00 00 00 ba 09 00 00 02 00 15 00 + """) + + def test_OP_vkCmdBindVertexBuffers(self): + self.run_test("OP_vkCmdBindVertexBuffers", """ + 00 00 00 00 03 00 00 00 a4 09 00 00 04 00 05 00 + a4 09 00 00 04 00 05 00 a4 09 00 00 04 00 05 00 + 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 + 0c 00 00 00 00 00 00 00 + """) + + def test_OP_vkCmdClearAttachments(self): + self.run_test("OP_vkCmdClearAttachments", """ + 01 00 00 00 06 00 00 00 00 00 00 00 00 00 80 3f + 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 + 00 00 00 00 01 00 00 00 + """) + + def test_OP_vkCmdClearColorImage(self): + self.run_test("OP_vkCmdClearColorImage", """ + e5 08 00 00 02 00 06 00 07 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 + 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 01 00 00 00 + """) + + def test_OP_vkCmdCopyBufferToImage(self): + self.run_test("OP_vkCmdCopyBufferToImage", """ + 9f 09 00 00 02 00 05 00 a1 09 00 00 02 00 06 00 + 07 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 40 0b 00 00 00 0a 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 40 0b 00 00 00 0a 00 00 01 00 00 00 + """) + + def test_OP_vkCmdCopyImageToBuffer(self): + self.run_test("OP_vkCmdCopyImageToBuffer", """ + 99 09 00 00 09 00 06 00 06 00 00 00 98 09 00 00 + 07 00 05 00 01 00 00 00 00 00 00 00 00 00 00 00 + 20 00 00 00 20 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 20 00 00 00 20 00 00 00 01 00 00 00 + """) + + def test_OP_vkCmdDraw(self): + self.run_test("OP_vkCmdDraw", """ + 06 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCmdDrawIndexed(self): + self.run_test("OP_vkCmdDrawIndexed", """ + 6c 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCmdPipelineBarrier(self): + self.run_test("OP_vkCmdPipelineBarrier", """ + 01 04 00 00 80 04 00 00 00 00 00 00 01 00 00 00 + 2e 00 00 00 00 00 00 00 00 01 00 00 a0 01 00 00 + 00 00 00 00 03 00 00 00 2d 00 00 00 00 00 00 00 + 00 01 00 00 20 00 00 00 02 00 00 00 05 00 00 00 + 00 00 00 00 00 00 00 00 d2 11 00 00 04 00 06 00 + 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 01 00 00 00 2d 00 00 00 00 00 00 00 00 01 00 00 + 20 00 00 00 02 00 00 00 05 00 00 00 00 00 00 00 + 00 00 00 00 ac 15 00 00 02 00 06 00 01 00 00 00 + 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 + 2d 00 00 00 00 00 00 00 00 01 00 00 20 00 00 00 + 02 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 + 9d 16 00 00 02 00 06 00 01 00 00 00 00 00 00 00 + 01 00 00 00 00 00 00 00 01 00 00 00 + """) + + def test_OP_vkCmdSetScissor(self): + self.run_test("OP_vkCmdSetScissor", """ + 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 40 0b 00 00 00 0a 00 00 + """) + + def test_OP_vkCmdSetViewport(self): + self.run_test("OP_vkCmdSetViewport", """ + 00 00 00 00 01 00 00 00 00 00 00 00 00 00 20 45 + 00 00 34 45 00 00 20 c5 00 00 00 00 00 00 80 3f + """) + + def test_OP_vkCollectDescriptorPoolIdsGOOGLE(self): + self.run_test("OP_vkCollectDescriptorPoolIdsGOOGLE", """ + c5 00 00 00 b8 08 00 00 02 00 03 00 c1 08 00 00 + 02 00 0c 00 10 00 00 00 00 00 79 bc 3d fd b6 40 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateBufferWithRequirementsGOOGLE(self): + self.run_test("OP_vkCreateBufferWithRequirementsGOOGLE", """ + 2b 00 00 00 b8 08 00 00 02 00 03 00 0c 00 00 00 + 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 + 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateDescriptorPool(self): + self.run_test("OP_vkCreateDescriptorPool", """ + e1 00 00 00 b7 15 00 00 03 00 03 00 21 00 00 00 + 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00 + 08 00 00 00 10 00 00 00 08 00 00 00 10 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateDescriptorSetLayout(self): + self.run_test("OP_vkCreateDescriptorSetLayout", """ + c3 00 00 00 b8 08 00 00 02 00 03 00 20 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 08 00 00 00 01 00 00 00 3f 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCreateFence(self): + self.run_test("OP_vkCreateFence", """ + e3 00 00 00 b8 08 00 00 02 00 03 00 08 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateFramebuffer(self): + self.run_test("OP_vkCreateFramebuffer", """ + 83 02 00 00 fb 08 00 00 02 00 03 00 25 00 00 00 + 00 00 00 00 00 00 00 00 65 0a 00 00 02 00 11 00 + 02 00 00 00 e8 09 00 00 03 00 09 00 e9 09 00 00 + 03 00 09 00 c4 01 00 00 80 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + @unittest.skip("Needs support for stream features hasRasterization / hasTessellation") + def test_OP_vkCreateGraphicsPipelines(self): + self.run_test("OP_vkCreateGraphicsPipelines", """ + 3b 01 00 00 fb 08 00 00 02 00 03 00 02 09 00 00 + 02 00 14 00 01 00 00 00 00 00 00 01 00 00 00 00 + 1c 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 + 12 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 + b7 09 00 00 02 00 0a 00 00 00 00 04 6d 61 69 6e + 00 00 79 bd 2d fd a3 60 05 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 04 01 00 00 00 + 04 00 00 00 00 00 00 00 00 00 00 04 02 00 00 00 + 08 00 00 00 00 00 00 00 00 00 00 04 03 00 00 00 + 0c 00 00 00 00 00 00 00 00 00 00 04 04 00 00 00 + 10 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 + 00 00 00 14 00 00 00 00 00 00 00 00 00 00 80 3f + 00 00 80 3f 00 00 00 00 12 00 00 00 00 00 00 00 + 00 00 00 00 10 00 00 00 b8 09 00 00 02 00 0a 00 + 00 00 00 04 6d 61 69 6e 00 00 79 bd 2d fd a3 f0 + 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 04 01 00 00 00 04 00 00 00 00 00 00 00 + 00 00 00 04 02 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 04 03 00 00 00 0c 00 00 00 00 00 00 00 + 00 00 00 04 04 00 00 00 10 00 00 00 00 00 00 00 + 00 00 00 04 00 00 00 00 00 00 00 14 00 00 00 00 + 00 00 00 00 00 00 80 3f 00 00 80 3f 00 00 00 00 + 00 00 79 bd 2d fd a4 78 13 00 00 00 00 00 00 00 + 00 00 00 00 02 00 00 00 00 00 00 00 08 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 02 00 00 00 00 00 00 00 00 00 00 00 67 00 00 00 + 00 00 00 00 01 00 00 00 01 00 00 00 67 00 00 00 + 00 00 00 00 00 00 79 bd 2d fd a4 e0 14 00 00 00 + 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 + 00 00 79 bd 2d fd a5 00 00 00 79 bd 2d fd a5 18 + 16 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 79 bd 2d fd a5 48 17 00 00 00 + 00 00 00 20 b9 bd 9e 3b b9 bd 9e 3b 00 00 00 18 + 31 aa 9e 3b 31 aa 9e 3b 00 00 00 18 62 37 9b 3b + 62 37 9b 3b 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 + 79 bd 2d fd a5 d8 18 00 00 00 00 00 00 00 00 00 + 00 00 01 00 00 00 00 00 00 00 00 00 80 3f 00 00 + 79 bd 2d fd a6 08 ff ff ff ff 00 00 00 00 00 00 + 00 00 00 00 79 bd 2d fd a6 10 19 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 07 00 00 00 ff 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 07 00 00 00 ff 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 79 bd 2d fd + a6 78 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 79 bb ee 02 + ea 20 1b 00 00 00 00 00 00 00 00 00 00 00 02 00 + 00 00 00 00 00 00 01 00 00 00 6b 09 00 00 02 00 + 13 00 b9 09 00 00 03 00 11 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateImageView(self): + self.run_test("OP_vkCreateImageView", """ + 3c 01 00 00 fb 08 00 00 02 00 03 00 0f 00 00 00 + 00 00 00 00 00 00 00 00 06 09 00 00 02 00 06 00 + 01 00 00 00 25 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + @unittest.skip("Needs support for struct extensions") + def test_OP_vkCreateImageWithRequirementsGOOGLE(self): + self.run_test("OP_vkCreateImageWithRequirementsGOOGLE", """ + d0 00 00 00 b8 08 00 00 02 00 03 00 0e 00 00 00 + 00 00 00 38 10 f1 9a 3b 10 f1 9a 3b 00 00 00 00 + 00 00 79 bd 2d fd df e8 0d 00 00 00 80 07 00 00 + 01 00 00 00 33 0b 00 00 06 09 00 00 00 00 00 00 + 66 02 00 00 00 00 00 00 00 00 00 00 01 00 00 00 + 25 00 00 00 80 07 00 00 38 04 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 + 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreatePipelineCache(self): + self.run_test("OP_vkCreatePipelineCache", """ + 38 01 00 00 fb 08 00 00 02 00 03 00 11 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkCreateRenderPass(self): + self.run_test("OP_vkCreateRenderPass", """ + 3a 01 00 00 fb 08 00 00 02 00 03 00 26 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 + 25 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 + 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCreateSampler(self): + self.run_test("OP_vkCreateSampler", """ + eb 00 00 00 b7 15 00 00 03 00 03 00 1f 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 + 00 00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 80 3f 00 00 00 00 + 03 00 00 00 00 00 00 00 00 00 80 3e 01 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkCreateSemaphore(self): + self.run_test("OP_vkCreateSemaphore", """ + d3 00 00 00 b8 08 00 00 02 00 03 00 09 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyBuffer(self): + self.run_test("OP_vkDestroyBuffer", """ + 2a 00 00 00 b8 08 00 00 02 00 03 00 c0 08 00 00 + 02 00 05 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyCommandPool(self): + self.run_test("OP_vkDestroyCommandPool", """ + fb 05 00 00 b1 0a 00 00 05 00 03 00 a3 0a 00 00 + 06 00 21 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyDescriptorPool(self): + self.run_test("OP_vkDestroyDescriptorPool", """ + 8b 01 00 00 fb 08 00 00 02 00 03 00 44 09 00 00 + 02 00 0c 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyDescriptorSetLayout(self): + self.run_test("OP_vkDestroyDescriptorSetLayout", """ + a3 01 00 00 fb 08 00 00 02 00 03 00 69 09 00 00 + 02 00 0b 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyDevice(self): + self.run_test("OP_vkDestroyDevice", """ + 00 06 00 00 b1 0a 00 00 05 00 03 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkDestroyFence(self): + self.run_test("OP_vkDestroyFence", """ + fc 05 00 00 b1 0a 00 00 05 00 03 00 b2 0a 00 00 + 05 00 16 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyFramebuffer(self): + self.run_test("OP_vkDestroyFramebuffer", """ + 61 01 00 00 fb 08 00 00 02 00 03 00 bc 09 00 00 + 02 00 12 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyImage(self): + self.run_test("OP_vkDestroyImage", """ + ee 00 00 00 b8 08 00 00 02 00 03 00 f1 08 00 00 + 02 00 06 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyImageView(self): + self.run_test("OP_vkDestroyImageView", """ + 60 01 00 00 fb 08 00 00 02 00 03 00 bb 09 00 00 + 02 00 09 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyInstance(self): + self.run_test("OP_vkDestroyInstance", """ + 01 06 00 00 e7 08 00 00 07 00 01 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkDestroyPipeline(self): + self.run_test("OP_vkDestroyPipeline", """ + cd 05 00 00 b1 0a 00 00 05 00 03 00 8a 0a 00 00 + 05 00 15 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyPipelineCache(self): + self.run_test("OP_vkDestroyPipelineCache", """ + 39 01 00 00 fb 08 00 00 02 00 03 00 b9 09 00 00 + 02 00 14 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyPipelineLayout(self): + self.run_test("OP_vkDestroyPipelineLayout", """ + a2 01 00 00 fb 08 00 00 02 00 03 00 6b 09 00 00 + 02 00 13 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyRenderPass(self): + self.run_test("OP_vkDestroyRenderPass", """ + 9f 01 00 00 fb 08 00 00 02 00 03 00 c2 09 00 00 + 02 00 11 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroySemaphore(self): + self.run_test("OP_vkDestroySemaphore", """ + f3 00 00 00 b8 08 00 00 02 00 03 00 f3 08 00 00 + 02 00 17 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkDestroyShaderModule(self): + self.run_test("OP_vkDestroyShaderModule", """ + 7e 01 00 00 fb 08 00 00 02 00 03 00 b7 09 00 00 + 02 00 0a 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkFreeCommandBuffers(self): + self.run_test("OP_vkFreeCommandBuffers", """ + f9 05 00 00 b1 0a 00 00 05 00 03 00 a3 0a 00 00 + 06 00 21 00 01 00 00 00 00 00 79 bb dd fe 4a b0 + ec 08 00 00 07 00 22 00 + """) + + def test_OP_vkFreeMemory(self): + self.run_test("OP_vkFreeMemory", """ + ef 00 00 00 b8 08 00 00 02 00 03 00 f2 08 00 00 + 02 00 07 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkFreeMemorySyncGOOGLE(self): + self.run_test("OP_vkFreeMemorySyncGOOGLE", """ + ff 05 00 00 b1 0a 00 00 05 00 03 00 74 0a 00 00 + 06 00 07 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkGetFenceStatus(self): + self.run_test("OP_vkGetFenceStatus", """ + e6 00 00 00 b8 08 00 00 02 00 03 00 f6 08 00 00 + 02 00 16 00 + """) + + def test_OP_vkGetMemoryHostAddressInfoGOOGLE(self): + self.run_test("OP_vkGetMemoryHostAddressInfoGOOGLE", """ + 01 01 00 00 5a 0c 00 00 05 00 03 00 5a 11 00 00 + 02 00 07 00 00 00 00 00 bd d3 07 f0 00 00 00 00 + 00 00 00 00 00 00 00 00 bd d3 07 f8 00 00 00 00 + 00 00 00 00 00 00 00 00 bd d3 08 00 00 00 00 00 + 00 00 00 00 + """) + + def test_OP_vkGetPhysicalDeviceFormatProperties(self): + self.run_test("OP_vkGetPhysicalDeviceFormatProperties", """ + 2f 00 00 00 b7 08 00 00 02 00 02 00 7c 00 00 00 + 00 00 00 00 00 00 00 00 ff ff ff ff + """) + + def test_OP_vkGetPhysicalDeviceProperties2KHR(self): + self.run_test("OP_vkGetPhysicalDeviceProperties2KHR", """ + cd 00 00 00 b7 08 00 00 02 00 02 00 79 b0 9b 3b + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkGetSwapchainGrallocUsageANDROID(self): + self.run_test("OP_vkGetSwapchainGrallocUsageANDROID", """ + cf 00 00 00 b8 08 00 00 02 00 03 00 25 00 00 00 + 97 00 00 00 00 00 00 00 + """) + + def test_OP_vkQueueCommitDescriptorSetUpdatesGOOGLE(self): + self.run_test("OP_vkQueueCommitDescriptorSetUpdatesGOOGLE", """ + bd 02 00 00 04 00 00 00 02 00 04 00 04 00 00 00 + 0b 00 00 00 02 00 0c 00 79 01 00 00 02 00 0c 00 + de 00 00 00 02 00 0c 00 8a 01 00 00 02 00 0c 00 + 07 00 00 00 0a 00 00 00 05 00 0b 00 31 00 00 00 + 02 00 0b 00 31 00 00 00 02 00 0b 00 44 01 00 00 + 02 00 0b 00 44 01 00 00 02 00 0b 00 44 01 00 00 + 02 00 0b 00 44 01 00 00 02 00 0b 00 1b 00 00 00 + 02 00 0d 00 89 01 00 00 02 00 0d 00 ee 00 00 00 + 02 00 0d 00 9a 01 00 00 02 00 0d 00 98 01 00 00 + 02 00 0d 00 99 01 00 00 02 00 0d 00 97 01 00 00 + 02 00 0d 00 00 00 00 00 01 00 00 00 02 00 00 00 + 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 + 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 + 01 00 00 00 03 00 00 00 05 00 00 00 06 00 00 00 + 07 00 00 00 08 00 00 00 09 00 00 00 23 00 00 00 + 00 00 00 00 1b 00 00 00 02 00 0d 00 00 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 00 00 00 74 3c ce b3 aa 50 bd 16 00 00 + 03 00 05 00 00 00 00 00 00 00 00 00 50 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 + 00 00 00 00 89 01 00 00 02 00 0d 00 00 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 00 00 00 74 3c ce b3 aa 68 a8 16 00 00 + 03 00 05 00 00 00 00 00 00 00 00 00 00 01 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 + 00 00 00 00 89 01 00 00 02 00 0d 00 01 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 00 00 00 74 3c ce b3 aa 80 2d 00 00 00 + 03 00 05 00 00 00 00 00 00 00 00 00 10 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 + 00 00 00 00 ee 00 00 00 02 00 0d 00 00 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 00 00 00 74 3c ce b3 aa 98 a8 16 00 00 + 03 00 05 00 00 00 00 00 00 00 00 00 00 01 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 + 00 00 00 00 ee 00 00 00 02 00 0d 00 01 00 00 00 + 00 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 + 00 00 00 00 00 00 74 3c ce b3 aa b0 a8 16 00 00 + 03 00 05 00 00 00 00 00 00 00 00 00 00 01 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 + 00 00 00 00 9a 01 00 00 02 00 0d 00 00 00 00 00 + 00 00 00 00 01 00 00 00 01 00 00 00 00 00 74 3c + ce b3 aa c8 c1 16 00 00 02 00 0e 00 be 16 00 00 + 02 00 09 00 05 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 + 98 01 00 00 02 00 0d 00 00 00 00 00 00 00 00 00 + 01 00 00 00 01 00 00 00 00 00 74 3c ce b3 aa e0 + c1 16 00 00 02 00 0e 00 c9 16 00 00 02 00 09 00 + 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 23 00 00 00 00 00 00 00 99 01 00 00 + 02 00 0d 00 00 00 00 00 00 00 00 00 01 00 00 00 + 01 00 00 00 00 00 74 3c ce b3 aa f8 c8 16 00 00 + 02 00 0e 00 c6 16 00 00 02 00 09 00 05 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 23 00 00 00 00 00 00 00 97 01 00 00 02 00 0d 00 + 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 + 00 00 74 3c ce b3 ab 10 c1 16 00 00 02 00 0e 00 + cc 16 00 00 02 00 09 00 05 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 + """) + + def test_OP_vkQueueFlushCommandsGOOGLE(self): + self.run_test("OP_vkQueueFlushCommandsGOOGLE", """ + e4 00 00 00 b9 08 00 00 02 00 04 00 be 08 00 00 + 02 00 22 00 18 01 00 00 00 00 00 00 + """) + + def test_OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(self): + self.run_test("OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE", """ + e7 00 00 00 b9 08 00 00 02 00 04 00 01 00 00 00 + 00 00 79 bd 0d fe c9 20 e8 08 00 00 02 00 17 00 + e5 08 00 00 02 00 06 00 + """) + + def test_OP_vkQueueSubmitAsyncGOOGLE(self): + self.run_test("OP_vkQueueSubmitAsyncGOOGLE", """ + c0 02 00 00 04 00 00 00 02 00 04 00 01 00 00 00 + 04 00 00 00 00 00 00 00 03 00 00 00 c0 16 00 00 + 02 00 17 00 cb 16 00 00 02 00 17 00 ce 16 00 00 + 02 00 17 00 00 00 01 00 00 00 01 00 00 00 01 00 + 01 00 00 00 08 00 00 00 02 00 22 00 00 00 00 00 + d1 16 00 00 02 00 16 00 + """) + + def test_OP_vkQueueWaitIdle(self): + self.run_test("OP_vkQueueWaitIdle", """ + f3 05 00 00 8f 09 00 00 06 00 04 00 + """) + + def test_OP_vkResetFences(self): + self.run_test("OP_vkResetFences", """ + 4f 01 00 00 fb 08 00 00 02 00 03 00 01 00 00 00 + c3 09 00 00 02 00 16 00 + """) + + def test_OP_vkWaitForFences(self): + self.run_test("OP_vkWaitForFences", """ + ed 00 00 00 b8 08 00 00 02 00 03 00 01 00 00 00 + 03 09 00 00 05 00 16 00 01 00 00 00 00 b0 8e f0 + 1b 00 00 00 + """) + + +if __name__ == '__main__': + unittest.main() diff --git a/scripts/print_gfx_logs/command_printer.py b/scripts/print_gfx_logs/command_printer.py index 3c6320a1..4c76cb24 100644 --- a/scripts/print_gfx_logs/command_printer.py +++ b/scripts/print_gfx_logs/command_printer.py @@ -1,4 +1,5 @@ import io +import sys import textwrap from typing import Dict, Optional import vulkan_printer @@ -9,12 +10,14 @@ import struct class CommandPrinter: """This class is responsible for printing the commands found in the minidump file to the terminal.""" - def __init__(self, opcode: int, original_size: int, data: bytes, stream_idx: int, cmd_idx: int): + def __init__(self, opcode: int, original_size: int, data: bytes, stream_idx: int, cmd_idx: int, + out=sys.stdout): self.opcode = opcode self.original_size = original_size self.data = io.BytesIO(data) self.stream_idx = stream_idx self.cmd_idx = cmd_idx + self.out = out def print_cmd(self): """ @@ -24,7 +27,7 @@ class CommandPrinter: # Print out the command name print("\n{}.{} - {}: ({} bytes)".format(self.stream_idx, self.cmd_idx, self.cmd_name(), - self.original_size - 8)) + self.original_size - 8), file=self.out) if len(self.data.getbuffer()) == 0: return @@ -36,17 +39,23 @@ class CommandPrinter: try: pretty_printer(self, indent=4) - # 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 command had {}".format( - self.data.tell(), len(self.data.getbuffer()))) + self.check_no_more_bytes() except Exception as ex: - print("Error while processing {}: {}".format(self.cmd_name(), repr(ex))) - print("Command raw data:") + print("Error while processing {}: {}".format(self.cmd_name(), repr(ex)), file=self.out) + print("Command raw data:", file=self.out) self.print_raw() raise ex + def check_no_more_bytes(self): + """ + Checks that we processed all the bytes, otherwise there's probably a bug in the decoding + logic + """ + if self.data.tell() != len(self.data.getbuffer()): + raise BufferError( + "Not all data was decoded. Decoded {} bytes but command had {}".format( + self.data.tell(), len(self.data.getbuffer()))) + def cmd_name(self) -> str: """Returns the command name (e.g.: "OP_vkBeginCommandBuffer", or the opcode as a string if unknown""" return opcodes.opcodes.get(self.opcode, str(self.opcode)) @@ -61,7 +70,7 @@ class CommandPrinter: lines = textwrap.wrap(hex, width=16 * 3 + indent, initial_indent=' ' * indent, subsequent_indent=' ' * indent) for l in lines: - print(l) + print(l, file=self.out) def read_bytes(self, size: int): buf = self.data.read(size) @@ -83,7 +92,7 @@ class CommandPrinter: """Prints a string at a given indentation level""" assert type(msg) == str assert type(indent) == int and indent >= 0 - print(" " * indent + msg, end='') + print(" " * indent + msg, end='', file=self.out) def write_int(self, field_name: str, @@ -139,12 +148,18 @@ class CommandPrinter: 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) + remaining_flags = flags = self.read_int(4) flags_list = [] - if flags != 0xffffffff: # When the value is set to all flags, don't bother listing them all + if remaining_flags == 0xffffffff: + # When the value is set to all flags, don't bother listing them all + flags_list.append("(all flags)") + else: for (value, flag) in enum.items(): - if value & flags: + if value & remaining_flags: + remaining_flags ^= value flags_list.append(flag) + if remaining_flags != 0: + flags_list.insert(0, "0x{:x}".format(remaining_flags)) self.write("{}: {} (0x{:x})\n".format(field_name, " | ".join(flags_list), flags), indent) def write_stype_and_pnext(self, expected_stype: str, indent: int): @@ -188,7 +203,7 @@ class CommandPrinter: Reads a null-terminated string from the stream. size: if specified, reads up to this many characters """ - buf = b'' + buf = bytearray() if size is not None: buf = self.read_bytes(size) buf = buf.rstrip(b'\x00') @@ -199,6 +214,6 @@ class CommandPrinter: c = self.read_int(1) if c == 0: break - buf += c + buf.append(c) self.write("{}: \"{}\"\n".format(field_name, buf.decode('utf-8')), indent) diff --git a/scripts/print_gfx_logs/vulkan_printer.py b/scripts/print_gfx_logs/vulkan_printer.py index 5cab8109..28732252 100644 --- a/scripts/print_gfx_logs/vulkan_printer.py +++ b/scripts/print_gfx_logs/vulkan_printer.py @@ -5,16 +5,91 @@ # To re-generate this file, run generate-vulkan-sources.sh ##################################################################################################### +def OP_vkAcquireImageANDROID(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + nativeFenceFd = printer.write_int("nativeFenceFd", 4, indent, signed=True, big_endian=False) + semaphore = printer.write_int("semaphore", 8, indent, signed=False, big_endian=False) + fence = printer.write_int("fence", 8, indent, signed=False, big_endian=False) + return + +def OP_vkAllocateMemory(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocateInfo", struct_VkMemoryAllocateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pMemory = printer.write_int("pMemory", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkBeginCommandBufferAsyncGOOGLE(printer, indent: int): + printer.write_struct("pBeginInfo", struct_VkCommandBufferBeginInfo, False, None, indent) + return + +def OP_vkBindBufferMemory(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + buffer = printer.write_int("buffer", 8, indent, signed=False, big_endian=False) + memory = printer.write_int("memory", 8, indent, signed=False, big_endian=False) + memoryOffset = printer.write_int("memoryOffset", 8, indent, signed=False, big_endian=False) + return + +def OP_vkBindImageMemory(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + memory = printer.write_int("memory", 8, indent, signed=False, big_endian=False) + memoryOffset = printer.write_int("memoryOffset", 8, indent, signed=False, big_endian=False) + return + def OP_vkCmdBeginRenderPass(printer, indent: int): printer.write_struct("pRenderPassBegin", struct_VkRenderPassBeginInfo, False, None, indent) printer.write_enum("contents", VkSubpassContents, indent) return +def OP_vkCmdBindDescriptorSets(printer, indent: int): + printer.write_enum("pipelineBindPoint", VkPipelineBindPoint, indent) + layout = printer.write_int("layout", 8, indent, signed=False, big_endian=False) + firstSet = printer.write_int("firstSet", 4, indent, signed=False, big_endian=False) + descriptorSetCount = printer.write_int("descriptorSetCount", 4, indent, signed=False, big_endian=False) + pDescriptorSets = printer.write_int("pDescriptorSets", 8, indent, optional=False, count=descriptorSetCount, big_endian=False) + dynamicOffsetCount = printer.write_int("dynamicOffsetCount", 4, indent, signed=False, big_endian=False) + pDynamicOffsets = printer.write_int("pDynamicOffsets", 4, indent, optional=False, count=dynamicOffsetCount, big_endian=False) + return + +def OP_vkCmdBindIndexBuffer(printer, indent: int): + buffer = printer.write_int("buffer", 8, indent, signed=False, big_endian=False) + offset = printer.write_int("offset", 8, indent, signed=False, big_endian=False) + printer.write_enum("indexType", VkIndexType, indent) + return + def OP_vkCmdBindPipeline(printer, indent: int): printer.write_enum("pipelineBindPoint", VkPipelineBindPoint, indent) pipeline = printer.write_int("pipeline", 8, indent, signed=False, big_endian=False) return +def OP_vkCmdBindVertexBuffers(printer, indent: int): + firstBinding = printer.write_int("firstBinding", 4, indent, signed=False, big_endian=False) + bindingCount = printer.write_int("bindingCount", 4, indent, signed=False, big_endian=False) + pBuffers = printer.write_int("pBuffers", 8, indent, optional=False, count=bindingCount, big_endian=False) + pOffsets = printer.write_int("pOffsets", 8, indent, optional=False, count=bindingCount, big_endian=False) + return + +def OP_vkCmdClearAttachments(printer, indent: int): + attachmentCount = printer.write_int("attachmentCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pAttachments", struct_VkClearAttachment, False, attachmentCount, indent) + rectCount = printer.write_int("rectCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pRects", struct_VkClearRect, False, rectCount, indent) + return + +def OP_vkCmdClearColorImage(printer, indent: int): + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + printer.write_enum("imageLayout", VkImageLayout, indent) + printer.write_struct("pColor", struct_VkClearColorValue, False, None, indent) + rangeCount = printer.write_int("rangeCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pRanges", struct_VkImageSubresourceRange, False, rangeCount, indent) + return + def OP_vkCmdCopyBufferToImage(printer, indent: int): srcBuffer = printer.write_int("srcBuffer", 8, indent, signed=False, big_endian=False) dstImage = printer.write_int("dstImage", 8, indent, signed=False, big_endian=False) @@ -23,6 +98,32 @@ def OP_vkCmdCopyBufferToImage(printer, indent: int): printer.write_struct("pRegions", struct_VkBufferImageCopy, False, regionCount, indent) return +def OP_vkCmdCopyImageToBuffer(printer, indent: int): + srcImage = printer.write_int("srcImage", 8, indent, signed=False, big_endian=False) + printer.write_enum("srcImageLayout", VkImageLayout, indent) + dstBuffer = printer.write_int("dstBuffer", 8, indent, signed=False, big_endian=False) + regionCount = printer.write_int("regionCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pRegions", struct_VkBufferImageCopy, False, regionCount, indent) + return + +def OP_vkCmdDraw(printer, indent: int): + vertexCount = printer.write_int("vertexCount", 4, indent, signed=False, big_endian=False) + instanceCount = printer.write_int("instanceCount", 4, indent, signed=False, big_endian=False) + firstVertex = printer.write_int("firstVertex", 4, indent, signed=False, big_endian=False) + firstInstance = printer.write_int("firstInstance", 4, indent, signed=False, big_endian=False) + return + +def OP_vkCmdDrawIndexed(printer, indent: int): + indexCount = printer.write_int("indexCount", 4, indent, signed=False, big_endian=False) + instanceCount = printer.write_int("instanceCount", 4, indent, signed=False, big_endian=False) + firstIndex = printer.write_int("firstIndex", 4, indent, signed=False, big_endian=False) + vertexOffset = printer.write_int("vertexOffset", 4, indent, signed=True, big_endian=False) + firstInstance = printer.write_int("firstInstance", 4, indent, signed=False, big_endian=False) + return + +def OP_vkCmdEndRenderPass(printer, indent: int): + return + def OP_vkCmdPipelineBarrier(printer, indent: int): srcStageMask = printer.write_int("srcStageMask", 4, indent, signed=False, big_endian=False) dstStageMask = printer.write_int("dstStageMask", 4, indent, signed=False, big_endian=False) @@ -35,6 +136,405 @@ def OP_vkCmdPipelineBarrier(printer, indent: int): printer.write_struct("pImageMemoryBarriers", struct_VkImageMemoryBarrier, False, imageMemoryBarrierCount, indent) return +def OP_vkCmdSetScissor(printer, indent: int): + firstScissor = printer.write_int("firstScissor", 4, indent, signed=False, big_endian=False) + scissorCount = printer.write_int("scissorCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pScissors", struct_VkRect2D, False, scissorCount, indent) + return + +def OP_vkCmdSetViewport(printer, indent: int): + firstViewport = printer.write_int("firstViewport", 4, indent, signed=False, big_endian=False) + viewportCount = printer.write_int("viewportCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pViewports", struct_VkViewport, False, viewportCount, indent) + return + +def OP_vkCollectDescriptorPoolIdsGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + descriptorPool = printer.write_int("descriptorPool", 8, indent, signed=False, big_endian=False) + pPoolIdCount = printer.write_int("pPoolIdCount", 4, indent, optional=False, count=None, big_endian=False) + pPoolIds = printer.write_int("pPoolIds", 8, indent, optional=True, count=pPoolIdCount, big_endian=False) + return + +def OP_vkCreateBufferWithRequirementsGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkBufferCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pBuffer = printer.write_int("pBuffer", 8, indent, optional=False, count=None, big_endian=False) + printer.write_struct("pMemoryRequirements", struct_VkMemoryRequirements, False, None, indent) + return + +def OP_vkCreateDescriptorPool(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkDescriptorPoolCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pDescriptorPool = printer.write_int("pDescriptorPool", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateDescriptorSetLayout(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkDescriptorSetLayoutCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pSetLayout = printer.write_int("pSetLayout", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateFence(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkFenceCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pFence = printer.write_int("pFence", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateFramebuffer(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkFramebufferCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pFramebuffer = printer.write_int("pFramebuffer", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateGraphicsPipelines(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + pipelineCache = printer.write_int("pipelineCache", 8, indent, signed=False, big_endian=False) + createInfoCount = printer.write_int("createInfoCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfos", struct_VkGraphicsPipelineCreateInfo, False, createInfoCount, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pPipelines = printer.write_int("pPipelines", 8, indent, optional=False, count=createInfoCount, big_endian=False) + return + +def OP_vkCreateImageView(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkImageViewCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pView = printer.write_int("pView", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateImageWithRequirementsGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkImageCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pImage = printer.write_int("pImage", 8, indent, optional=False, count=None, big_endian=False) + printer.write_struct("pMemoryRequirements", struct_VkMemoryRequirements, False, None, indent) + return + +def OP_vkCreatePipelineCache(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkPipelineCacheCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pPipelineCache = printer.write_int("pPipelineCache", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateRenderPass(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkRenderPassCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pRenderPass = printer.write_int("pRenderPass", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateSampler(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkSamplerCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pSampler = printer.write_int("pSampler", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateSemaphore(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkSemaphoreCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pSemaphore = printer.write_int("pSemaphore", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkCreateShaderModule(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pCreateInfo", struct_VkShaderModuleCreateInfo, False, None, indent) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + pShaderModule = printer.write_int("pShaderModule", 8, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkDestroyBuffer(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + buffer = printer.write_int("buffer", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyCommandPool(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + commandPool = printer.write_int("commandPool", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyDescriptorPool(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + descriptorPool = printer.write_int("descriptorPool", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyDescriptorSetLayout(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + descriptorSetLayout = printer.write_int("descriptorSetLayout", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyDevice(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyFence(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + fence = printer.write_int("fence", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyFramebuffer(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + framebuffer = printer.write_int("framebuffer", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyImage(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyImageView(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + imageView = printer.write_int("imageView", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyInstance(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + instance = printer.write_int("instance", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyPipeline(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + pipeline = printer.write_int("pipeline", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyPipelineCache(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + pipelineCache = printer.write_int("pipelineCache", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyPipelineLayout(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + pipelineLayout = printer.write_int("pipelineLayout", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyRenderPass(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + renderPass = printer.write_int("renderPass", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroySemaphore(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + semaphore = printer.write_int("semaphore", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkDestroyShaderModule(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + shaderModule = printer.write_int("shaderModule", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkEndCommandBufferAsyncGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + return + +def OP_vkFreeCommandBuffers(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + commandPool = printer.write_int("commandPool", 8, indent, signed=False, big_endian=False) + commandBufferCount = printer.write_int("commandBufferCount", 4, indent, signed=False, big_endian=False) + pCommandBuffers = printer.write_int("pCommandBuffers", 8, indent, optional=True, count=commandBufferCount, big_endian=False) + return + +def OP_vkFreeMemory(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + memory = printer.write_int("memory", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkFreeMemorySyncGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + memory = printer.write_int("memory", 8, indent, signed=False, big_endian=False) + printer.write_struct("pAllocator", struct_VkAllocationCallbacks, True, None, indent) + return + +def OP_vkGetFenceStatus(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + fence = printer.write_int("fence", 8, indent, signed=False, big_endian=False) + return + +def OP_vkGetMemoryHostAddressInfoGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + memory = printer.write_int("memory", 8, indent, signed=False, big_endian=False) + pAddress = printer.write_int("pAddress", 8, indent, optional=True, count=None, big_endian=False) + pSize = printer.write_int("pSize", 8, indent, optional=True, count=None, big_endian=False) + pHostmemId = printer.write_int("pHostmemId", 8, indent, optional=True, count=None, big_endian=False) + return + +def OP_vkGetPhysicalDeviceFormatProperties(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + physicalDevice = printer.write_int("physicalDevice", 8, indent, signed=False, big_endian=False) + printer.write_enum("format", VkFormat, indent) + printer.write_struct("pFormatProperties", struct_VkFormatProperties, False, None, indent) + return + +def OP_vkGetPhysicalDeviceProperties2KHR(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + physicalDevice = printer.write_int("physicalDevice", 8, indent, signed=False, big_endian=False) + printer.write_struct("pProperties", struct_VkPhysicalDeviceProperties2, False, None, indent) + return + +def OP_vkGetPipelineCacheData(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + pipelineCache = printer.write_int("pipelineCache", 8, indent, signed=False, big_endian=False) + pDataSize = printer.write_int("pDataSize", 8, indent, optional=True, count=None, big_endian=True) + pData = printer.write_int("pData", 8, indent, optional=True, count=pDataSize, big_endian=False) + return + +def OP_vkGetSwapchainGrallocUsageANDROID(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + printer.write_enum("format", VkFormat, indent) + imageUsage = printer.write_int("imageUsage", 4, indent, signed=False, big_endian=False) + grallocUsage = printer.write_int("grallocUsage", 4, indent, optional=False, count=None, big_endian=False) + return + +def OP_vkQueueCommitDescriptorSetUpdatesGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + queue = printer.write_int("queue", 8, indent, signed=False, big_endian=False) + descriptorPoolCount = printer.write_int("descriptorPoolCount", 4, indent, signed=False, big_endian=False) + pDescriptorPools = printer.write_int("pDescriptorPools", 8, indent, optional=False, count=descriptorPoolCount, big_endian=False) + descriptorSetCount = printer.write_int("descriptorSetCount", 4, indent, signed=False, big_endian=False) + pSetLayouts = printer.write_int("pSetLayouts", 8, indent, optional=False, count=descriptorSetCount, big_endian=False) + pDescriptorSetPoolIds = printer.write_int("pDescriptorSetPoolIds", 8, indent, optional=False, count=descriptorSetCount, big_endian=False) + pDescriptorSetWhichPool = printer.write_int("pDescriptorSetWhichPool", 4, indent, optional=False, count=descriptorSetCount, big_endian=False) + pDescriptorSetPendingAllocation = printer.write_int("pDescriptorSetPendingAllocation", 4, indent, optional=False, count=descriptorSetCount, big_endian=False) + pDescriptorWriteStartingIndices = printer.write_int("pDescriptorWriteStartingIndices", 4, indent, optional=False, count=descriptorSetCount, big_endian=False) + pendingDescriptorWriteCount = printer.write_int("pendingDescriptorWriteCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pPendingDescriptorWrites", struct_VkWriteDescriptorSet, False, pendingDescriptorWriteCount, indent) + return + +def OP_vkQueueFlushCommandsGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + queue = printer.write_int("queue", 8, indent, signed=False, big_endian=False) + commandBuffer = printer.write_int("commandBuffer", 8, indent, signed=False, big_endian=False) + dataSize = printer.write_int("dataSize", 8, indent, signed=False, big_endian=False) + return + +def OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + queue = printer.write_int("queue", 8, indent, signed=False, big_endian=False) + waitSemaphoreCount = printer.write_int("waitSemaphoreCount", 4, indent, signed=False, big_endian=False) + pWaitSemaphores = printer.write_int("pWaitSemaphores", 8, indent, optional=True, count=waitSemaphoreCount, big_endian=False) + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + return + +def OP_vkQueueSubmitAsyncGOOGLE(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + queue = printer.write_int("queue", 8, indent, signed=False, big_endian=False) + submitCount = printer.write_int("submitCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pSubmits", struct_VkSubmitInfo, False, submitCount, indent) + fence = printer.write_int("fence", 8, indent, signed=False, big_endian=False) + return + +def OP_vkQueueWaitIdle(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + queue = printer.write_int("queue", 8, indent, signed=False, big_endian=False) + return + +def OP_vkResetFences(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + fenceCount = printer.write_int("fenceCount", 4, indent, signed=False, big_endian=False) + pFences = printer.write_int("pFences", 8, indent, optional=False, count=fenceCount, big_endian=False) + return + +def OP_vkWaitForFences(printer, indent: int): + printer.write_int("seqno: ", 4, indent) + device = printer.write_int("device", 8, indent, signed=False, big_endian=False) + fenceCount = printer.write_int("fenceCount", 4, indent, signed=False, big_endian=False) + pFences = printer.write_int("pFences", 8, indent, optional=False, count=fenceCount, big_endian=False) + waitAll = printer.write_int("waitAll", 4, indent, signed=False, big_endian=False) + timeout = printer.write_int("timeout", 8, indent, signed=False, big_endian=False) + return + +def struct_VkAllocationCallbacks(printer, indent: int): + pUserData = printer.write_int("pUserData", 8, indent, optional=True, count=None, big_endian=False) + pfnAllocation = printer.write_int("pfnAllocation", 8, indent, signed=False, big_endian=False) + pfnReallocation = printer.write_int("pfnReallocation", 8, indent, signed=False, big_endian=False) + pfnFree = printer.write_int("pfnFree", 8, indent, signed=False, big_endian=False) + pfnInternalAllocation = printer.write_int("pfnInternalAllocation", 8, indent, signed=False, big_endian=False) + pfnInternalFree = printer.write_int("pfnInternalFree", 8, indent, signed=False, big_endian=False) + +def struct_VkAttachmentDescription(printer, indent: int): + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("format", VkFormat, indent) + printer.write_enum("samples", VkSampleCountFlagBits, indent) + printer.write_enum("loadOp", VkAttachmentLoadOp, indent) + printer.write_enum("storeOp", VkAttachmentStoreOp, indent) + printer.write_enum("stencilLoadOp", VkAttachmentLoadOp, indent) + printer.write_enum("stencilStoreOp", VkAttachmentStoreOp, indent) + printer.write_enum("initialLayout", VkImageLayout, indent) + printer.write_enum("finalLayout", VkImageLayout, indent) + +def struct_VkAttachmentReference(printer, indent: int): + attachment = printer.write_int("attachment", 4, indent, signed=False, big_endian=False) + printer.write_enum("layout", VkImageLayout, indent) + +def struct_VkBufferCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + size = printer.write_int("size", 8, indent, signed=False, big_endian=False) + usage = printer.write_int("usage", 4, indent, signed=False, big_endian=False) + printer.write_enum("sharingMode", VkSharingMode, indent) + queueFamilyIndexCount = printer.write_int("queueFamilyIndexCount", 4, indent, signed=False, big_endian=False) + pQueueFamilyIndices = printer.write_int("pQueueFamilyIndices", 4, indent, optional=True, count=queueFamilyIndexCount, big_endian=False) + def struct_VkBufferImageCopy(printer, indent: int): bufferOffset = printer.write_int("bufferOffset", 8, indent, signed=False, big_endian=False) bufferRowLength = printer.write_int("bufferRowLength", 4, indent, signed=False, big_endian=False) @@ -53,12 +553,76 @@ def struct_VkBufferMemoryBarrier(printer, indent: int): 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_VkClearAttachment(printer, indent: int): + aspectMask = printer.write_int("aspectMask", 4, indent, signed=False, big_endian=False) + colorAttachment = printer.write_int("colorAttachment", 4, indent, signed=False, big_endian=False) + printer.write_struct("clearValue", struct_VkClearValue, False, None, indent) + def struct_VkClearColorValue(printer, indent: int): printer.write_float("float32", indent, count=4) +def struct_VkClearRect(printer, indent: int): + printer.write_struct("rect", struct_VkRect2D, False, None, indent) + 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_VkClearValue(printer, indent: int): printer.write_struct("color", struct_VkClearColorValue, False, None, indent) +def struct_VkCommandBufferBeginInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_struct("pInheritanceInfo", struct_VkCommandBufferInheritanceInfo, True, None, indent) + +def struct_VkCommandBufferInheritanceInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO", indent) + renderPass = printer.write_int("renderPass", 8, indent, signed=False, big_endian=False) + subpass = printer.write_int("subpass", 4, indent, signed=False, big_endian=False) + framebuffer = printer.write_int("framebuffer", 8, indent, signed=False, big_endian=False) + occlusionQueryEnable = printer.write_int("occlusionQueryEnable", 4, indent, signed=False, big_endian=False) + queryFlags = printer.write_int("queryFlags", 4, indent, signed=False, big_endian=False) + pipelineStatistics = printer.write_int("pipelineStatistics", 4, indent, signed=False, big_endian=False) + +def struct_VkComponentMapping(printer, indent: int): + printer.write_enum("r", VkComponentSwizzle, indent) + printer.write_enum("g", VkComponentSwizzle, indent) + printer.write_enum("b", VkComponentSwizzle, indent) + printer.write_enum("a", VkComponentSwizzle, indent) + +def struct_VkDescriptorBufferInfo(printer, indent: int): + buffer = printer.write_int("buffer", 8, indent, signed=False, big_endian=False) + offset = printer.write_int("offset", 8, indent, signed=False, big_endian=False) + range = printer.write_int("range", 8, indent, signed=False, big_endian=False) + +def struct_VkDescriptorImageInfo(printer, indent: int): + sampler = printer.write_int("sampler", 8, indent, signed=False, big_endian=False) + imageView = printer.write_int("imageView", 8, indent, signed=False, big_endian=False) + printer.write_enum("imageLayout", VkImageLayout, indent) + +def struct_VkDescriptorPoolCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + maxSets = printer.write_int("maxSets", 4, indent, signed=False, big_endian=False) + poolSizeCount = printer.write_int("poolSizeCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pPoolSizes", struct_VkDescriptorPoolSize, False, poolSizeCount, indent) + +def struct_VkDescriptorPoolSize(printer, indent: int): + printer.write_enum("type", VkDescriptorType, indent) + descriptorCount = printer.write_int("descriptorCount", 4, indent, signed=False, big_endian=False) + +def struct_VkDescriptorSetLayoutBinding(printer, indent: int): + binding = printer.write_int("binding", 4, indent, signed=False, big_endian=False) + printer.write_enum("descriptorType", VkDescriptorType, indent) + descriptorCount = printer.write_int("descriptorCount", 4, indent, signed=False, big_endian=False) + stageFlags = printer.write_int("stageFlags", 4, indent, signed=False, big_endian=False) + pImmutableSamplers = printer.write_int("pImmutableSamplers", 8, indent, optional=True, count=descriptorCount, big_endian=False) + +def struct_VkDescriptorSetLayoutCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + bindingCount = printer.write_int("bindingCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pBindings", struct_VkDescriptorSetLayoutBinding, False, bindingCount, 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) @@ -68,6 +632,61 @@ def struct_VkExtent3D(printer, indent: int): 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_VkFenceCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + +def struct_VkFormatProperties(printer, indent: int): + linearTilingFeatures = printer.write_int("linearTilingFeatures", 4, indent, signed=False, big_endian=False) + optimalTilingFeatures = printer.write_int("optimalTilingFeatures", 4, indent, signed=False, big_endian=False) + bufferFeatures = printer.write_int("bufferFeatures", 4, indent, signed=False, big_endian=False) + +def struct_VkFramebufferCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + renderPass = printer.write_int("renderPass", 8, indent, signed=False, big_endian=False) + attachmentCount = printer.write_int("attachmentCount", 4, indent, signed=False, big_endian=False) + pAttachments = printer.write_int("pAttachments", 8, indent, optional=False, count=attachmentCount, big_endian=False) + width = printer.write_int("width", 4, indent, signed=False, big_endian=False) + height = printer.write_int("height", 4, indent, signed=False, big_endian=False) + layers = printer.write_int("layers", 4, indent, signed=False, big_endian=False) + +def struct_VkGraphicsPipelineCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + stageCount = printer.write_int("stageCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pStages", struct_VkPipelineShaderStageCreateInfo, False, stageCount, indent) + printer.write_struct("pVertexInputState", struct_VkPipelineVertexInputStateCreateInfo, True, None, indent) + printer.write_struct("pInputAssemblyState", struct_VkPipelineInputAssemblyStateCreateInfo, True, None, indent) + printer.write_struct("pTessellationState", struct_VkPipelineTessellationStateCreateInfo, True, None, indent) + printer.write_struct("pViewportState", struct_VkPipelineViewportStateCreateInfo, True, None, indent) + printer.write_struct("pRasterizationState", struct_VkPipelineRasterizationStateCreateInfo, True, None, indent) + printer.write_struct("pMultisampleState", struct_VkPipelineMultisampleStateCreateInfo, True, None, indent) + printer.write_struct("pDepthStencilState", struct_VkPipelineDepthStencilStateCreateInfo, True, None, indent) + printer.write_struct("pColorBlendState", struct_VkPipelineColorBlendStateCreateInfo, True, None, indent) + printer.write_struct("pDynamicState", struct_VkPipelineDynamicStateCreateInfo, True, None, indent) + layout = printer.write_int("layout", 8, indent, signed=False, big_endian=False) + renderPass = printer.write_int("renderPass", 8, indent, signed=False, big_endian=False) + subpass = printer.write_int("subpass", 4, indent, signed=False, big_endian=False) + basePipelineHandle = printer.write_int("basePipelineHandle", 8, indent, signed=False, big_endian=False) + basePipelineIndex = printer.write_int("basePipelineIndex", 4, indent, signed=True, big_endian=False) + +def struct_VkImageCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("imageType", VkImageType, indent) + printer.write_enum("format", VkFormat, indent) + printer.write_struct("extent", struct_VkExtent3D, False, None, indent) + mipLevels = printer.write_int("mipLevels", 4, indent, signed=False, big_endian=False) + arrayLayers = printer.write_int("arrayLayers", 4, indent, signed=False, big_endian=False) + printer.write_enum("samples", VkSampleCountFlagBits, indent) + printer.write_enum("tiling", VkImageTiling, indent) + usage = printer.write_int("usage", 4, indent, signed=False, big_endian=False) + printer.write_enum("sharingMode", VkSharingMode, indent) + queueFamilyIndexCount = printer.write_int("queueFamilyIndexCount", 4, indent, signed=False, big_endian=False) + pQueueFamilyIndices = printer.write_int("pQueueFamilyIndices", 4, indent, optional=True, count=queueFamilyIndexCount, big_endian=False) + printer.write_enum("initialLayout", VkImageLayout, indent) + def struct_VkImageMemoryBarrier(printer, indent: int): printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER", indent) srcAccessMask = printer.write_int("srcAccessMask", 4, indent, signed=False, big_endian=False) @@ -92,11 +711,30 @@ def struct_VkImageSubresourceRange(printer, indent: int): 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_VkImageViewCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + image = printer.write_int("image", 8, indent, signed=False, big_endian=False) + printer.write_enum("viewType", VkImageViewType, indent) + printer.write_enum("format", VkFormat, indent) + printer.write_struct("components", struct_VkComponentMapping, False, None, indent) + printer.write_struct("subresourceRange", struct_VkImageSubresourceRange, False, None, indent) + +def struct_VkMemoryAllocateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO", indent) + allocationSize = printer.write_int("allocationSize", 8, indent, signed=False, big_endian=False) + memoryTypeIndex = printer.write_int("memoryTypeIndex", 4, indent, signed=False, big_endian=False) + def struct_VkMemoryBarrier(printer, indent: int): printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_MEMORY_BARRIER", 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_VkMemoryRequirements(printer, indent: int): + size = printer.write_int("size", 8, indent, signed=False, big_endian=False) + alignment = printer.write_int("alignment", 8, indent, signed=False, big_endian=False) + memoryTypeBits = printer.write_int("memoryTypeBits", 4, indent, signed=False, big_endian=False) + def struct_VkOffset2D(printer, indent: int): x = printer.write_int("x", 4, indent, signed=True, big_endian=False) y = printer.write_int("y", 4, indent, signed=True, big_endian=False) @@ -106,6 +744,239 @@ def struct_VkOffset3D(printer, indent: int): 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_VkPhysicalDeviceLimits(printer, indent: int): + maxImageDimension1D = printer.write_int("maxImageDimension1D", 4, indent, signed=False, big_endian=False) + maxImageDimension2D = printer.write_int("maxImageDimension2D", 4, indent, signed=False, big_endian=False) + maxImageDimension3D = printer.write_int("maxImageDimension3D", 4, indent, signed=False, big_endian=False) + maxImageDimensionCube = printer.write_int("maxImageDimensionCube", 4, indent, signed=False, big_endian=False) + maxImageArrayLayers = printer.write_int("maxImageArrayLayers", 4, indent, signed=False, big_endian=False) + maxTexelBufferElements = printer.write_int("maxTexelBufferElements", 4, indent, signed=False, big_endian=False) + maxUniformBufferRange = printer.write_int("maxUniformBufferRange", 4, indent, signed=False, big_endian=False) + maxStorageBufferRange = printer.write_int("maxStorageBufferRange", 4, indent, signed=False, big_endian=False) + maxPushConstantsSize = printer.write_int("maxPushConstantsSize", 4, indent, signed=False, big_endian=False) + maxMemoryAllocationCount = printer.write_int("maxMemoryAllocationCount", 4, indent, signed=False, big_endian=False) + maxSamplerAllocationCount = printer.write_int("maxSamplerAllocationCount", 4, indent, signed=False, big_endian=False) + bufferImageGranularity = printer.write_int("bufferImageGranularity", 8, indent, signed=False, big_endian=False) + sparseAddressSpaceSize = printer.write_int("sparseAddressSpaceSize", 8, indent, signed=False, big_endian=False) + maxBoundDescriptorSets = printer.write_int("maxBoundDescriptorSets", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorSamplers = printer.write_int("maxPerStageDescriptorSamplers", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorUniformBuffers = printer.write_int("maxPerStageDescriptorUniformBuffers", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorStorageBuffers = printer.write_int("maxPerStageDescriptorStorageBuffers", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorSampledImages = printer.write_int("maxPerStageDescriptorSampledImages", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorStorageImages = printer.write_int("maxPerStageDescriptorStorageImages", 4, indent, signed=False, big_endian=False) + maxPerStageDescriptorInputAttachments = printer.write_int("maxPerStageDescriptorInputAttachments", 4, indent, signed=False, big_endian=False) + maxPerStageResources = printer.write_int("maxPerStageResources", 4, indent, signed=False, big_endian=False) + maxDescriptorSetSamplers = printer.write_int("maxDescriptorSetSamplers", 4, indent, signed=False, big_endian=False) + maxDescriptorSetUniformBuffers = printer.write_int("maxDescriptorSetUniformBuffers", 4, indent, signed=False, big_endian=False) + maxDescriptorSetUniformBuffersDynamic = printer.write_int("maxDescriptorSetUniformBuffersDynamic", 4, indent, signed=False, big_endian=False) + maxDescriptorSetStorageBuffers = printer.write_int("maxDescriptorSetStorageBuffers", 4, indent, signed=False, big_endian=False) + maxDescriptorSetStorageBuffersDynamic = printer.write_int("maxDescriptorSetStorageBuffersDynamic", 4, indent, signed=False, big_endian=False) + maxDescriptorSetSampledImages = printer.write_int("maxDescriptorSetSampledImages", 4, indent, signed=False, big_endian=False) + maxDescriptorSetStorageImages = printer.write_int("maxDescriptorSetStorageImages", 4, indent, signed=False, big_endian=False) + maxDescriptorSetInputAttachments = printer.write_int("maxDescriptorSetInputAttachments", 4, indent, signed=False, big_endian=False) + maxVertexInputAttributes = printer.write_int("maxVertexInputAttributes", 4, indent, signed=False, big_endian=False) + maxVertexInputBindings = printer.write_int("maxVertexInputBindings", 4, indent, signed=False, big_endian=False) + maxVertexInputAttributeOffset = printer.write_int("maxVertexInputAttributeOffset", 4, indent, signed=False, big_endian=False) + maxVertexInputBindingStride = printer.write_int("maxVertexInputBindingStride", 4, indent, signed=False, big_endian=False) + maxVertexOutputComponents = printer.write_int("maxVertexOutputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationGenerationLevel = printer.write_int("maxTessellationGenerationLevel", 4, indent, signed=False, big_endian=False) + maxTessellationPatchSize = printer.write_int("maxTessellationPatchSize", 4, indent, signed=False, big_endian=False) + maxTessellationControlPerVertexInputComponents = printer.write_int("maxTessellationControlPerVertexInputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationControlPerVertexOutputComponents = printer.write_int("maxTessellationControlPerVertexOutputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationControlPerPatchOutputComponents = printer.write_int("maxTessellationControlPerPatchOutputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationControlTotalOutputComponents = printer.write_int("maxTessellationControlTotalOutputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationEvaluationInputComponents = printer.write_int("maxTessellationEvaluationInputComponents", 4, indent, signed=False, big_endian=False) + maxTessellationEvaluationOutputComponents = printer.write_int("maxTessellationEvaluationOutputComponents", 4, indent, signed=False, big_endian=False) + maxGeometryShaderInvocations = printer.write_int("maxGeometryShaderInvocations", 4, indent, signed=False, big_endian=False) + maxGeometryInputComponents = printer.write_int("maxGeometryInputComponents", 4, indent, signed=False, big_endian=False) + maxGeometryOutputComponents = printer.write_int("maxGeometryOutputComponents", 4, indent, signed=False, big_endian=False) + maxGeometryOutputVertices = printer.write_int("maxGeometryOutputVertices", 4, indent, signed=False, big_endian=False) + maxGeometryTotalOutputComponents = printer.write_int("maxGeometryTotalOutputComponents", 4, indent, signed=False, big_endian=False) + maxFragmentInputComponents = printer.write_int("maxFragmentInputComponents", 4, indent, signed=False, big_endian=False) + maxFragmentOutputAttachments = printer.write_int("maxFragmentOutputAttachments", 4, indent, signed=False, big_endian=False) + maxFragmentDualSrcAttachments = printer.write_int("maxFragmentDualSrcAttachments", 4, indent, signed=False, big_endian=False) + maxFragmentCombinedOutputResources = printer.write_int("maxFragmentCombinedOutputResources", 4, indent, signed=False, big_endian=False) + maxComputeSharedMemorySize = printer.write_int("maxComputeSharedMemorySize", 4, indent, signed=False, big_endian=False) + printer.write_int("maxComputeWorkGroupCount", 4, indent, signed=False, count=3) + maxComputeWorkGroupInvocations = printer.write_int("maxComputeWorkGroupInvocations", 4, indent, signed=False, big_endian=False) + printer.write_int("maxComputeWorkGroupSize", 4, indent, signed=False, count=3) + subPixelPrecisionBits = printer.write_int("subPixelPrecisionBits", 4, indent, signed=False, big_endian=False) + subTexelPrecisionBits = printer.write_int("subTexelPrecisionBits", 4, indent, signed=False, big_endian=False) + mipmapPrecisionBits = printer.write_int("mipmapPrecisionBits", 4, indent, signed=False, big_endian=False) + maxDrawIndexedIndexValue = printer.write_int("maxDrawIndexedIndexValue", 4, indent, signed=False, big_endian=False) + maxDrawIndirectCount = printer.write_int("maxDrawIndirectCount", 4, indent, signed=False, big_endian=False) + printer.write_float("maxSamplerLodBias", indent) + printer.write_float("maxSamplerAnisotropy", indent) + maxViewports = printer.write_int("maxViewports", 4, indent, signed=False, big_endian=False) + printer.write_int("maxViewportDimensions", 4, indent, signed=False, count=2) + printer.write_float("viewportBoundsRange", indent, count=2) + viewportSubPixelBits = printer.write_int("viewportSubPixelBits", 4, indent, signed=False, big_endian=False) + minMemoryMapAlignment = printer.write_int("minMemoryMapAlignment", 8, indent, signed=False, big_endian=True) + minTexelBufferOffsetAlignment = printer.write_int("minTexelBufferOffsetAlignment", 8, indent, signed=False, big_endian=False) + minUniformBufferOffsetAlignment = printer.write_int("minUniformBufferOffsetAlignment", 8, indent, signed=False, big_endian=False) + minStorageBufferOffsetAlignment = printer.write_int("minStorageBufferOffsetAlignment", 8, indent, signed=False, big_endian=False) + minTexelOffset = printer.write_int("minTexelOffset", 4, indent, signed=True, big_endian=False) + maxTexelOffset = printer.write_int("maxTexelOffset", 4, indent, signed=False, big_endian=False) + minTexelGatherOffset = printer.write_int("minTexelGatherOffset", 4, indent, signed=True, big_endian=False) + maxTexelGatherOffset = printer.write_int("maxTexelGatherOffset", 4, indent, signed=False, big_endian=False) + printer.write_float("minInterpolationOffset", indent) + printer.write_float("maxInterpolationOffset", indent) + subPixelInterpolationOffsetBits = printer.write_int("subPixelInterpolationOffsetBits", 4, indent, signed=False, big_endian=False) + maxFramebufferWidth = printer.write_int("maxFramebufferWidth", 4, indent, signed=False, big_endian=False) + maxFramebufferHeight = printer.write_int("maxFramebufferHeight", 4, indent, signed=False, big_endian=False) + maxFramebufferLayers = printer.write_int("maxFramebufferLayers", 4, indent, signed=False, big_endian=False) + framebufferColorSampleCounts = printer.write_int("framebufferColorSampleCounts", 4, indent, signed=False, big_endian=False) + framebufferDepthSampleCounts = printer.write_int("framebufferDepthSampleCounts", 4, indent, signed=False, big_endian=False) + framebufferStencilSampleCounts = printer.write_int("framebufferStencilSampleCounts", 4, indent, signed=False, big_endian=False) + framebufferNoAttachmentsSampleCounts = printer.write_int("framebufferNoAttachmentsSampleCounts", 4, indent, signed=False, big_endian=False) + maxColorAttachments = printer.write_int("maxColorAttachments", 4, indent, signed=False, big_endian=False) + sampledImageColorSampleCounts = printer.write_int("sampledImageColorSampleCounts", 4, indent, signed=False, big_endian=False) + sampledImageIntegerSampleCounts = printer.write_int("sampledImageIntegerSampleCounts", 4, indent, signed=False, big_endian=False) + sampledImageDepthSampleCounts = printer.write_int("sampledImageDepthSampleCounts", 4, indent, signed=False, big_endian=False) + sampledImageStencilSampleCounts = printer.write_int("sampledImageStencilSampleCounts", 4, indent, signed=False, big_endian=False) + storageImageSampleCounts = printer.write_int("storageImageSampleCounts", 4, indent, signed=False, big_endian=False) + maxSampleMaskWords = printer.write_int("maxSampleMaskWords", 4, indent, signed=False, big_endian=False) + timestampComputeAndGraphics = printer.write_int("timestampComputeAndGraphics", 4, indent, signed=False, big_endian=False) + printer.write_float("timestampPeriod", indent) + maxClipDistances = printer.write_int("maxClipDistances", 4, indent, signed=False, big_endian=False) + maxCullDistances = printer.write_int("maxCullDistances", 4, indent, signed=False, big_endian=False) + maxCombinedClipAndCullDistances = printer.write_int("maxCombinedClipAndCullDistances", 4, indent, signed=False, big_endian=False) + discreteQueuePriorities = printer.write_int("discreteQueuePriorities", 4, indent, signed=False, big_endian=False) + printer.write_float("pointSizeRange", indent, count=2) + printer.write_float("lineWidthRange", indent, count=2) + printer.write_float("pointSizeGranularity", indent) + printer.write_float("lineWidthGranularity", indent) + strictLines = printer.write_int("strictLines", 4, indent, signed=False, big_endian=False) + standardSampleLocations = printer.write_int("standardSampleLocations", 4, indent, signed=False, big_endian=False) + optimalBufferCopyOffsetAlignment = printer.write_int("optimalBufferCopyOffsetAlignment", 8, indent, signed=False, big_endian=False) + optimalBufferCopyRowPitchAlignment = printer.write_int("optimalBufferCopyRowPitchAlignment", 8, indent, signed=False, big_endian=False) + nonCoherentAtomSize = printer.write_int("nonCoherentAtomSize", 8, indent, signed=False, big_endian=False) + +def struct_VkPhysicalDeviceProperties(printer, indent: int): + apiVersion = printer.write_int("apiVersion", 4, indent, signed=False, big_endian=False) + driverVersion = printer.write_int("driverVersion", 4, indent, signed=False, big_endian=False) + vendorID = printer.write_int("vendorID", 4, indent, signed=False, big_endian=False) + deviceID = printer.write_int("deviceID", 4, indent, signed=False, big_endian=False) + printer.write_enum("deviceType", VkPhysicalDeviceType, indent) + printer.write_string("deviceName", 256, indent) + printer.write_int("pipelineCacheUUID", 1, indent, signed=False, count=16) + printer.write_struct("limits", struct_VkPhysicalDeviceLimits, False, None, indent) + printer.write_struct("sparseProperties", struct_VkPhysicalDeviceSparseProperties, False, None, indent) + +def struct_VkPhysicalDeviceProperties2(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2", indent) + printer.write_struct("properties", struct_VkPhysicalDeviceProperties, False, None, indent) + +def struct_VkPhysicalDeviceSparseProperties(printer, indent: int): + residencyStandard2DBlockShape = printer.write_int("residencyStandard2DBlockShape", 4, indent, signed=False, big_endian=False) + residencyStandard2DMultisampleBlockShape = printer.write_int("residencyStandard2DMultisampleBlockShape", 4, indent, signed=False, big_endian=False) + residencyStandard3DBlockShape = printer.write_int("residencyStandard3DBlockShape", 4, indent, signed=False, big_endian=False) + residencyAlignedMipSize = printer.write_int("residencyAlignedMipSize", 4, indent, signed=False, big_endian=False) + residencyNonResidentStrict = printer.write_int("residencyNonResidentStrict", 4, indent, signed=False, big_endian=False) + +def struct_VkPipelineCacheCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + initialDataSize = printer.write_int("initialDataSize", 8, indent, signed=False, big_endian=True) + pInitialData = printer.write_int("pInitialData", 8, indent, optional=False, count=initialDataSize, big_endian=False) + +def struct_VkPipelineColorBlendAttachmentState(printer, indent: int): + blendEnable = printer.write_int("blendEnable", 4, indent, signed=False, big_endian=False) + printer.write_enum("srcColorBlendFactor", VkBlendFactor, indent) + printer.write_enum("dstColorBlendFactor", VkBlendFactor, indent) + printer.write_enum("colorBlendOp", VkBlendOp, indent) + printer.write_enum("srcAlphaBlendFactor", VkBlendFactor, indent) + printer.write_enum("dstAlphaBlendFactor", VkBlendFactor, indent) + printer.write_enum("alphaBlendOp", VkBlendOp, indent) + colorWriteMask = printer.write_int("colorWriteMask", 4, indent, signed=False, big_endian=False) + +def struct_VkPipelineColorBlendStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + logicOpEnable = printer.write_int("logicOpEnable", 4, indent, signed=False, big_endian=False) + printer.write_enum("logicOp", VkLogicOp, indent) + attachmentCount = printer.write_int("attachmentCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pAttachments", struct_VkPipelineColorBlendAttachmentState, False, attachmentCount, indent) + printer.write_float("blendConstants", indent, count=4) + +def struct_VkPipelineDepthStencilStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + depthTestEnable = printer.write_int("depthTestEnable", 4, indent, signed=False, big_endian=False) + depthWriteEnable = printer.write_int("depthWriteEnable", 4, indent, signed=False, big_endian=False) + printer.write_enum("depthCompareOp", VkCompareOp, indent) + depthBoundsTestEnable = printer.write_int("depthBoundsTestEnable", 4, indent, signed=False, big_endian=False) + stencilTestEnable = printer.write_int("stencilTestEnable", 4, indent, signed=False, big_endian=False) + printer.write_struct("front", struct_VkStencilOpState, False, None, indent) + printer.write_struct("back", struct_VkStencilOpState, False, None, indent) + printer.write_float("minDepthBounds", indent) + printer.write_float("maxDepthBounds", indent) + +def struct_VkPipelineDynamicStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + dynamicStateCount = printer.write_int("dynamicStateCount", 4, indent, signed=False, big_endian=False) + printer.write_enum("pDynamicStates", VkDynamicState, indent) + +def struct_VkPipelineInputAssemblyStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("topology", VkPrimitiveTopology, indent) + primitiveRestartEnable = printer.write_int("primitiveRestartEnable", 4, indent, signed=False, big_endian=False) + +def struct_VkPipelineMultisampleStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("rasterizationSamples", VkSampleCountFlagBits, indent) + sampleShadingEnable = printer.write_int("sampleShadingEnable", 4, indent, signed=False, big_endian=False) + printer.write_float("minSampleShading", indent) + pSampleMask = printer.write_int("pSampleMask", 8, indent, optional=True, count=int(rasterizationSamples / 32), big_endian=False) + alphaToCoverageEnable = printer.write_int("alphaToCoverageEnable", 4, indent, signed=False, big_endian=False) + alphaToOneEnable = printer.write_int("alphaToOneEnable", 4, indent, signed=False, big_endian=False) + +def struct_VkPipelineRasterizationStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + depthClampEnable = printer.write_int("depthClampEnable", 4, indent, signed=False, big_endian=False) + rasterizerDiscardEnable = printer.write_int("rasterizerDiscardEnable", 4, indent, signed=False, big_endian=False) + printer.write_enum("polygonMode", VkPolygonMode, indent) + cullMode = printer.write_int("cullMode", 4, indent, signed=False, big_endian=False) + printer.write_enum("frontFace", VkFrontFace, indent) + depthBiasEnable = printer.write_int("depthBiasEnable", 4, indent, signed=False, big_endian=False) + printer.write_float("depthBiasConstantFactor", indent) + printer.write_float("depthBiasClamp", indent) + printer.write_float("depthBiasSlopeFactor", indent) + printer.write_float("lineWidth", indent) + +def struct_VkPipelineShaderStageCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("stage", VkShaderStageFlagBits, indent) + module = printer.write_int("module", 8, indent, signed=False, big_endian=False) + printer.write_string("pName", None, indent) + printer.write_struct("pSpecializationInfo", struct_VkSpecializationInfo, True, None, indent) + +def struct_VkPipelineTessellationStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + patchControlPoints = printer.write_int("patchControlPoints", 4, indent, signed=False, big_endian=False) + +def struct_VkPipelineVertexInputStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + vertexBindingDescriptionCount = printer.write_int("vertexBindingDescriptionCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pVertexBindingDescriptions", struct_VkVertexInputBindingDescription, False, vertexBindingDescriptionCount, indent) + vertexAttributeDescriptionCount = printer.write_int("vertexAttributeDescriptionCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pVertexAttributeDescriptions", struct_VkVertexInputAttributeDescription, False, vertexAttributeDescriptionCount, indent) + +def struct_VkPipelineViewportStateCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + viewportCount = printer.write_int("viewportCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pViewports", struct_VkViewport, True, viewportCount, indent) + scissorCount = printer.write_int("scissorCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pScissors", struct_VkRect2D, True, scissorCount, indent) + def struct_VkRect2D(printer, indent: int): printer.write_struct("offset", struct_VkOffset2D, False, None, indent) printer.write_struct("extent", struct_VkExtent2D, False, None, indent) @@ -118,6 +989,596 @@ def struct_VkRenderPassBeginInfo(printer, indent: int): clearValueCount = printer.write_int("clearValueCount", 4, indent, signed=False, big_endian=False) printer.write_struct("pClearValues", struct_VkClearValue, True, clearValueCount, indent) +def struct_VkRenderPassCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + attachmentCount = printer.write_int("attachmentCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pAttachments", struct_VkAttachmentDescription, False, attachmentCount, indent) + subpassCount = printer.write_int("subpassCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pSubpasses", struct_VkSubpassDescription, False, subpassCount, indent) + dependencyCount = printer.write_int("dependencyCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pDependencies", struct_VkSubpassDependency, False, dependencyCount, indent) + +def struct_VkSamplerCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("magFilter", VkFilter, indent) + printer.write_enum("minFilter", VkFilter, indent) + printer.write_enum("mipmapMode", VkSamplerMipmapMode, indent) + printer.write_enum("addressModeU", VkSamplerAddressMode, indent) + printer.write_enum("addressModeV", VkSamplerAddressMode, indent) + printer.write_enum("addressModeW", VkSamplerAddressMode, indent) + printer.write_float("mipLodBias", indent) + anisotropyEnable = printer.write_int("anisotropyEnable", 4, indent, signed=False, big_endian=False) + printer.write_float("maxAnisotropy", indent) + compareEnable = printer.write_int("compareEnable", 4, indent, signed=False, big_endian=False) + printer.write_enum("compareOp", VkCompareOp, indent) + printer.write_float("minLod", indent) + printer.write_float("maxLod", indent) + printer.write_enum("borderColor", VkBorderColor, indent) + unnormalizedCoordinates = printer.write_int("unnormalizedCoordinates", 4, indent, signed=False, big_endian=False) + +def struct_VkSemaphoreCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + +def struct_VkShaderModuleCreateInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO", indent) + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + codeSize = printer.write_int("codeSize", 8, indent, signed=False, big_endian=True) + pCode = printer.write_int("pCode", 4, indent, optional=False, count=int(codeSize / 4), big_endian=False) + +def struct_VkSpecializationInfo(printer, indent: int): + mapEntryCount = printer.write_int("mapEntryCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pMapEntries", struct_VkSpecializationMapEntry, False, mapEntryCount, indent) + dataSize = printer.write_int("dataSize", 8, indent, signed=False, big_endian=True) + pData = printer.write_int("pData", 8, indent, optional=False, count=dataSize, big_endian=False) + +def struct_VkSpecializationMapEntry(printer, indent: int): + constantID = printer.write_int("constantID", 4, indent, signed=False, big_endian=False) + offset = printer.write_int("offset", 4, indent, signed=False, big_endian=False) + size = printer.write_int("size", 8, indent, signed=False, big_endian=True) + +def struct_VkStencilOpState(printer, indent: int): + printer.write_enum("failOp", VkStencilOp, indent) + printer.write_enum("passOp", VkStencilOp, indent) + printer.write_enum("depthFailOp", VkStencilOp, indent) + printer.write_enum("compareOp", VkCompareOp, indent) + compareMask = printer.write_int("compareMask", 4, indent, signed=False, big_endian=False) + writeMask = printer.write_int("writeMask", 4, indent, signed=False, big_endian=False) + reference = printer.write_int("reference", 4, indent, signed=False, big_endian=False) + +def struct_VkSubmitInfo(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_SUBMIT_INFO", indent) + waitSemaphoreCount = printer.write_int("waitSemaphoreCount", 4, indent, signed=False, big_endian=False) + pWaitSemaphores = printer.write_int("pWaitSemaphores", 8, indent, optional=False, count=waitSemaphoreCount, big_endian=False) + pWaitDstStageMask = printer.write_int("pWaitDstStageMask", 4, indent, optional=False, count=waitSemaphoreCount, big_endian=False) + commandBufferCount = printer.write_int("commandBufferCount", 4, indent, signed=False, big_endian=False) + pCommandBuffers = printer.write_int("pCommandBuffers", 8, indent, optional=False, count=commandBufferCount, big_endian=False) + signalSemaphoreCount = printer.write_int("signalSemaphoreCount", 4, indent, signed=False, big_endian=False) + pSignalSemaphores = printer.write_int("pSignalSemaphores", 8, indent, optional=False, count=signalSemaphoreCount, big_endian=False) + +def struct_VkSubpassDependency(printer, indent: int): + srcSubpass = printer.write_int("srcSubpass", 4, indent, signed=False, big_endian=False) + dstSubpass = printer.write_int("dstSubpass", 4, indent, signed=False, big_endian=False) + srcStageMask = printer.write_int("srcStageMask", 4, indent, signed=False, big_endian=False) + dstStageMask = printer.write_int("dstStageMask", 4, indent, signed=False, big_endian=False) + srcAccessMask = printer.write_int("srcAccessMask", 4, indent, signed=False, big_endian=False) + dstAccessMask = printer.write_int("dstAccessMask", 4, indent, signed=False, big_endian=False) + dependencyFlags = printer.write_int("dependencyFlags", 4, indent, signed=False, big_endian=False) + +def struct_VkSubpassDescription(printer, indent: int): + flags = printer.write_int("flags", 4, indent, signed=False, big_endian=False) + printer.write_enum("pipelineBindPoint", VkPipelineBindPoint, indent) + inputAttachmentCount = printer.write_int("inputAttachmentCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pInputAttachments", struct_VkAttachmentReference, False, inputAttachmentCount, indent) + colorAttachmentCount = printer.write_int("colorAttachmentCount", 4, indent, signed=False, big_endian=False) + printer.write_struct("pColorAttachments", struct_VkAttachmentReference, False, colorAttachmentCount, indent) + printer.write_struct("pResolveAttachments", struct_VkAttachmentReference, True, colorAttachmentCount, indent) + printer.write_struct("pDepthStencilAttachment", struct_VkAttachmentReference, True, None, indent) + preserveAttachmentCount = printer.write_int("preserveAttachmentCount", 4, indent, signed=False, big_endian=False) + pPreserveAttachments = printer.write_int("pPreserveAttachments", 4, indent, optional=False, count=preserveAttachmentCount, big_endian=False) + +def struct_VkVertexInputAttributeDescription(printer, indent: int): + location = printer.write_int("location", 4, indent, signed=False, big_endian=False) + binding = printer.write_int("binding", 4, indent, signed=False, big_endian=False) + printer.write_enum("format", VkFormat, indent) + offset = printer.write_int("offset", 4, indent, signed=False, big_endian=False) + +def struct_VkVertexInputBindingDescription(printer, indent: int): + binding = printer.write_int("binding", 4, indent, signed=False, big_endian=False) + stride = printer.write_int("stride", 4, indent, signed=False, big_endian=False) + printer.write_enum("inputRate", VkVertexInputRate, indent) + +def struct_VkViewport(printer, indent: int): + printer.write_float("x", indent) + printer.write_float("y", indent) + printer.write_float("width", indent) + printer.write_float("height", indent) + printer.write_float("minDepth", indent) + printer.write_float("maxDepth", indent) + +def struct_VkWriteDescriptorSet(printer, indent: int): + printer.write_stype_and_pnext("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET", indent) + dstSet = printer.write_int("dstSet", 8, indent, signed=False, big_endian=False) + dstBinding = printer.write_int("dstBinding", 4, indent, signed=False, big_endian=False) + dstArrayElement = printer.write_int("dstArrayElement", 4, indent, signed=False, big_endian=False) + descriptorCount = printer.write_int("descriptorCount", 4, indent, signed=False, big_endian=False) + printer.write_enum("descriptorType", VkDescriptorType, indent) + printer.write_struct("pImageInfo", struct_VkDescriptorImageInfo, True, descriptorCount, indent) + printer.write_struct("pBufferInfo", struct_VkDescriptorBufferInfo, True, descriptorCount, indent) + pTexelBufferView = printer.write_int("pTexelBufferView", 8, indent, optional=True, count=descriptorCount, big_endian=False) + +VkAttachmentLoadOp = { + 0: "VK_ATTACHMENT_LOAD_OP_LOAD", + 1: "VK_ATTACHMENT_LOAD_OP_CLEAR", + 2: "VK_ATTACHMENT_LOAD_OP_DONT_CARE", + 1000400000: "VK_ATTACHMENT_LOAD_OP_NONE_EXT", +} + +VkAttachmentStoreOp = { + 0: "VK_ATTACHMENT_STORE_OP_STORE", + 1: "VK_ATTACHMENT_STORE_OP_DONT_CARE", + 1000301000: "VK_ATTACHMENT_STORE_OP_NONE_KHR", +} + +VkBlendFactor = { + 0: "VK_BLEND_FACTOR_ZERO", + 1: "VK_BLEND_FACTOR_ONE", + 2: "VK_BLEND_FACTOR_SRC_COLOR", + 3: "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR", + 4: "VK_BLEND_FACTOR_DST_COLOR", + 5: "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR", + 6: "VK_BLEND_FACTOR_SRC_ALPHA", + 7: "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA", + 8: "VK_BLEND_FACTOR_DST_ALPHA", + 9: "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA", + 10: "VK_BLEND_FACTOR_CONSTANT_COLOR", + 11: "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", + 12: "VK_BLEND_FACTOR_CONSTANT_ALPHA", + 13: "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", + 14: "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE", + 15: "VK_BLEND_FACTOR_SRC1_COLOR", + 16: "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR", + 17: "VK_BLEND_FACTOR_SRC1_ALPHA", + 18: "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA", +} + +VkBlendOp = { + 0: "VK_BLEND_OP_ADD", + 1: "VK_BLEND_OP_SUBTRACT", + 2: "VK_BLEND_OP_REVERSE_SUBTRACT", + 3: "VK_BLEND_OP_MIN", + 4: "VK_BLEND_OP_MAX", + 1000148000: "VK_BLEND_OP_ZERO_EXT", + 1000148001: "VK_BLEND_OP_SRC_EXT", + 1000148002: "VK_BLEND_OP_DST_EXT", + 1000148003: "VK_BLEND_OP_SRC_OVER_EXT", + 1000148004: "VK_BLEND_OP_DST_OVER_EXT", + 1000148005: "VK_BLEND_OP_SRC_IN_EXT", + 1000148006: "VK_BLEND_OP_DST_IN_EXT", + 1000148007: "VK_BLEND_OP_SRC_OUT_EXT", + 1000148008: "VK_BLEND_OP_DST_OUT_EXT", + 1000148009: "VK_BLEND_OP_SRC_ATOP_EXT", + 1000148010: "VK_BLEND_OP_DST_ATOP_EXT", + 1000148011: "VK_BLEND_OP_XOR_EXT", + 1000148012: "VK_BLEND_OP_MULTIPLY_EXT", + 1000148013: "VK_BLEND_OP_SCREEN_EXT", + 1000148014: "VK_BLEND_OP_OVERLAY_EXT", + 1000148015: "VK_BLEND_OP_DARKEN_EXT", + 1000148016: "VK_BLEND_OP_LIGHTEN_EXT", + 1000148017: "VK_BLEND_OP_COLORDODGE_EXT", + 1000148018: "VK_BLEND_OP_COLORBURN_EXT", + 1000148019: "VK_BLEND_OP_HARDLIGHT_EXT", + 1000148020: "VK_BLEND_OP_SOFTLIGHT_EXT", + 1000148021: "VK_BLEND_OP_DIFFERENCE_EXT", + 1000148022: "VK_BLEND_OP_EXCLUSION_EXT", + 1000148023: "VK_BLEND_OP_INVERT_EXT", + 1000148024: "VK_BLEND_OP_INVERT_RGB_EXT", + 1000148025: "VK_BLEND_OP_LINEARDODGE_EXT", + 1000148026: "VK_BLEND_OP_LINEARBURN_EXT", + 1000148027: "VK_BLEND_OP_VIVIDLIGHT_EXT", + 1000148028: "VK_BLEND_OP_LINEARLIGHT_EXT", + 1000148029: "VK_BLEND_OP_PINLIGHT_EXT", + 1000148030: "VK_BLEND_OP_HARDMIX_EXT", + 1000148031: "VK_BLEND_OP_HSL_HUE_EXT", + 1000148032: "VK_BLEND_OP_HSL_SATURATION_EXT", + 1000148033: "VK_BLEND_OP_HSL_COLOR_EXT", + 1000148034: "VK_BLEND_OP_HSL_LUMINOSITY_EXT", + 1000148035: "VK_BLEND_OP_PLUS_EXT", + 1000148036: "VK_BLEND_OP_PLUS_CLAMPED_EXT", + 1000148037: "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT", + 1000148038: "VK_BLEND_OP_PLUS_DARKER_EXT", + 1000148039: "VK_BLEND_OP_MINUS_EXT", + 1000148040: "VK_BLEND_OP_MINUS_CLAMPED_EXT", + 1000148041: "VK_BLEND_OP_CONTRAST_EXT", + 1000148042: "VK_BLEND_OP_INVERT_OVG_EXT", + 1000148043: "VK_BLEND_OP_RED_EXT", + 1000148044: "VK_BLEND_OP_GREEN_EXT", + 1000148045: "VK_BLEND_OP_BLUE_EXT", +} + +VkBorderColor = { + 0: "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK", + 1: "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK", + 2: "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK", + 3: "VK_BORDER_COLOR_INT_OPAQUE_BLACK", + 4: "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE", + 5: "VK_BORDER_COLOR_INT_OPAQUE_WHITE", + 1000287003: "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT", + 1000287004: "VK_BORDER_COLOR_INT_CUSTOM_EXT", +} + +VkCompareOp = { + 0: "VK_COMPARE_OP_NEVER", + 1: "VK_COMPARE_OP_LESS", + 2: "VK_COMPARE_OP_EQUAL", + 3: "VK_COMPARE_OP_LESS_OR_EQUAL", + 4: "VK_COMPARE_OP_GREATER", + 5: "VK_COMPARE_OP_NOT_EQUAL", + 6: "VK_COMPARE_OP_GREATER_OR_EQUAL", + 7: "VK_COMPARE_OP_ALWAYS", +} + +VkComponentSwizzle = { + 0: "VK_COMPONENT_SWIZZLE_IDENTITY", + 1: "VK_COMPONENT_SWIZZLE_ZERO", + 2: "VK_COMPONENT_SWIZZLE_ONE", + 3: "VK_COMPONENT_SWIZZLE_R", + 4: "VK_COMPONENT_SWIZZLE_G", + 5: "VK_COMPONENT_SWIZZLE_B", + 6: "VK_COMPONENT_SWIZZLE_A", +} + +VkDescriptorType = { + 0: "VK_DESCRIPTOR_TYPE_SAMPLER", + 1: "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER", + 2: "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE", + 3: "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE", + 4: "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER", + 5: "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER", + 6: "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER", + 7: "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER", + 8: "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC", + 9: "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", + 10: "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT", + 1000138000: "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT", + 1000150000: "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR", + 1000165000: "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV", + 1000351000: "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE", +} + +VkDynamicState = { + 0: "VK_DYNAMIC_STATE_VIEWPORT", + 1: "VK_DYNAMIC_STATE_SCISSOR", + 2: "VK_DYNAMIC_STATE_LINE_WIDTH", + 3: "VK_DYNAMIC_STATE_DEPTH_BIAS", + 4: "VK_DYNAMIC_STATE_BLEND_CONSTANTS", + 5: "VK_DYNAMIC_STATE_DEPTH_BOUNDS", + 6: "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK", + 7: "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK", + 8: "VK_DYNAMIC_STATE_STENCIL_REFERENCE", + 1000087000: "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV", + 1000099000: "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT", + 1000143000: "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT", + 1000347000: "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR", + 1000164004: "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV", + 1000164006: "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV", + 1000205001: "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV", + 1000226000: "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR", + 1000259000: "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT", + 1000267000: "VK_DYNAMIC_STATE_CULL_MODE_EXT", + 1000267001: "VK_DYNAMIC_STATE_FRONT_FACE_EXT", + 1000267002: "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT", + 1000267003: "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT", + 1000267004: "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT", + 1000267005: "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT", + 1000267006: "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT", + 1000267007: "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT", + 1000267008: "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT", + 1000267009: "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT", + 1000267010: "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT", + 1000267011: "VK_DYNAMIC_STATE_STENCIL_OP_EXT", + 1000352000: "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT", + 1000377000: "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT", + 1000377001: "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT", + 1000377002: "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT", + 1000377003: "VK_DYNAMIC_STATE_LOGIC_OP_EXT", + 1000377004: "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT", + 1000381000: "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT", +} + +VkFilter = { + 0: "VK_FILTER_NEAREST", + 1: "VK_FILTER_LINEAR", + 1000015000: "VK_FILTER_CUBIC_IMG", +} + +VkFormat = { + 0: "VK_FORMAT_UNDEFINED", + 1: "VK_FORMAT_R4G4_UNORM_PACK8", + 2: "VK_FORMAT_R4G4B4A4_UNORM_PACK16", + 3: "VK_FORMAT_B4G4R4A4_UNORM_PACK16", + 4: "VK_FORMAT_R5G6B5_UNORM_PACK16", + 5: "VK_FORMAT_B5G6R5_UNORM_PACK16", + 6: "VK_FORMAT_R5G5B5A1_UNORM_PACK16", + 7: "VK_FORMAT_B5G5R5A1_UNORM_PACK16", + 8: "VK_FORMAT_A1R5G5B5_UNORM_PACK16", + 9: "VK_FORMAT_R8_UNORM", + 10: "VK_FORMAT_R8_SNORM", + 11: "VK_FORMAT_R8_USCALED", + 12: "VK_FORMAT_R8_SSCALED", + 13: "VK_FORMAT_R8_UINT", + 14: "VK_FORMAT_R8_SINT", + 15: "VK_FORMAT_R8_SRGB", + 16: "VK_FORMAT_R8G8_UNORM", + 17: "VK_FORMAT_R8G8_SNORM", + 18: "VK_FORMAT_R8G8_USCALED", + 19: "VK_FORMAT_R8G8_SSCALED", + 20: "VK_FORMAT_R8G8_UINT", + 21: "VK_FORMAT_R8G8_SINT", + 22: "VK_FORMAT_R8G8_SRGB", + 23: "VK_FORMAT_R8G8B8_UNORM", + 24: "VK_FORMAT_R8G8B8_SNORM", + 25: "VK_FORMAT_R8G8B8_USCALED", + 26: "VK_FORMAT_R8G8B8_SSCALED", + 27: "VK_FORMAT_R8G8B8_UINT", + 28: "VK_FORMAT_R8G8B8_SINT", + 29: "VK_FORMAT_R8G8B8_SRGB", + 30: "VK_FORMAT_B8G8R8_UNORM", + 31: "VK_FORMAT_B8G8R8_SNORM", + 32: "VK_FORMAT_B8G8R8_USCALED", + 33: "VK_FORMAT_B8G8R8_SSCALED", + 34: "VK_FORMAT_B8G8R8_UINT", + 35: "VK_FORMAT_B8G8R8_SINT", + 36: "VK_FORMAT_B8G8R8_SRGB", + 37: "VK_FORMAT_R8G8B8A8_UNORM", + 38: "VK_FORMAT_R8G8B8A8_SNORM", + 39: "VK_FORMAT_R8G8B8A8_USCALED", + 40: "VK_FORMAT_R8G8B8A8_SSCALED", + 41: "VK_FORMAT_R8G8B8A8_UINT", + 42: "VK_FORMAT_R8G8B8A8_SINT", + 43: "VK_FORMAT_R8G8B8A8_SRGB", + 44: "VK_FORMAT_B8G8R8A8_UNORM", + 45: "VK_FORMAT_B8G8R8A8_SNORM", + 46: "VK_FORMAT_B8G8R8A8_USCALED", + 47: "VK_FORMAT_B8G8R8A8_SSCALED", + 48: "VK_FORMAT_B8G8R8A8_UINT", + 49: "VK_FORMAT_B8G8R8A8_SINT", + 50: "VK_FORMAT_B8G8R8A8_SRGB", + 51: "VK_FORMAT_A8B8G8R8_UNORM_PACK32", + 52: "VK_FORMAT_A8B8G8R8_SNORM_PACK32", + 53: "VK_FORMAT_A8B8G8R8_USCALED_PACK32", + 54: "VK_FORMAT_A8B8G8R8_SSCALED_PACK32", + 55: "VK_FORMAT_A8B8G8R8_UINT_PACK32", + 56: "VK_FORMAT_A8B8G8R8_SINT_PACK32", + 57: "VK_FORMAT_A8B8G8R8_SRGB_PACK32", + 58: "VK_FORMAT_A2R10G10B10_UNORM_PACK32", + 59: "VK_FORMAT_A2R10G10B10_SNORM_PACK32", + 60: "VK_FORMAT_A2R10G10B10_USCALED_PACK32", + 61: "VK_FORMAT_A2R10G10B10_SSCALED_PACK32", + 62: "VK_FORMAT_A2R10G10B10_UINT_PACK32", + 63: "VK_FORMAT_A2R10G10B10_SINT_PACK32", + 64: "VK_FORMAT_A2B10G10R10_UNORM_PACK32", + 65: "VK_FORMAT_A2B10G10R10_SNORM_PACK32", + 66: "VK_FORMAT_A2B10G10R10_USCALED_PACK32", + 67: "VK_FORMAT_A2B10G10R10_SSCALED_PACK32", + 68: "VK_FORMAT_A2B10G10R10_UINT_PACK32", + 69: "VK_FORMAT_A2B10G10R10_SINT_PACK32", + 70: "VK_FORMAT_R16_UNORM", + 71: "VK_FORMAT_R16_SNORM", + 72: "VK_FORMAT_R16_USCALED", + 73: "VK_FORMAT_R16_SSCALED", + 74: "VK_FORMAT_R16_UINT", + 75: "VK_FORMAT_R16_SINT", + 76: "VK_FORMAT_R16_SFLOAT", + 77: "VK_FORMAT_R16G16_UNORM", + 78: "VK_FORMAT_R16G16_SNORM", + 79: "VK_FORMAT_R16G16_USCALED", + 80: "VK_FORMAT_R16G16_SSCALED", + 81: "VK_FORMAT_R16G16_UINT", + 82: "VK_FORMAT_R16G16_SINT", + 83: "VK_FORMAT_R16G16_SFLOAT", + 84: "VK_FORMAT_R16G16B16_UNORM", + 85: "VK_FORMAT_R16G16B16_SNORM", + 86: "VK_FORMAT_R16G16B16_USCALED", + 87: "VK_FORMAT_R16G16B16_SSCALED", + 88: "VK_FORMAT_R16G16B16_UINT", + 89: "VK_FORMAT_R16G16B16_SINT", + 90: "VK_FORMAT_R16G16B16_SFLOAT", + 91: "VK_FORMAT_R16G16B16A16_UNORM", + 92: "VK_FORMAT_R16G16B16A16_SNORM", + 93: "VK_FORMAT_R16G16B16A16_USCALED", + 94: "VK_FORMAT_R16G16B16A16_SSCALED", + 95: "VK_FORMAT_R16G16B16A16_UINT", + 96: "VK_FORMAT_R16G16B16A16_SINT", + 97: "VK_FORMAT_R16G16B16A16_SFLOAT", + 98: "VK_FORMAT_R32_UINT", + 99: "VK_FORMAT_R32_SINT", + 100: "VK_FORMAT_R32_SFLOAT", + 101: "VK_FORMAT_R32G32_UINT", + 102: "VK_FORMAT_R32G32_SINT", + 103: "VK_FORMAT_R32G32_SFLOAT", + 104: "VK_FORMAT_R32G32B32_UINT", + 105: "VK_FORMAT_R32G32B32_SINT", + 106: "VK_FORMAT_R32G32B32_SFLOAT", + 107: "VK_FORMAT_R32G32B32A32_UINT", + 108: "VK_FORMAT_R32G32B32A32_SINT", + 109: "VK_FORMAT_R32G32B32A32_SFLOAT", + 110: "VK_FORMAT_R64_UINT", + 111: "VK_FORMAT_R64_SINT", + 112: "VK_FORMAT_R64_SFLOAT", + 113: "VK_FORMAT_R64G64_UINT", + 114: "VK_FORMAT_R64G64_SINT", + 115: "VK_FORMAT_R64G64_SFLOAT", + 116: "VK_FORMAT_R64G64B64_UINT", + 117: "VK_FORMAT_R64G64B64_SINT", + 118: "VK_FORMAT_R64G64B64_SFLOAT", + 119: "VK_FORMAT_R64G64B64A64_UINT", + 120: "VK_FORMAT_R64G64B64A64_SINT", + 121: "VK_FORMAT_R64G64B64A64_SFLOAT", + 122: "VK_FORMAT_B10G11R11_UFLOAT_PACK32", + 123: "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", + 124: "VK_FORMAT_D16_UNORM", + 125: "VK_FORMAT_X8_D24_UNORM_PACK32", + 126: "VK_FORMAT_D32_SFLOAT", + 127: "VK_FORMAT_S8_UINT", + 128: "VK_FORMAT_D16_UNORM_S8_UINT", + 129: "VK_FORMAT_D24_UNORM_S8_UINT", + 130: "VK_FORMAT_D32_SFLOAT_S8_UINT", + 131: "VK_FORMAT_BC1_RGB_UNORM_BLOCK", + 132: "VK_FORMAT_BC1_RGB_SRGB_BLOCK", + 133: "VK_FORMAT_BC1_RGBA_UNORM_BLOCK", + 134: "VK_FORMAT_BC1_RGBA_SRGB_BLOCK", + 135: "VK_FORMAT_BC2_UNORM_BLOCK", + 136: "VK_FORMAT_BC2_SRGB_BLOCK", + 137: "VK_FORMAT_BC3_UNORM_BLOCK", + 138: "VK_FORMAT_BC3_SRGB_BLOCK", + 139: "VK_FORMAT_BC4_UNORM_BLOCK", + 140: "VK_FORMAT_BC4_SNORM_BLOCK", + 141: "VK_FORMAT_BC5_UNORM_BLOCK", + 142: "VK_FORMAT_BC5_SNORM_BLOCK", + 143: "VK_FORMAT_BC6H_UFLOAT_BLOCK", + 144: "VK_FORMAT_BC6H_SFLOAT_BLOCK", + 145: "VK_FORMAT_BC7_UNORM_BLOCK", + 146: "VK_FORMAT_BC7_SRGB_BLOCK", + 147: "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", + 148: "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", + 149: "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", + 150: "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", + 151: "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", + 152: "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", + 153: "VK_FORMAT_EAC_R11_UNORM_BLOCK", + 154: "VK_FORMAT_EAC_R11_SNORM_BLOCK", + 155: "VK_FORMAT_EAC_R11G11_UNORM_BLOCK", + 156: "VK_FORMAT_EAC_R11G11_SNORM_BLOCK", + 157: "VK_FORMAT_ASTC_4x4_UNORM_BLOCK", + 158: "VK_FORMAT_ASTC_4x4_SRGB_BLOCK", + 159: "VK_FORMAT_ASTC_5x4_UNORM_BLOCK", + 160: "VK_FORMAT_ASTC_5x4_SRGB_BLOCK", + 161: "VK_FORMAT_ASTC_5x5_UNORM_BLOCK", + 162: "VK_FORMAT_ASTC_5x5_SRGB_BLOCK", + 163: "VK_FORMAT_ASTC_6x5_UNORM_BLOCK", + 164: "VK_FORMAT_ASTC_6x5_SRGB_BLOCK", + 165: "VK_FORMAT_ASTC_6x6_UNORM_BLOCK", + 166: "VK_FORMAT_ASTC_6x6_SRGB_BLOCK", + 167: "VK_FORMAT_ASTC_8x5_UNORM_BLOCK", + 168: "VK_FORMAT_ASTC_8x5_SRGB_BLOCK", + 169: "VK_FORMAT_ASTC_8x6_UNORM_BLOCK", + 170: "VK_FORMAT_ASTC_8x6_SRGB_BLOCK", + 171: "VK_FORMAT_ASTC_8x8_UNORM_BLOCK", + 172: "VK_FORMAT_ASTC_8x8_SRGB_BLOCK", + 173: "VK_FORMAT_ASTC_10x5_UNORM_BLOCK", + 174: "VK_FORMAT_ASTC_10x5_SRGB_BLOCK", + 175: "VK_FORMAT_ASTC_10x6_UNORM_BLOCK", + 176: "VK_FORMAT_ASTC_10x6_SRGB_BLOCK", + 177: "VK_FORMAT_ASTC_10x8_UNORM_BLOCK", + 178: "VK_FORMAT_ASTC_10x8_SRGB_BLOCK", + 179: "VK_FORMAT_ASTC_10x10_UNORM_BLOCK", + 180: "VK_FORMAT_ASTC_10x10_SRGB_BLOCK", + 181: "VK_FORMAT_ASTC_12x10_UNORM_BLOCK", + 182: "VK_FORMAT_ASTC_12x10_SRGB_BLOCK", + 183: "VK_FORMAT_ASTC_12x12_UNORM_BLOCK", + 184: "VK_FORMAT_ASTC_12x12_SRGB_BLOCK", + 1000156000: "VK_FORMAT_G8B8G8R8_422_UNORM", + 1000156001: "VK_FORMAT_B8G8R8G8_422_UNORM", + 1000156002: "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM", + 1000156003: "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM", + 1000156004: "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM", + 1000156005: "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM", + 1000156006: "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM", + 1000156007: "VK_FORMAT_R10X6_UNORM_PACK16", + 1000156008: "VK_FORMAT_R10X6G10X6_UNORM_2PACK16", + 1000156009: "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16", + 1000156010: "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16", + 1000156011: "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16", + 1000156012: "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16", + 1000156013: "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16", + 1000156014: "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16", + 1000156015: "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16", + 1000156016: "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16", + 1000156017: "VK_FORMAT_R12X4_UNORM_PACK16", + 1000156018: "VK_FORMAT_R12X4G12X4_UNORM_2PACK16", + 1000156019: "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16", + 1000156020: "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16", + 1000156021: "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16", + 1000156022: "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16", + 1000156023: "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16", + 1000156024: "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16", + 1000156025: "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16", + 1000156026: "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16", + 1000156027: "VK_FORMAT_G16B16G16R16_422_UNORM", + 1000156028: "VK_FORMAT_B16G16R16G16_422_UNORM", + 1000156029: "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM", + 1000156030: "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM", + 1000156031: "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM", + 1000156032: "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM", + 1000156033: "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM", + 1000054000: "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG", + 1000054001: "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG", + 1000054002: "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG", + 1000054003: "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG", + 1000054004: "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG", + 1000054005: "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG", + 1000054006: "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG", + 1000054007: "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG", + 1000066000: "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT", + 1000066001: "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT", + 1000066002: "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT", + 1000066003: "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT", + 1000066004: "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT", + 1000066005: "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT", + 1000066006: "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT", + 1000066007: "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT", + 1000066008: "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT", + 1000066009: "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT", + 1000066010: "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT", + 1000066011: "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT", + 1000066012: "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT", + 1000066013: "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT", + 1000288000: "VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT", + 1000288001: "VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT", + 1000288002: "VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT", + 1000288003: "VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT", + 1000288004: "VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT", + 1000288005: "VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT", + 1000288006: "VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT", + 1000288007: "VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT", + 1000288008: "VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT", + 1000288009: "VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT", + 1000288010: "VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT", + 1000288011: "VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT", + 1000288012: "VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT", + 1000288013: "VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT", + 1000288014: "VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT", + 1000288015: "VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT", + 1000288016: "VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT", + 1000288017: "VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT", + 1000288018: "VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT", + 1000288019: "VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT", + 1000288020: "VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT", + 1000288021: "VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT", + 1000288022: "VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT", + 1000288023: "VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT", + 1000288024: "VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT", + 1000288025: "VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT", + 1000288026: "VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT", + 1000288027: "VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT", + 1000288028: "VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT", + 1000288029: "VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT", + 1000330000: "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT", + 1000330001: "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT", + 1000330002: "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT", + 1000330003: "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT", + 1000340000: "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT", + 1000340001: "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT", +} + +VkFrontFace = { + 0: "VK_FRONT_FACE_COUNTER_CLOCKWISE", + 1: "VK_FRONT_FACE_CLOCKWISE", +} + VkImageLayout = { 0: "VK_IMAGE_LAYOUT_UNDEFINED", 1: "VK_IMAGE_LAYOUT_GENERAL", @@ -148,6 +1609,62 @@ VkImageLayout = { 1000314001: "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR", } +VkImageTiling = { + 0: "VK_IMAGE_TILING_OPTIMAL", + 1: "VK_IMAGE_TILING_LINEAR", + 1000158000: "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT", +} + +VkImageType = { + 0: "VK_IMAGE_TYPE_1D", + 1: "VK_IMAGE_TYPE_2D", + 2: "VK_IMAGE_TYPE_3D", +} + +VkImageViewType = { + 0: "VK_IMAGE_VIEW_TYPE_1D", + 1: "VK_IMAGE_VIEW_TYPE_2D", + 2: "VK_IMAGE_VIEW_TYPE_3D", + 3: "VK_IMAGE_VIEW_TYPE_CUBE", + 4: "VK_IMAGE_VIEW_TYPE_1D_ARRAY", + 5: "VK_IMAGE_VIEW_TYPE_2D_ARRAY", + 6: "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", +} + +VkIndexType = { + 0: "VK_INDEX_TYPE_UINT16", + 1: "VK_INDEX_TYPE_UINT32", + 1000165000: "VK_INDEX_TYPE_NONE_KHR", + 1000265000: "VK_INDEX_TYPE_UINT8_EXT", +} + +VkLogicOp = { + 0: "VK_LOGIC_OP_CLEAR", + 1: "VK_LOGIC_OP_AND", + 2: "VK_LOGIC_OP_AND_REVERSE", + 3: "VK_LOGIC_OP_COPY", + 4: "VK_LOGIC_OP_AND_INVERTED", + 5: "VK_LOGIC_OP_NO_OP", + 6: "VK_LOGIC_OP_XOR", + 7: "VK_LOGIC_OP_OR", + 8: "VK_LOGIC_OP_NOR", + 9: "VK_LOGIC_OP_EQUIVALENT", + 10: "VK_LOGIC_OP_INVERT", + 11: "VK_LOGIC_OP_OR_REVERSE", + 12: "VK_LOGIC_OP_COPY_INVERTED", + 13: "VK_LOGIC_OP_OR_INVERTED", + 14: "VK_LOGIC_OP_NAND", + 15: "VK_LOGIC_OP_SET", +} + +VkPhysicalDeviceType = { + 0: "VK_PHYSICAL_DEVICE_TYPE_OTHER", + 1: "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU", + 2: "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU", + 3: "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU", + 4: "VK_PHYSICAL_DEVICE_TYPE_CPU", +} + VkPipelineBindPoint = { 0: "VK_PIPELINE_BIND_POINT_GRAPHICS", 1: "VK_PIPELINE_BIND_POINT_COMPUTE", @@ -155,6 +1672,87 @@ VkPipelineBindPoint = { 1000369003: "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI", } +VkPolygonMode = { + 0: "VK_POLYGON_MODE_FILL", + 1: "VK_POLYGON_MODE_LINE", + 2: "VK_POLYGON_MODE_POINT", + 1000153000: "VK_POLYGON_MODE_FILL_RECTANGLE_NV", +} + +VkPrimitiveTopology = { + 0: "VK_PRIMITIVE_TOPOLOGY_POINT_LIST", + 1: "VK_PRIMITIVE_TOPOLOGY_LINE_LIST", + 2: "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP", + 3: "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST", + 4: "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP", + 5: "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN", + 6: "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY", + 7: "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY", + 8: "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY", + 9: "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY", + 10: "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST", +} + +VkSampleCountFlagBits = { + 1: "VK_SAMPLE_COUNT_1_BIT", + 2: "VK_SAMPLE_COUNT_2_BIT", + 4: "VK_SAMPLE_COUNT_4_BIT", + 8: "VK_SAMPLE_COUNT_8_BIT", + 16: "VK_SAMPLE_COUNT_16_BIT", + 32: "VK_SAMPLE_COUNT_32_BIT", + 64: "VK_SAMPLE_COUNT_64_BIT", +} + +VkSamplerAddressMode = { + 0: "VK_SAMPLER_ADDRESS_MODE_REPEAT", + 1: "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT", + 2: "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + 3: "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER", + 4: "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", + 4: "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE", +} + +VkSamplerMipmapMode = { + 0: "VK_SAMPLER_MIPMAP_MODE_NEAREST", + 1: "VK_SAMPLER_MIPMAP_MODE_LINEAR", +} + +VkShaderStageFlagBits = { + 1: "VK_SHADER_STAGE_VERTEX_BIT", + 2: "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", + 4: "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", + 8: "VK_SHADER_STAGE_GEOMETRY_BIT", + 16: "VK_SHADER_STAGE_FRAGMENT_BIT", + 32: "VK_SHADER_STAGE_COMPUTE_BIT", + 31: "VK_SHADER_STAGE_ALL_GRAPHICS", + 2147483647: "VK_SHADER_STAGE_ALL", + 256: "VK_SHADER_STAGE_RAYGEN_BIT_KHR", + 512: "VK_SHADER_STAGE_ANY_HIT_BIT_KHR", + 1024: "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR", + 2048: "VK_SHADER_STAGE_MISS_BIT_KHR", + 4096: "VK_SHADER_STAGE_INTERSECTION_BIT_KHR", + 8192: "VK_SHADER_STAGE_CALLABLE_BIT_KHR", + 64: "VK_SHADER_STAGE_TASK_BIT_NV", + 128: "VK_SHADER_STAGE_MESH_BIT_NV", + 16384: "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI", +} + +VkSharingMode = { + 0: "VK_SHARING_MODE_EXCLUSIVE", + 1: "VK_SHARING_MODE_CONCURRENT", +} + +VkStencilOp = { + 0: "VK_STENCIL_OP_KEEP", + 1: "VK_STENCIL_OP_ZERO", + 2: "VK_STENCIL_OP_REPLACE", + 3: "VK_STENCIL_OP_INCREMENT_AND_CLAMP", + 4: "VK_STENCIL_OP_DECREMENT_AND_CLAMP", + 5: "VK_STENCIL_OP_INVERT", + 6: "VK_STENCIL_OP_INCREMENT_AND_WRAP", + 7: "VK_STENCIL_OP_DECREMENT_AND_WRAP", +} + VkStructureType = { 0: "VK_STRUCTURE_TYPE_APPLICATION_INFO", 1: "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO", @@ -785,3 +2383,8 @@ VkSubpassContents = { 1: "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS", } +VkVertexInputRate = { + 0: "VK_VERTEX_INPUT_RATE_VERTEX", + 1: "VK_VERTEX_INPUT_RATE_INSTANCE", +} + |