VapourSynth-llvmexpr
Loading...
Searching...
No Matches
vkexpr::VkExprExecutor::Impl::Stream Struct Reference

Public Member Functions

 Stream ()=default
 ~Stream ()
 Stream (const Stream &)=delete
Streamoperator= (const Stream &)=delete
 Stream (Stream &&)=delete
Streamoperator= (Stream &&)=delete
void freePlaneResources (PlaneResources &res) const

Public Attributes

std::unique_ptr< VulkanMemorymemory
std::array< std::vector< std::unique_ptr< VulkanComputePipeline > >, 3 > pipelines
std::array< PlaneResources, 3 > plane_resources
vk::raii::CommandPool command_pool = nullptr
vk::raii::CommandBuffer command_buffer = nullptr
vk::raii::Fence fence = nullptr

Detailed Description

Definition at line 286 of file VkExprExecutor.cpp.

Constructor & Destructor Documentation

◆ Stream() [1/3]

vkexpr::VkExprExecutor::Impl::Stream::Stream ( )
default

Referenced by operator=(), operator=(), Stream(), and Stream().

◆ ~Stream()

vkexpr::VkExprExecutor::Impl::Stream::~Stream ( )
inline

Definition at line 296 of file VkExprExecutor.cpp.

296 {
297 for (auto& res : plane_resources) {
299 }
300 }
void freePlaneResources(PlaneResources &res) const
std::array< PlaneResources, 3 > plane_resources

References freePlaneResources(), and plane_resources.

◆ Stream() [2/3]

vkexpr::VkExprExecutor::Impl::Stream::Stream ( const Stream & )
delete

References Stream().

◆ Stream() [3/3]

vkexpr::VkExprExecutor::Impl::Stream::Stream ( Stream && )
delete

References Stream().

Member Function Documentation

◆ freePlaneResources()

void vkexpr::VkExprExecutor::Impl::Stream::freePlaneResources ( PlaneResources & res) const
inline

Definition at line 307 of file VkExprExecutor.cpp.

307 {
308 if (res.initialized) {
309 for (auto& buf : res.input_buffers) {
310 memory->destroyBuffer(buf);
311 }
312 for (auto& buf : res.input_staging_buffers) {
313 memory->destroyBuffer(buf);
314 }
315 res.input_buffers.clear();
316 res.input_staging_buffers.clear();
317
318 memory->destroyBuffer(res.output_buffer);
319 memory->destroyBuffer(res.output_staging_buffer);
320
321 for (auto& buf : res.intermediate_buffers) {
322 memory->destroyBuffer(buf);
323 }
324 res.intermediate_buffers.clear();
325
326 res.initialized = false;
327 res.buffer_size = 0;
328 }
329
330 if (res.props_buffer.isValid()) {
331 memory->destroyBuffer(res.props_buffer);
332 memory->destroyBuffer(res.props_staging_buffer);
333 res.props_size = 0;
334 }
335 }
std::unique_ptr< VulkanMemory > memory

References vkexpr::VkExprExecutor::Impl::PlaneResources::buffer_size, vkexpr::VkExprExecutor::Impl::PlaneResources::initialized, vkexpr::VkExprExecutor::Impl::PlaneResources::input_buffers, vkexpr::VkExprExecutor::Impl::PlaneResources::input_staging_buffers, vkexpr::VkExprExecutor::Impl::PlaneResources::intermediate_buffers, vkexpr::VulkanBuffer::isValid(), memory, vkexpr::VkExprExecutor::Impl::PlaneResources::output_buffer, vkexpr::VkExprExecutor::Impl::PlaneResources::output_staging_buffer, vkexpr::VkExprExecutor::Impl::PlaneResources::props_buffer, vkexpr::VkExprExecutor::Impl::PlaneResources::props_size, and vkexpr::VkExprExecutor::Impl::PlaneResources::props_staging_buffer.

Referenced by ~Stream().

◆ operator=() [1/2]

Stream & vkexpr::VkExprExecutor::Impl::Stream::operator= ( const Stream & )
delete

References Stream().

◆ operator=() [2/2]

Stream & vkexpr::VkExprExecutor::Impl::Stream::operator= ( Stream && )
delete

References Stream().

Member Data Documentation

◆ command_buffer

vk::raii::CommandBuffer vkexpr::VkExprExecutor::Impl::Stream::command_buffer = nullptr

Definition at line 292 of file VkExprExecutor.cpp.

◆ command_pool

vk::raii::CommandPool vkexpr::VkExprExecutor::Impl::Stream::command_pool = nullptr

Definition at line 291 of file VkExprExecutor.cpp.

◆ fence

vk::raii::Fence vkexpr::VkExprExecutor::Impl::Stream::fence = nullptr

Definition at line 293 of file VkExprExecutor.cpp.

◆ memory

std::unique_ptr<VulkanMemory> vkexpr::VkExprExecutor::Impl::Stream::memory

Definition at line 287 of file VkExprExecutor.cpp.

Referenced by freePlaneResources().

◆ pipelines

std::array<std::vector<std::unique_ptr<VulkanComputePipeline> >, 3> vkexpr::VkExprExecutor::Impl::Stream::pipelines

Definition at line 289 of file VkExprExecutor.cpp.

◆ plane_resources

std::array<PlaneResources, 3> vkexpr::VkExprExecutor::Impl::Stream::plane_resources

Definition at line 290 of file VkExprExecutor.cpp.

Referenced by ~Stream().


The documentation for this struct was generated from the following file: