| 434 | } |
| 435 | |
| 436 | void |
| 437 | Tensor::createBuffer(std::shared_ptr<vk::Buffer> buffer, |
| 438 | vk::BufferUsageFlags bufferUsageFlags) |
| 439 | { |
| 440 | |
| 441 | vk::DeviceSize bufferSize = this->memorySize(); |
| 442 | |
| 443 | if (bufferSize < 1) { |
| 444 | throw std::runtime_error( |
| 445 | "Kompute Tensor attempted to create a zero-sized buffer"); |
| 446 | } |
| 447 | |
| 448 | KP_LOG_DEBUG("Kompute Tensor creating buffer with memory size: {}, and " |
| 449 | "usage flags: {}", |
| 450 | bufferSize, |
| 451 | vk::to_string(bufferUsageFlags)); |
| 452 | |
| 453 | // TODO: Explore having concurrent sharing mode (with option) |
| 454 | vk::BufferCreateInfo bufferInfo(vk::BufferCreateFlags(), |
| 455 | bufferSize, |
| 456 | bufferUsageFlags, |
| 457 | vk::SharingMode::eExclusive); |
| 458 | |
| 459 | this->mDevice->createBuffer(&bufferInfo, nullptr, buffer.get()); |
| 460 | } |
| 461 | |
| 462 | void |
| 463 | Tensor::allocateBindMemory(std::shared_ptr<vk::Buffer> buffer, |
no test coverage detected