|
Blender V5.0
|
#include <vk_index_buffer.hh>
Inherits blender::gpu::IndexBuf.
Public Member Functions | |
| void | upload_data () override |
| void | bind_as_ssbo (uint binding) override |
| void | read (uint32_t *data) const override |
| void | update_sub (uint start, uint len, const void *data) override |
| VkBuffer | vk_handle () const |
| VkDeviceAddress | device_address_get () const |
| VkIndexType | vk_index_type () const |
| void | ensure_updated () |
| Public Member Functions inherited from blender::gpu::IndexBuf | |
| IndexBuf () | |
| virtual | ~IndexBuf () |
| void | init (uint indices_len, uint32_t *indices, uint min_index, uint max_index, GPUPrimType prim_type, bool uses_restart_indices) |
| void | init_subrange (IndexBuf *elem_src, uint start, uint length) |
| void | init_build_on_device (uint index_len) |
| uint32_t | index_len_get () const |
| uint32_t | index_start_get () const |
| uint32_t | index_base_get () const |
| bool | is_32bit () const |
| size_t | size_get () const |
| bool | is_init () const |
Additional Inherited Members | |
| Protected Attributes inherited from blender::gpu::IndexBuf | |
| GPUIndexBufType | index_type_ = GPU_INDEX_U32 |
| uint32_t | index_start_ = 0 |
| uint32_t | index_len_ = 0 |
| uint32_t | index_base_ = 0 |
| bool | is_init_ = false |
| bool | is_subrange_ = false |
| bool | is_empty_ = false |
| union { | |
| void * data_ = nullptr | |
| IndexBuf * src_ | |
| }; | |
Definition at line 17 of file vk_index_buffer.hh.
|
overridevirtual |
Implements blender::gpu::IndexBuf.
Definition at line 72 of file vk_index_buffer.cc.
References blender::gpu::VKContext::get(), blender::gpu::BindSpaceStorageBuffers::IndexBuffer, blender::gpu::IndexBuf::is_subrange_, blender::gpu::IndexBuf::src_, blender::gpu::VKContext::state_manager_get(), and blender::gpu::VKStateManager::storage_buffer_bind().
|
inline |
Definition at line 34 of file vk_index_buffer.hh.
References buffer_get.
| void blender::gpu::VKIndexBuffer::ensure_updated | ( | ) |
Definition at line 21 of file vk_index_buffer.cc.
References CLOG_ERROR, blender::gpu::VKStagingBuffer::copy_to_device(), blender::gpu::IndexBuf::data_, blender::gpu::VKContext::get(), blender::gpu::VKStagingBuffer::host_buffer_get(), blender::gpu::VKStagingBuffer::HostToDevice, blender::gpu::VKBuffer::is_allocated(), blender::gpu::IndexBuf::is_subrange_, blender::gpu::LOG, MEM_SAFE_FREE, blender::gpu::IndexBuf::src_, and blender::gpu::VKBuffer::update_immediately().
Referenced by upload_data().
|
overridevirtual |
Implements blender::gpu::IndexBuf.
Definition at line 83 of file vk_index_buffer.cc.
References CLOG_ERROR, blender::gpu::VKStagingBuffer::copy_from_device(), data, blender::gpu::VKStagingBuffer::DeviceToHost, blender::gpu::VKContext::get(), blender::gpu::VKStagingBuffer::host_buffer_get(), blender::gpu::VKBuffer::is_mapped(), blender::gpu::LOG, and blender::gpu::VKBuffer::read().
|
overridevirtual |
Implements blender::gpu::IndexBuf.
Definition at line 99 of file vk_index_buffer.cc.
References NOT_YET_IMPLEMENTED.
|
overridevirtual |
Implements blender::gpu::IndexBuf.
Definition at line 67 of file vk_index_buffer.cc.
References ensure_updated().
Referenced by blender::gpu::VKBatch::draw(), and blender::gpu::VKBatch::multi_draw_indirect().
|
inline |
Definition at line 30 of file vk_index_buffer.hh.
References buffer_get.
Referenced by blender::gpu::VKBatch::draw(), and blender::gpu::VKBatch::multi_draw_indirect().
|
inline |
Definition at line 38 of file vk_index_buffer.hh.
References blender::gpu::IndexBuf::index_type_, and blender::gpu::to_vk_index_type().
Referenced by blender::gpu::VKBatch::draw(), and blender::gpu::VKBatch::multi_draw_indirect().