Edit

kc3-lang/angle/src/common/aligned_memory.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-01-09 17:21:54
    Hash : 2cc2a727
    Message : common: Add aligned memory allocator. This will be useful for the Vulkan pipeline state cache. This cache wants to pack the pipeline description very carefully into a specific number of bits, using the "alignas" keyword. Using this keyword requires an aligned allocator, which we can lift from Chromium's base/memory submodule. Also includes a unittest copied from Chrome. Bug: angleproject:2163 Change-Id: I25976be4610636db3f43552bba23d823f5a49a24 Reviewed-on: https://chromium-review.googlesource.com/837944 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Frank Henigman <fjhenigman@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>

  • src/common/aligned_memory.h
  • //
    // Copyright 2017 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // aligned_memory: An aligned memory allocator. Based on Chrome's base/memory/aligned_memory.
    //
    
    #ifndef COMMON_ALIGNED_MEMORY_H_
    #define COMMON_ALIGNED_MEMORY_H_
    
    #include <cstddef>
    
    namespace angle
    {
    
    // This can be replaced with std::aligned_malloc when we have C++17.
    void *AlignedAlloc(size_t size, size_t alignment);
    void AlignedFree(void *ptr);
    
    }  // namespace angle
    
    #endif  // COMMON_ALIGNED_MEMORY_H_