MCPcopy Create free account
hub / github.com/a2flo/floor / acquire_vulkan_buffer

Method acquire_vulkan_buffer

compute/cuda/cuda_buffer.cpp:560–581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

558
559#if !defined(FLOOR_NO_VULKAN)
560bool cuda_buffer::acquire_vulkan_buffer(const compute_queue* cqueue_, const vulkan_queue* vk_queue_) const {
561 if (!vk_object_state) {
562 // -> already acquired for use with CUDA
563 return true;
564 }
565
566 [[maybe_unused]] const auto cqueue = (cqueue_ != nullptr ? cqueue_ : dev.context->get_device_default_queue(dev));
567 const auto comp_vk_queue = (vk_queue_ != nullptr ? (const vulkan_queue*)vk_queue_ : get_default_queue_for_memory(*shared_buffer));
568
569 // validate CUDA queue
570#if defined(FLOOR_DEBUG)
571 if (const auto cuda_queue_ = dynamic_cast<const cuda_queue*>(cqueue); cuda_queue_ == nullptr) {
572 log_error("specified queue is not a CUDA queue");
573 return false;
574 }
575#endif
576
577 // finish Vulkan queue
578 comp_vk_queue->finish();
579 vk_object_state = false;
580 return true;
581}
582
583bool cuda_buffer::release_vulkan_buffer(const compute_queue* cqueue_, const vulkan_queue*) const {
584 if (vk_object_state) {

Callers

nothing calls this directly

Calls 2

finishMethod · 0.45

Tested by

no test coverage detected