| 77 | } |
| 78 | |
| 79 | static 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 | |
| 107 | bool StorageBufferGpuObject::Equal(const uint64_t* other) const |
| 108 | { |
nothing calls this directly
no test coverage detected