Edit

IABSD.fr/xenocara/lib/mesa/src/vulkan/util/vk_alloc.c

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2023-01-28 08:09:28
    Hash : 5642995e
    Message : Import Mesa 22.3.4

  • lib/mesa/src/vulkan/util/vk_alloc.c
  • /*
     * Copyright 2021 Google LLC
     * SPDX-License-Identifier: MIT
     */
    
    #include "vk_alloc.h"
    
    #include <stdlib.h>
    
    #ifndef _MSC_VER
    #include <stddef.h>
    #define MAX_ALIGN alignof(max_align_t)
    #else
    /* long double might be 128-bit, but our callers do not need that anyway(?) */
    #include <stdint.h>
    #define MAX_ALIGN alignof(uint64_t)
    #endif
    
    static VKAPI_ATTR void * VKAPI_CALL
    vk_default_alloc(void *pUserData,
                     size_t size,
                     size_t alignment,
                     VkSystemAllocationScope allocationScope)
    {
       assert(MAX_ALIGN % alignment == 0);
       return malloc(size);
    }
    
    static VKAPI_ATTR void * VKAPI_CALL
    vk_default_realloc(void *pUserData,
                       void *pOriginal,
                       size_t size,
                       size_t alignment,
                       VkSystemAllocationScope allocationScope)
    {
       assert(MAX_ALIGN % alignment == 0);
       return realloc(pOriginal, size);
    }
    
    static VKAPI_ATTR void VKAPI_CALL
    vk_default_free(void *pUserData, void *pMemory)
    {
       free(pMemory);
    }
    
    const VkAllocationCallbacks *
    vk_default_allocator(void)
    {
       static const VkAllocationCallbacks allocator = {
          .pfnAllocation = vk_default_alloc,
          .pfnReallocation = vk_default_realloc,
          .pfnFree = vk_default_free,
       };
       return &allocator;
    }