diff --git a/src/Tensor.cpp b/src/Tensor.cpp index a1eaccf2..dc2aad10 100644 --- a/src/Tensor.cpp +++ b/src/Tensor.cpp @@ -288,7 +288,10 @@ Tensor::getPrimaryBufferUsageFlags() { switch (this->mMemoryType) { case MemoryTypes::eDevice: - case MemoryTypes::eHost: + case TensorTypes::eHost: + return vk::MemoryPropertyFlagBits::eHostVisible | + vk::MemoryPropertyFlagBits::eHostCoherent; + break; case MemoryTypes::eDeviceAndHost: return vk::BufferUsageFlagBits::eStorageBuffer | vk::BufferUsageFlagBits::eTransferSrc | @@ -311,8 +314,8 @@ Tensor::getStagingBufferUsageFlags() { switch (this->mMemoryType) { case MemoryTypes::eDevice: - return vk::BufferUsageFlagBits::eTransferSrc | - vk::BufferUsageFlagBits::eTransferDst; + return vk::MemoryPropertyFlagBits::eHostVisible | + vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached; break; default: throw std::runtime_error("Kompute Tensor invalid tensor type");