Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3dd678a6 authored by Jesse Hall's avatar Jesse Hall
Browse files

vulkan: Update from version 0.221.0 to 1.0!

Change-Id: I9453454cc47046ad9f64a72a812a4e5da694c223
(cherry picked from commit 3fc8ed14c5d6890348400bf3e6dab2870b3fbbc5)
parent 543a7ffb
Loading
Loading
Loading
Loading
+82 −73
Original line number Diff line number Diff line
@@ -26,8 +26,8 @@ import platform "platform.api"
///////////////

// API version (major.minor.patch)
define VERSION_MAJOR 0
define VERSION_MINOR 221
define VERSION_MAJOR 1
define VERSION_MINOR 0
define VERSION_PATCH 0

// API limits
@@ -252,7 +252,6 @@ enum VkFilter {
}

enum VkSamplerMipmapMode {
    VK_SAMPLER_MIPMAP_MODE_BASE                             = 0x00000000,   /// Always choose base level
    VK_SAMPLER_MIPMAP_MODE_NEAREST                          = 0x00000001,   /// Choose nearest mip level
    VK_SAMPLER_MIPMAP_MODE_LINEAR                           = 0x00000002,   /// Linear filter between mip levels
}
@@ -604,13 +603,14 @@ enum VkStructureType {
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = 38,
    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                  = 39,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO              = 40,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 41,
    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 42,
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 43,
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 44,
    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 45,
    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = 46,
    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = 47,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO           = 41,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = 42,
    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = 43,
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = 44,
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = 45,
    VK_STRUCTURE_TYPE_MEMORY_BARRIER                            = 46,
    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = 47,
    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = 48,

    //@extension("VK_KHR_swapchain")
    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                 = 1000001000,
@@ -1266,14 +1266,14 @@ class VkOffset3D {
}

class VkExtent2D {
    s32                                         width
    s32                                         height
    u32                                         width
    u32                                         height
}

class VkExtent3D {
    s32                                         width
    s32                                         height
    s32                                         depth
    u32                                         width
    u32                                         height
    u32                                         depth
}

class VkViewport {
@@ -1373,9 +1373,9 @@ class VkDeviceCreateInfo {
    VkDeviceCreateFlags                         flags
    u32                                         queueCreateInfoCount
    const VkDeviceQueueCreateInfo*              pQueueCreateInfos
    u32                                         enabledLayerNameCount
    u32                                         enabledLayerCount
    const char* const*                          ppEnabledLayerNames        /// Ordered list of layer names to be enabled
    u32                                         enabledExtensionNameCount
    u32                                         enabledExtensionCount
    const char* const*                          ppEnabledExtensionNames
    const VkPhysicalDeviceFeatures*             pEnabledFeatures
}
@@ -1385,9 +1385,9 @@ class VkInstanceCreateInfo {
    const void*                                 pNext                      /// Pointer to next structure
    VkInstanceCreateFlags                       flags
    const VkApplicationInfo*                    pApplicationInfo
    u32                                         enabledLayerNameCount
    u32                                         enabledLayerCount
    const char* const*                          ppEnabledLayerNames        /// Ordered list of layer names to be enabled
    u32                                         enabledExtensionNameCount
    u32                                         enabledExtensionCount
    const char* const*                          ppEnabledExtensionNames    /// Extension names to be enabled
}

@@ -1678,11 +1678,9 @@ class VkImageCopy {

class VkImageBlit {
    VkImageSubresourceLayers                    srcSubresource
    VkOffset3D                                  srcOffset              /// Specified in pixels for both compressed and uncompressed images
    VkExtent3D                                  srcExtent              /// Specified in pixels for both compressed and uncompressed images
    VkOffset3D[2]                               srcOffsets
    VkImageSubresourceLayers                    dstSubresource
    VkOffset3D                                  dstOffset              /// Specified in pixels for both compressed and uncompressed images
    VkExtent3D                                  dstExtent              /// Specified in pixels for both compressed and uncompressed images
    VkOffset3D[2]                               dstOffsets
}

class VkBufferImageCopy {
@@ -1952,7 +1950,7 @@ class VkPipelineLayoutCreateInfo {
    VkStructureType                             sType                   /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
    const void*                                 pNext                   /// Pointer to next structure
    VkPipelineLayoutCreateFlags                 flags
    u32                                         setLayoutCount          /// Number of descriptor sets interfaced by the pipeline
    u32                                         descriptorSetCount      /// Number of descriptor sets interfaced by the pipeline
    const VkDescriptorSetLayout*                pSetLayouts             /// Array of <setCount> number of descriptor set layout objects defining the layout of the
    u32                                         pushConstantRangeCount  /// Number of push-constant ranges used by the pipeline
    const VkPushConstantRange*                  pPushConstantRanges     /// Array of pushConstantRangeCount number of ranges used by various shader stages
@@ -1991,13 +1989,12 @@ class VkCommandBufferAllocateInfo {
    const void*                                 pNext      /// Pointer to next structure
    VkCommandPool                               commandPool
    VkCommandBufferLevel                        level
    u32                                         bufferCount
    u32                                         commandBufferCount
}

class VkCommandBufferBeginInfo {
    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
class VkCommandBufferInheritanceInfo {
    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
    const void*                                 pNext       /// Pointer to next structure
    VkCommandBufferUsageFlags                   flags       /// Command buffer usage flags
    VkRenderPass                                renderPass  /// Render pass for secondary command buffers
    u32                                         subpass
    VkFramebuffer                               framebuffer /// Framebuffer for secondary command buffers
@@ -2006,6 +2003,13 @@ class VkCommandBufferBeginInfo {
    VkQueryPipelineStatisticFlags               pipelineStatistics
}

class VkCommandBufferBeginInfo {
    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
    const void*                                 pNext       /// Pointer to next structure
    VkCommandBufferUsageFlags                   flags       /// Command buffer usage flags
    const VkCommandBufferInheritanceInfo*       pInheritanceInfo
}

class VkRenderPassBeginInfo {
    VkStructureType                             sType       /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
    const void*                                 pNext       /// Pointer to next structure
@@ -2069,7 +2073,7 @@ class VkSubpassDescription {
    const VkAttachmentReference*                pResolveAttachments
    const VkAttachmentReference*                pDepthStencilAttachment
    u32                                         preserveAttachmentCount
    const VkAttachmentReference*                pPreserveAttachments
    const u32*                                  pPreserveAttachments
}

class VkSubpassDependency {
@@ -2313,7 +2317,7 @@ class VkQueryPoolCreateInfo {
    const void*                                 pNext              /// Pointer to next structure
    VkQueryPoolCreateFlags                      flags
    VkQueryType                                 queryType
    u32                                         entryCount
    u32                                         queryCount
    VkQueryPipelineStatisticFlags               pipelineStatistics /// Optional
}

@@ -2595,8 +2599,8 @@ cmd VkResult vkCreateInstance(
    pInstance[0] = instance
    State.Instances[instance] = new!InstanceObject()

    layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerNameCount]
    extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionNameCount]
    layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
    extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]

    return ?
}
@@ -3959,7 +3963,7 @@ cmd VkResult vkAllocateCommandBuffers(
        VkCommandBuffer*                            pCommandBuffers) {
    assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)

    count := pAllocateInfo[0].bufferCount
    count := pAllocateInfo[0].commandBufferCount
    commandBuffers := pCommandBuffers[0:count]
    for i in (0 .. count) {
        commandBuffer := ?
@@ -4548,7 +4552,11 @@ cmd void vkCmdWaitEvents(
        VkPipelineStageFlags                        srcStageMask,
        VkPipelineStageFlags                        dstStageMask,
        u32                                         memoryBarrierCount,
        const void* const*                          ppMemoryBarriers) {
        const VkMemoryBarrier*                      pMemoryBarriers,
        u32                                         bufferMemoryBarrierCount,
        const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
        u32                                         imageMemoryBarrierCount,
        const VkImageMemoryBarrier*                 pImageMemoryBarriers) {
    commandBufferObject := GetCommandBuffer(commandBuffer)

    events := pEvents[0:eventCount]
@@ -4558,23 +4566,21 @@ cmd void vkCmdWaitEvents(
        assert(commandBufferObject.device == eventObject.device)
    }

    pMemoryBarriers := ppMemoryBarriers[0:memoryBarrierCount]
    memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
    for i in (0 .. memoryBarrierCount) {
        switch as!VkMemoryBarrier const*(pMemoryBarriers[i])[0].sType {
            case VK_STRUCTURE_TYPE_MEMORY_BARRIER: {
                memoryBarrier := as!VkMemoryBarrier const*(pMemoryBarriers[i])[0]
        memoryBarrier := memoryBarriers[i]
    }
            case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: {
                imageMemoryBarrier := as!VkImageMemoryBarrier const*(pMemoryBarriers[i])[0]
                imageObject := GetImage(imageMemoryBarrier.image)
                assert(imageObject.device == commandBufferObject.device)
            }
            case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: {
                bufferMemoryBarrier := as!VkBufferMemoryBarrier const*(pMemoryBarriers[i])[0]
    bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
    for i in (0 .. bufferMemoryBarrierCount) {
        bufferMemoryBarrier := bufferMemoryBarriers[i]
        bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
        assert(bufferObject.device == commandBufferObject.device)
    }
        }
    imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
    for i in (0 .. imageMemoryBarrierCount) {
        imageMemoryBarrier := imageMemoryBarriers[i]
        imageObject := GetImage(imageMemoryBarrier.image)
        assert(imageObject.device == commandBufferObject.device)
    }
}

@@ -4585,26 +4591,28 @@ cmd void vkCmdPipelineBarrier(
        VkPipelineStageFlags                        dstStageMask,
        VkDependencyFlags                           dependencyFlags,
        u32                                         memoryBarrierCount,
        const void* const*                          ppMemoryBarriers) {
        const VkMemoryBarrier*                      pMemoryBarriers,
        u32                                         bufferMemoryBarrierCount,
        const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
        u32                                         imageMemoryBarrierCount,
        const VkImageMemoryBarrier*                 pImageMemoryBarriers) {
    commandBufferObject := GetCommandBuffer(commandBuffer)

    pMemoryBarriers := ppMemoryBarriers[0:memoryBarrierCount]
    memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
    for i in (0 .. memoryBarrierCount) {
        switch as!VkMemoryBarrier const*(pMemoryBarriers[i])[0].sType {
            case VK_STRUCTURE_TYPE_MEMORY_BARRIER: {
                memoryBarrier := as!VkMemoryBarrier const*(pMemoryBarriers[i])[0]
            }
            case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: {
                imageMemoryBarrier := as!VkImageMemoryBarrier const*(pMemoryBarriers[i])[0]
                imageObject := GetImage(imageMemoryBarrier.image)
                assert(imageObject.device == commandBufferObject.device)
        memoryBarrier := memoryBarriers[i]
    }
            case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: {
                bufferMemoryBarrier := as!VkBufferMemoryBarrier const*(pMemoryBarriers[i])[0]
    bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
    for i in (0 .. bufferMemoryBarrierCount) {
        bufferMemoryBarrier := bufferMemoryBarriers[i]
        bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
        assert(bufferObject.device == commandBufferObject.device)
    }
        }
    imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
    for i in (0 .. imageMemoryBarrierCount) {
        imageMemoryBarrier := imageMemoryBarriers[i]
        imageObject := GetImage(imageMemoryBarrier.image)
        assert(imageObject.device == commandBufferObject.device)
    }
}

@@ -4612,7 +4620,7 @@ cmd void vkCmdPipelineBarrier(
cmd void vkCmdBeginQuery(
        VkCommandBuffer                             commandBuffer,
        VkQueryPool                                 queryPool,
        u32                                         entry,
        u32                                         query,
        VkQueryControlFlags                         flags) {
    commandBufferObject := GetCommandBuffer(commandBuffer)
    queryPoolObject := GetQueryPool(queryPool)
@@ -4623,7 +4631,7 @@ cmd void vkCmdBeginQuery(
cmd void vkCmdEndQuery(
        VkCommandBuffer                             commandBuffer,
        VkQueryPool                                 queryPool,
        u32                                         entry) {
        u32                                         query) {
    commandBufferObject := GetCommandBuffer(commandBuffer)
    queryPoolObject := GetQueryPool(queryPool)
    assert(commandBufferObject.device == queryPoolObject.device)
@@ -4645,7 +4653,7 @@ cmd void vkCmdWriteTimestamp(
        VkCommandBuffer                             commandBuffer,
        VkPipelineStageFlagBits                     pipelineStage,
        VkQueryPool                                 queryPool,
        u32                                         entry) {
        u32                                         query) {
    commandBufferObject := GetCommandBuffer(commandBuffer)
    queryPoolObject := GetQueryPool(queryPool)
    assert(commandBufferObject.device == queryPoolObject.device)
@@ -4710,12 +4718,12 @@ cmd void vkCmdEndRenderPass(

cmd void vkCmdExecuteCommands(
        VkCommandBuffer                             commandBuffer,
        u32                                         commandBuffersCount,
        u32                                         commandBufferCount,
        const VkCommandBuffer*                      pCommandBuffers) {
    commandBufferObject := GetCommandBuffer(commandBuffer)

    commandBuffers := pCommandBuffers[0:commandBuffersCount]
    for i in (0 .. commandBuffersCount) {
    commandBuffers := pCommandBuffers[0:commandBufferCount]
    for i in (0 .. commandBufferCount) {
        secondaryCommandBuffer := commandBuffers[i]
        secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
        assert(commandBufferObject.device == secondaryCommandBufferObject.device)
@@ -4897,6 +4905,7 @@ cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
@extension("VK_KHR_display")
cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
        VkPhysicalDevice                        physicalDevice,
        u32                                     planeIndex,
        u32*                                    pDisplayCount,
        VkDisplayKHR*                           pDisplays) {
    physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+87 −74

File changed.

Preview size limit exceeded, changes collapsed.

+12 −12
Original line number Diff line number Diff line
@@ -1920,23 +1920,23 @@ VKAPI_ATTR void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, Vk
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers) {
    GetDispatchTable(commandBuffer).CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, ppMemoryBarriers);
VKAPI_ATTR void vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
    GetDispatchTable(commandBuffer).CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers) {
    GetDispatchTable(commandBuffer).CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, ppMemoryBarriers);
VKAPI_ATTR void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
    GetDispatchTable(commandBuffer).CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags) {
    GetDispatchTable(commandBuffer).CmdBeginQuery(commandBuffer, queryPool, entry, flags);
VKAPI_ATTR void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
    GetDispatchTable(commandBuffer).CmdBeginQuery(commandBuffer, queryPool, query, flags);
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry) {
    GetDispatchTable(commandBuffer).CmdEndQuery(commandBuffer, queryPool, entry);
VKAPI_ATTR void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
    GetDispatchTable(commandBuffer).CmdEndQuery(commandBuffer, queryPool, query);
}

__attribute__((visibility("default")))
@@ -1945,8 +1945,8 @@ VKAPI_ATTR void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool q
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry) {
    GetDispatchTable(commandBuffer).CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, entry);
VKAPI_ATTR void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
    GetDispatchTable(commandBuffer).CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
}

__attribute__((visibility("default")))
@@ -1975,8 +1975,8 @@ VKAPI_ATTR void vkCmdEndRenderPass(VkCommandBuffer commandBuffer) {
}

__attribute__((visibility("default")))
VKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers) {
    GetDispatchTable(commandBuffer).CmdExecuteCommands(commandBuffer, commandBuffersCount, pCommandBuffers);
VKAPI_ATTR void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
    GetDispatchTable(commandBuffer).CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
}

__attribute__((visibility("default")))
+8 −8
Original line number Diff line number Diff line
@@ -383,7 +383,7 @@ VkResult ActivateAllLayers(TInfo create_info,
        }
    }
    // Load app layers
    for (uint32_t i = 0; i < create_info->enabledLayerNameCount; ++i) {
    for (uint32_t i = 0; i < create_info->enabledLayerCount; ++i) {
        if (!ActivateLayer(object, create_info->ppEnabledLayerNames[i])) {
            ALOGE("requested %s layer '%s' not present",
                  create_info->sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
@@ -400,18 +400,18 @@ template <class TCreateInfo>
bool AddExtensionToCreateInfo(TCreateInfo& local_create_info,
                              const char* extension_name,
                              const VkAllocationCallbacks* alloc) {
    for (uint32_t i = 0; i < local_create_info.enabledExtensionNameCount; ++i) {
    for (uint32_t i = 0; i < local_create_info.enabledExtensionCount; ++i) {
        if (!strcmp(extension_name,
                    local_create_info.ppEnabledExtensionNames[i])) {
            return false;
        }
    }
    uint32_t extension_count = local_create_info.enabledExtensionNameCount;
    local_create_info.enabledExtensionNameCount++;
    uint32_t extension_count = local_create_info.enabledExtensionCount;
    local_create_info.enabledExtensionCount++;
    void* mem = alloc->pfnAllocation(
        alloc->pUserData,
        local_create_info.enabledExtensionNameCount * sizeof(char*),
        alignof(char*), VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
        local_create_info.enabledExtensionCount * sizeof(char*), alignof(char*),
        VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
    if (mem) {
        const char** enabled_extensions = static_cast<const char**>(mem);
        for (uint32_t i = 0; i < extension_count; ++i) {
@@ -423,7 +423,7 @@ bool AddExtensionToCreateInfo(TCreateInfo& local_create_info,
    } else {
        ALOGW("%s extension cannot be enabled: memory allocation failed",
              extension_name);
        local_create_info.enabledExtensionNameCount--;
        local_create_info.enabledExtensionCount--;
        return false;
    }
    return true;
@@ -1022,7 +1022,7 @@ VkResult AllocateCommandBuffers_Top(
        table.AllocateCommandBuffers(vkdevice, alloc_info, cmdbufs);
    if (result != VK_SUCCESS)
        return result;
    for (uint32_t i = 0; i < alloc_info->bufferCount; i++) {
    for (uint32_t i = 0; i < alloc_info->commandBufferCount; i++) {
        hwvulkan_dispatch_t* cmdbuf_dispatch =
            reinterpret_cast<hwvulkan_dispatch_t*>(cmdbufs[i]);
        ALOGE_IF(cmdbuf_dispatch->magic != HWVULKAN_DISPATCH_MAGIC,
+8 −5
Original line number Diff line number Diff line
@@ -226,7 +226,8 @@ VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR_Bottom(
        return VK_ERROR_INITIALIZATION_FAILED;
    }

    capabilities->currentExtent = VkExtent2D{width, height};
    capabilities->currentExtent =
        VkExtent2D{static_cast<uint32_t>(width), static_cast<uint32_t>(height)};

    // TODO(jessehall): Figure out what the min/max values should be.
    capabilities->minImageCount = 2;
@@ -341,9 +342,9 @@ VkResult CreateSwapchainKHR_Bottom(VkDevice device,
    Surface& surface = *SurfaceFromHandle(create_info->surface);
    const DriverDispatchTable& dispatch = GetDriverDispatch(device);

    err = native_window_set_buffers_dimensions(surface.window.get(),
                                               create_info->imageExtent.width,
                                               create_info->imageExtent.height);
    err = native_window_set_buffers_dimensions(
        surface.window.get(), static_cast<int>(create_info->imageExtent.width),
        static_cast<int>(create_info->imageExtent.height));
    if (err != 0) {
        // TODO(jessehall): Improve error reporting. Can we enumerate possible
        // errors and translate them to valid Vulkan result codes?
@@ -459,7 +460,9 @@ VkResult CreateSwapchainKHR_Bottom(VkDevice device,
        img.dequeued = true;

        image_create.extent =
            VkExtent3D{img.buffer->width, img.buffer->height, 1};
            VkExtent3D{static_cast<uint32_t>(img.buffer->width),
                       static_cast<uint32_t>(img.buffer->height),
                       1};
        image_native_buffer.handle = img.buffer->handle;
        image_native_buffer.stride = img.buffer->stride;
        image_native_buffer.format = img.buffer->format;
Loading