You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.8 KiB
107 lines
3.8 KiB
# 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",
|
|
"VkImportPhysicalAddressGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE",
|
|
"VkImportBufferGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE",
|
|
}
|
|
|
|
|
|
|