Hash :
2cc2a727
Author :
Date :
2018-01-09T17:21:54
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>
//
// 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_