diff options
author | Jason Macnak <natsu@google.com> | 2023-05-19 14:54:16 -0700 |
---|---|---|
committer | Jason Macnak <natsu@google.com> | 2023-05-22 12:03:45 -0700 |
commit | ea00ab3f8f6e353fa252dc65cce0ae505d731651 (patch) | |
tree | 97952257a570478249f2b04f346ac862949a4d38 /codegen/vulkan/scripts/cereal/wrapperdefs.py | |
parent | f5d796021d5b76625d706cc9a3580a4aa9f75bb2 (diff) | |
download | gfxstream-protocols-ea00ab3f8f6e353fa252dc65cce0ae505d731651.tar.gz |
Prepare for move to hardware/google/gfxstream
Move codegen into what will become
hardware/google/gfxstream/codegen/vulkan
and move generated vulkan headers into what will become
hardware/google/gfxstream/common/vulkan.
Bug: 271464937
Test: presubmit
Test: python android/build/python/cmake.py --gfxstream
Change-Id: Ie0465ac72b4a2f7444b595cd1421e2e3cb1d0997
Diffstat (limited to 'codegen/vulkan/scripts/cereal/wrapperdefs.py')
-rw-r--r-- | codegen/vulkan/scripts/cereal/wrapperdefs.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/codegen/vulkan/scripts/cereal/wrapperdefs.py b/codegen/vulkan/scripts/cereal/wrapperdefs.py new file mode 100644 index 00000000..9b969875 --- /dev/null +++ b/codegen/vulkan/scripts/cereal/wrapperdefs.py @@ -0,0 +1,108 @@ +# Copyright (c) 2018 The Android Open Source Project +# Copyright (c) 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .common.codegen import VulkanWrapperGenerator +from .common.vulkantypes import makeVulkanTypeSimple + +# Contains definitions for various Vulkan API wrappers. This information is +# shared to make it easier for one kind of wrapper to know how to call +# another one. + +API_PREFIX_MARSHAL = "marshal_" +API_PREFIX_UNMARSHAL = "unmarshal_" +API_PREFIX_RESERVEDMARSHAL = "reservedmarshal_" +API_PREFIX_RESERVEDUNMARSHAL = "reservedunmarshal_" + +MARSHAL_INPUT_VAR_NAME = "forMarshaling" +UNMARSHAL_INPUT_VAR_NAME = "forUnmarshaling" + +API_PREFIX_VALIDATE = "validate_" +API_PREFIX_FRONTEND = "goldfish_frontend_" + +VULKAN_STREAM_TYPE = "VulkanStream" +VULKAN_STREAM_TYPE_GUEST = "VulkanStreamGuest" +VULKAN_STREAM_VAR_NAME = "vkStream" + +VALIDATE_RESULT_TYPE = "VkResult" +VALIDATE_VAR_NAME = "validateResult" +VALIDATE_GOOD_RESULT = "VK_SUCCESS" + +ROOT_TYPE_VAR_NAME = "rootType" +ROOT_TYPE_DEFAULT_VALUE = "VK_STRUCTURE_TYPE_MAX_ENUM" +ROOT_TYPE_TYPE = "VkStructureType" +ROOT_TYPE_PARAM = makeVulkanTypeSimple( + False, ROOT_TYPE_TYPE, 0, ROOT_TYPE_VAR_NAME) + +PARAMETERS_MARSHALING = [ + makeVulkanTypeSimple(False, VULKAN_STREAM_TYPE, 1, VULKAN_STREAM_VAR_NAME), + ROOT_TYPE_PARAM, +] +PARAMETERS_MARSHALING_GUEST = [ + makeVulkanTypeSimple(False, VULKAN_STREAM_TYPE_GUEST, + 1, VULKAN_STREAM_VAR_NAME), + ROOT_TYPE_PARAM, +] +PARAMETERS_VALIDATE = [ + makeVulkanTypeSimple(False, VALIDATE_RESULT_TYPE, 1, VALIDATE_VAR_NAME) +] +PARAMETERS_COUNTING = [ + makeVulkanTypeSimple(False, "size_t", 1, VULKAN_STREAM_VAR_NAME) +] + +STRUCT_EXTENSION_PARAM = \ + makeVulkanTypeSimple(True, "void", 1, "structExtension") + +STRUCT_EXTENSION_PARAM2 = \ + makeVulkanTypeSimple(True, "void", 1, "structExtension2") + +STRUCT_EXTENSION_PARAM_FOR_WRITE = \ + makeVulkanTypeSimple(False, "void", 1, "structExtension_out") + +STRUCT_TYPE_API_NAME = "goldfish_vk_struct_type" +EXTENSION_SIZE_API_NAME = "goldfish_vk_extension_struct_size" +EXTENSION_SIZE_WITH_STREAM_FEATURES_API_NAME = "goldfish_vk_extension_struct_size_with_stream_features" + +VOID_TYPE = makeVulkanTypeSimple(False, "void", 0) +STREAM_RET_TYPE = makeVulkanTypeSimple(False, "void", 0) + +API_PREFIX_EQUALITY = "checkEqual_" +EQUALITY_VAR_NAMES = ["a", "b"] +EQUALITY_ON_FAIL_VAR = "onFail" +EQUALITY_ON_FAIL_VAR_TYPE = makeVulkanTypeSimple(False, "OnFailCompareFunc", 0, + EQUALITY_ON_FAIL_VAR) +EQUALITY_RET_TYPE = makeVulkanTypeSimple(False, "void", 0) + +RELAXED_APIS = [ + "vkWaitForFences", + "vkWaitSemaphores", + "vkWaitSemaphoresKHR", + "vkQueueWaitIdle", + "vkDeviceWaitIdle", + "vkQueueFlushCommandsGOOGLE", +] + +STYPE_OVERRIDE = { + "VkPhysicalDeviceFragmentDensityMapFeaturesEXT": "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT", + "VkPhysicalDeviceFragmentDensityMapPropertiesEXT": "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT", + "VkRenderPassFragmentDensityMapCreateInfoEXT": "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT", + "VkImportColorBufferGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE", + "VkImportBufferGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE", + "VkCreateBlobGOOGLE": "VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE", +} + +MAX_PACKET_LENGTH = "(400 * 1024 * 1024) // 400MB" + + + |