Removed unused query result buffer
This commit is contained in:
parent
0588108e64
commit
f62115ffca
1 changed files with 3 additions and 33 deletions
|
|
@ -76,12 +76,6 @@ public:
|
||||||
VkDescriptorSet descriptorSet;
|
VkDescriptorSet descriptorSet;
|
||||||
VkDescriptorSetLayout descriptorSetLayout;
|
VkDescriptorSetLayout descriptorSetLayout;
|
||||||
|
|
||||||
// Stores occlusion query results
|
|
||||||
struct {
|
|
||||||
VkBuffer buffer;
|
|
||||||
VkDeviceMemory memory;
|
|
||||||
} queryResult;
|
|
||||||
|
|
||||||
// Pool that stores all occlusion queries
|
// Pool that stores all occlusion queries
|
||||||
VkQueryPool queryPool;
|
VkQueryPool queryPool;
|
||||||
|
|
||||||
|
|
@ -111,9 +105,6 @@ public:
|
||||||
|
|
||||||
vkDestroyQueryPool(device, queryPool, nullptr);
|
vkDestroyQueryPool(device, queryPool, nullptr);
|
||||||
|
|
||||||
vkDestroyBuffer(device, queryResult.buffer, nullptr);
|
|
||||||
vkFreeMemory(device, queryResult.memory, nullptr);
|
|
||||||
|
|
||||||
uniformBuffers.occluder.destroy();
|
uniformBuffers.occluder.destroy();
|
||||||
uniformBuffers.sphere.destroy();
|
uniformBuffers.sphere.destroy();
|
||||||
uniformBuffers.teapot.destroy();
|
uniformBuffers.teapot.destroy();
|
||||||
|
|
@ -123,34 +114,13 @@ public:
|
||||||
models.teapot.destroy();
|
models.teapot.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a buffer for storing the query result
|
// Create a query pool for storing the occlusion query result
|
||||||
// Setup a query pool
|
void setupQueryPool()
|
||||||
void setupQueryResultBuffer()
|
|
||||||
{
|
{
|
||||||
uint32_t bufSize = 2 * sizeof(uint64_t);
|
|
||||||
|
|
||||||
VkMemoryRequirements memReqs;
|
|
||||||
VkMemoryAllocateInfo memAlloc = vks::initializers::memoryAllocateInfo();
|
|
||||||
VkBufferCreateInfo bufferCreateInfo =
|
|
||||||
vks::initializers::bufferCreateInfo(
|
|
||||||
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
|
|
||||||
bufSize);
|
|
||||||
|
|
||||||
// Results are saved in a host visible buffer for easy access by the application
|
|
||||||
VK_CHECK_RESULT(vkCreateBuffer(device, &bufferCreateInfo, nullptr, &queryResult.buffer));
|
|
||||||
vkGetBufferMemoryRequirements(device, queryResult.buffer, &memReqs);
|
|
||||||
memAlloc.allocationSize = memReqs.size;
|
|
||||||
memAlloc.memoryTypeIndex = vulkanDevice->getMemoryType(memReqs.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
|
|
||||||
VK_CHECK_RESULT(vkAllocateMemory(device, &memAlloc, nullptr, &queryResult.memory));
|
|
||||||
VK_CHECK_RESULT(vkBindBufferMemory(device, queryResult.buffer, queryResult.memory, 0));
|
|
||||||
|
|
||||||
// Create query pool
|
|
||||||
VkQueryPoolCreateInfo queryPoolInfo = {};
|
VkQueryPoolCreateInfo queryPoolInfo = {};
|
||||||
queryPoolInfo.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
|
queryPoolInfo.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
|
||||||
// Query pool will be created for occlusion queries
|
|
||||||
queryPoolInfo.queryType = VK_QUERY_TYPE_OCCLUSION;
|
queryPoolInfo.queryType = VK_QUERY_TYPE_OCCLUSION;
|
||||||
queryPoolInfo.queryCount = 2;
|
queryPoolInfo.queryCount = 2;
|
||||||
|
|
||||||
VK_CHECK_RESULT(vkCreateQueryPool(device, &queryPoolInfo, NULL, &queryPool));
|
VK_CHECK_RESULT(vkCreateQueryPool(device, &queryPoolInfo, NULL, &queryPool));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -604,7 +574,7 @@ public:
|
||||||
{
|
{
|
||||||
VulkanExampleBase::prepare();
|
VulkanExampleBase::prepare();
|
||||||
loadAssets();
|
loadAssets();
|
||||||
setupQueryResultBuffer();
|
setupQueryPool();
|
||||||
setupVertexDescriptions();
|
setupVertexDescriptions();
|
||||||
prepareUniformBuffers();
|
prepareUniformBuffers();
|
||||||
setupDescriptorSetLayout();
|
setupDescriptorSetLayout();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue