MCPcopy Create free account
hub / github.com/InoriRus/Kyty / write_back

Function write_back

source/emulator/src/Graphics/Objects/StorageBuffer.cpp:79–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79static void write_back(GraphicContext* ctx, const uint64_t* /*params*/, void* obj, const uint64_t* vaddr, const uint64_t* size,
80 int vaddr_num)
81{
82 KYTY_PROFILER_BLOCK("StorageBufferGpuObject::write_back");
83
84 EXIT_IF(ctx == nullptr);
85 EXIT_IF(obj == nullptr);
86 EXIT_IF(vaddr == nullptr || size == nullptr || vaddr_num != 1);
87
88 auto* vk_obj = reinterpret_cast<StorageVulkanBuffer*>(obj);
89
90 void* data = nullptr;
91
92 KYTY_PROFILER_BLOCK("StorageBufferGpuObject::write_back::vkMapMemory");
93 // vkMapMemory(ctx->device, vk_obj->memory.memory, vk_obj->memory.offset, *size, 0, &data);
94 VulkanMapMemory(ctx, &vk_obj->memory, &data);
95 KYTY_PROFILER_END_BLOCK;
96
97 KYTY_PROFILER_BLOCK("StorageBufferGpuObject::write_back::memcpy");
98 memcpy(reinterpret_cast<void*>(*vaddr), data, *size);
99 KYTY_PROFILER_END_BLOCK;
100
101 KYTY_PROFILER_BLOCK("StorageBufferGpuObject::write_back::vkUnmapMemory");
102 // vkUnmapMemory(ctx->device, vk_obj->memory.memory);
103 VulkanUnmapMemory(ctx, &vk_obj->memory);
104 KYTY_PROFILER_END_BLOCK;
105}
106
107bool StorageBufferGpuObject::Equal(const uint64_t* other) const
108{

Callers

nothing calls this directly

Calls 3

VulkanMapMemoryFunction · 0.85
memcpyFunction · 0.85
VulkanUnmapMemoryFunction · 0.85

Tested by

no test coverage detected