2023-08-16 00:20:26 +10:00
|
|
|
/* SPDX-FileCopyrightText: 2022 Blender Authors
|
2023-05-31 16:19:06 +02:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
2022-12-02 08:35:17 +01:00
|
|
|
|
|
|
|
|
/** \file
|
|
|
|
|
* \ingroup gpu
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "vk_pixel_buffer.hh"
|
|
|
|
|
|
2023-03-24 07:47:50 +01:00
|
|
|
#include "vk_context.hh"
|
|
|
|
|
|
2022-12-02 08:35:17 +01:00
|
|
|
namespace blender::gpu {
|
|
|
|
|
|
2022-12-03 10:53:44 +13:00
|
|
|
VKPixelBuffer::VKPixelBuffer(int64_t size) : PixelBuffer(size)
|
2022-12-02 08:35:17 +01:00
|
|
|
{
|
2023-05-04 10:06:48 +02:00
|
|
|
buffer_.create(size,
|
2023-03-13 19:25:18 +01:00
|
|
|
GPU_USAGE_STATIC,
|
|
|
|
|
static_cast<VkBufferUsageFlagBits>(VK_BUFFER_USAGE_TRANSFER_SRC_BIT |
|
|
|
|
|
VK_BUFFER_USAGE_TRANSFER_DST_BIT));
|
2023-05-04 10:06:48 +02:00
|
|
|
debug::object_label(buffer_.vk_handle(), "PixelBuffer");
|
2022-12-02 08:35:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *VKPixelBuffer::map()
|
|
|
|
|
{
|
2023-03-13 19:25:18 +01:00
|
|
|
/* Vulkan buffers are always mapped between allocation and freeing. */
|
|
|
|
|
return buffer_.mapped_memory_get();
|
2022-12-02 08:35:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void VKPixelBuffer::unmap()
|
|
|
|
|
{
|
2023-03-13 19:25:18 +01:00
|
|
|
/* Vulkan buffers are always mapped between allocation and freeing. */
|
2022-12-02 08:35:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int64_t VKPixelBuffer::get_native_handle()
|
|
|
|
|
{
|
2023-03-13 19:25:18 +01:00
|
|
|
return int64_t(buffer_.vk_handle());
|
2022-12-02 08:35:17 +01:00
|
|
|
}
|
|
|
|
|
|
2023-05-25 08:50:14 +02:00
|
|
|
size_t VKPixelBuffer::get_size()
|
2022-12-02 08:35:17 +01:00
|
|
|
{
|
|
|
|
|
return size_;
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-31 15:49:04 +11:00
|
|
|
} // namespace blender::gpu
|