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

Method vulkan_command_block

compute/vulkan/vulkan_queue.cpp:854–876  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

852}
853
854vulkan_command_block::vulkan_command_block(const vulkan_queue& vk_queue_, const char* name, bool& error_signal_, const bool is_blocking_,
855 vector<vulkan_queue::wait_fence_t>&& wait_fences_, vector<vulkan_queue::signal_fence_t>&& signal_fences_) :
856vk_queue(vk_queue_), error_signal(error_signal_), is_blocking(is_blocking_),
857wait_fences(std::move(wait_fences_)), signal_fences(std::move(signal_fences_)) {
858 // create new command buffer + begin
859 cmd_buffer = vk_queue.make_command_buffer(name);
860 const VkCommandBufferBeginInfo begin_info {
861 .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
862 .pNext = nullptr,
863 .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
864 .pInheritanceInfo = nullptr,
865 };
866 VK_CALL_ERR_EXEC(vkBeginCommandBuffer(cmd_buffer.cmd_buffer, &begin_info),
867 "failed to begin command buffer",
868 { error_signal = true; return; })
869
870#if defined(FLOOR_DEBUG)
871 ((const vulkan_compute*)vk_queue.get_device().context)->vulkan_begin_cmd_debug_label(cmd_buffer.cmd_buffer, name);
872#endif
873
874 // done
875 valid = true;
876}
877
878vulkan_command_block::~vulkan_command_block() {
879 if (!valid || !cmd_buffer.cmd_buffer) {

Callers

nothing calls this directly

Calls 3

make_command_bufferMethod · 0.80
get_deviceMethod · 0.80

Tested by

no test coverage detected