Edit

IABSD.fr/xenocara/lib/mesa/src/gfxstream/codegen/scripts/cereal/wrapperdefs.py

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2025-06-05 11:23:11
    Hash : 67d6f117
    Message : Import Mesa 25.0.7

  • lib/mesa/src/gfxstream/codegen/scripts/cereal/wrapperdefs.py
  • # Copyright 2018 Google LLC
    # SPDX-License-Identifier: MIT
    
    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"