Reverted some functions from PR#137 (replaced by different base functionality)
This commit is contained in:
parent
77bb8cf68b
commit
7098fc19a4
2 changed files with 0 additions and 105 deletions
|
|
@ -283,97 +283,6 @@ VkPipelineShaderStageCreateInfo VulkanExampleBase::loadShader(std::string fileNa
|
||||||
return shaderStage;
|
return shaderStage;
|
||||||
}
|
}
|
||||||
|
|
||||||
VkBool32 VulkanExampleBase::createDeviceBuffer(
|
|
||||||
const VkBufferUsageFlags usage,
|
|
||||||
const VkDeviceSize size,
|
|
||||||
VkBuffer& buffer,
|
|
||||||
VkDeviceMemory& memory,
|
|
||||||
VkDescriptorBufferInfo& descriptor)
|
|
||||||
{
|
|
||||||
VkMemoryRequirements memReqs;
|
|
||||||
VkMemoryAllocateInfo memAlloc = vkTools::initializers::memoryAllocateInfo();
|
|
||||||
VkBufferCreateInfo bufferCreateInfo = vkTools::initializers::bufferCreateInfo(usage | VK_BUFFER_USAGE_TRANSFER_DST_BIT, size);
|
|
||||||
|
|
||||||
VkResult err = vkCreateBuffer(device, &bufferCreateInfo, nullptr, &buffer);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
vkGetBufferMemoryRequirements(device, buffer, &memReqs);
|
|
||||||
memAlloc.allocationSize = memReqs.size;
|
|
||||||
|
|
||||||
getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, &memAlloc.memoryTypeIndex);
|
|
||||||
|
|
||||||
err = vkAllocateMemory(device, &memAlloc, nullptr, &memory);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
err = vkBindBufferMemory(device, buffer, memory, 0);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
descriptor.offset = 0;
|
|
||||||
descriptor.buffer = buffer;
|
|
||||||
descriptor.range = size;
|
|
||||||
|
|
||||||
return VK_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
VkBool32 VulkanExampleBase::updateDeviceBuffer(
|
|
||||||
const VkDeviceSize size,
|
|
||||||
VkBuffer& deviceBuffer,
|
|
||||||
void* data)
|
|
||||||
{
|
|
||||||
//todo check that size is not larger than memory size
|
|
||||||
|
|
||||||
// create staging buffer and copy data to it
|
|
||||||
VkMemoryRequirements memReqs;
|
|
||||||
VkMemoryAllocateInfo memAlloc = vkTools::initializers::memoryAllocateInfo();
|
|
||||||
VkBufferCreateInfo bufferCreateInfo = vkTools::initializers::bufferCreateInfo(VK_BUFFER_USAGE_TRANSFER_SRC_BIT, size);
|
|
||||||
VkBuffer stagingBuffer;
|
|
||||||
VkDeviceMemory stagingMemory;
|
|
||||||
|
|
||||||
VkResult err = vkCreateBuffer(device, &bufferCreateInfo, nullptr, &stagingBuffer);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
vkGetBufferMemoryRequirements(device, stagingBuffer, &memReqs);
|
|
||||||
memAlloc.allocationSize = memReqs.size;
|
|
||||||
|
|
||||||
getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, &memAlloc.memoryTypeIndex);
|
|
||||||
|
|
||||||
err = vkAllocateMemory(device, &memAlloc, nullptr, &stagingMemory);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
if (data != nullptr)
|
|
||||||
{
|
|
||||||
void* mapped;
|
|
||||||
err = vkMapMemory(device, stagingMemory, 0, size, 0, &mapped);
|
|
||||||
assert(!err);
|
|
||||||
memcpy(mapped, data, size);
|
|
||||||
vkUnmapMemory(device, stagingMemory);
|
|
||||||
}
|
|
||||||
|
|
||||||
err = vkBindBufferMemory(device, stagingBuffer, stagingMemory, 0);
|
|
||||||
assert(!err);
|
|
||||||
|
|
||||||
// create cmdbuffer to copy staging buffer to device local buffer
|
|
||||||
createSetupCommandBuffer();
|
|
||||||
|
|
||||||
VkBufferCopy copyRegion = {};
|
|
||||||
copyRegion.size = size;
|
|
||||||
|
|
||||||
vkCmdCopyBuffer(
|
|
||||||
setupCmdBuffer,
|
|
||||||
stagingBuffer,
|
|
||||||
deviceBuffer,
|
|
||||||
1,
|
|
||||||
©Region);
|
|
||||||
|
|
||||||
flushSetupCommandBuffer();
|
|
||||||
|
|
||||||
// free staging memory
|
|
||||||
vkDestroyBuffer(device, stagingBuffer, nullptr);
|
|
||||||
vkFreeMemory(device, stagingMemory, nullptr);
|
|
||||||
|
|
||||||
return VK_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
VkBool32 VulkanExampleBase::createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size, void * data, VkBuffer * buffer, VkDeviceMemory * memory)
|
VkBool32 VulkanExampleBase::createBuffer(VkBufferUsageFlags usageFlags, VkMemoryPropertyFlags memoryPropertyFlags, VkDeviceSize size, void * data, VkBuffer * buffer, VkDeviceMemory * memory)
|
||||||
{
|
{
|
||||||
VkMemoryRequirements memReqs;
|
VkMemoryRequirements memReqs;
|
||||||
|
|
|
||||||
|
|
@ -271,20 +271,6 @@ public:
|
||||||
// Load a SPIR-V shader
|
// Load a SPIR-V shader
|
||||||
VkPipelineShaderStageCreateInfo loadShader(std::string fileName, VkShaderStageFlagBits stage);
|
VkPipelineShaderStageCreateInfo loadShader(std::string fileName, VkShaderStageFlagBits stage);
|
||||||
|
|
||||||
// create device local buffer and use staging to access
|
|
||||||
VkBool32 createDeviceBuffer(
|
|
||||||
const VkBufferUsageFlags usage,
|
|
||||||
const VkDeviceSize size,
|
|
||||||
VkBuffer& buffer,
|
|
||||||
VkDeviceMemory& memory,
|
|
||||||
VkDescriptorBufferInfo& descriptor);
|
|
||||||
|
|
||||||
// update loacal buffer memory by creating a host visible staging buffer
|
|
||||||
VkBool32 updateDeviceBuffer(
|
|
||||||
const VkDeviceSize size,
|
|
||||||
VkBuffer& deviceBuffer,
|
|
||||||
void* data);
|
|
||||||
|
|
||||||
// Create a buffer, fill it with data (if != NULL) and bind buffer memory
|
// Create a buffer, fill it with data (if != NULL) and bind buffer memory
|
||||||
VkBool32 createBuffer(
|
VkBool32 createBuffer(
|
||||||
VkBufferUsageFlags usageFlags,
|
VkBufferUsageFlags usageFlags,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue