MCPcopy Create free account
hub / github.com/Ipotrick/Daxa / add_task

Method add_task

include/daxa/utils/task_graph.hpp:941–963  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

939
940 template <typename TaskHeadType, bool JUST_DECLARED_ATTACHMENT>
941 void add_task(TInlineTask<TaskHeadType, JUST_DECLARED_ATTACHMENT> const & inline_task)
942 {
943 DAXA_DBG_ASSERT_TRUE_M(static_cast<bool>(inline_task.value._internal._callback), "Detected empty callback on inline task!");
944
945 auto task_callback = inline_task.value._internal._callback.callback;
946
947 // Allocate and assign task callback memory
948 auto task_callback_memory = reinterpret_cast<u64*>(allocate_task_memory(inline_task.value._internal._callback.size, alignof(u64)));
949 std::memcpy(task_callback_memory, inline_task.value._internal._callback.data.data(), inline_task.value._internal._callback.size);
950
951 // Allocate and copy attachments into smaller memory section
952 usize const attachment_count = inline_task.value._internal._attachments.size();
953 auto attachments = std::span{reinterpret_cast<TaskAttachmentInfo *>(allocate_task_memory(sizeof(TaskAttachmentInfo) * attachment_count, alignof(TaskAttachmentInfo))), attachment_count};
954 std::memcpy(attachments.data(), inline_task.value._internal._attachments.data(), sizeof(TaskAttachmentInfo) * attachments.size());
955
956 u32 asb_size = detail::get_asb_size_and_alignment(attachments).size;
957 u32 asb_align = detail::get_asb_size_and_alignment(attachments).alignment;
958 TaskType task_type = inline_task.value._internal._task_type;
959 std::string_view name = inline_task.value._internal._name;
960 add_task(
961 task_callback, task_callback_memory,
962 attachments, asb_size, asb_align, task_type, name, inline_task.value._internal._queue);
963 }
964
965 DAXA_EXPORT_CXX void submit(TaskSubmitInfo const & info);
966 DAXA_EXPORT_CXX void present(TaskPresentInfo const & info);

Callers

nothing calls this directly

Calls 3

dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected