| 32 | } |
| 33 | |
| 34 | static void* create_func(GraphicContext* ctx, const uint64_t* params, const uint64_t* vaddr, const uint64_t* size, int vaddr_num, |
| 35 | VulkanMemory* mem) |
| 36 | { |
| 37 | KYTY_PROFILER_BLOCK("StorageBufferGpuObject::Create"); |
| 38 | |
| 39 | EXIT_IF(vaddr_num != 1 || size == nullptr || vaddr == nullptr || *vaddr == 0); |
| 40 | |
| 41 | EXIT_IF(mem == nullptr); |
| 42 | EXIT_IF(ctx == nullptr); |
| 43 | |
| 44 | auto* vk_obj = new StorageVulkanBuffer; |
| 45 | |
| 46 | vk_obj->usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; |
| 47 | vk_obj->memory.property = static_cast<uint32_t>(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | |
| 48 | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; |
| 49 | vk_obj->buffer = nullptr; |
| 50 | |
| 51 | VulkanCreateBuffer(ctx, *size, vk_obj); |
| 52 | EXIT_NOT_IMPLEMENTED(vk_obj->buffer == nullptr); |
| 53 | |
| 54 | update_func(ctx, params, vk_obj, vaddr, size, vaddr_num); |
| 55 | |
| 56 | return vk_obj; |
| 57 | } |
| 58 | |
| 59 | static void delete_func(GraphicContext* ctx, void* obj, VulkanMemory* /*mem*/) |
| 60 | { |
nothing calls this directly
no test coverage detected