From b1b59576baf8abe457be159b13438b8668f8eeac Mon Sep 17 00:00:00 2001 From: egdaniel Date: Tue, 26 Apr 2016 08:15:09 -0700 Subject: Remove unnessary uniform barriers in Vulkan. Also added a fix to descriptor set allocation. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1914053004 Review URL: https://codereview.chromium.org/1914053004 --- src/gpu/vk/GrVkPipelineState.cpp | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'src/gpu/vk/GrVkPipelineState.cpp') diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp index 4fe292917a..2821483ca6 100644 --- a/src/gpu/vk/GrVkPipelineState.cpp +++ b/src/gpu/vk/GrVkPipelineState.cpp @@ -238,13 +238,6 @@ void GrVkPipelineState::writeUniformBuffers(const GrVkGpu* gpu) { descriptorWrites[0].pImageInfo = nullptr; descriptorWrites[0].pBufferInfo = &vertBufferInfo; descriptorWrites[0].pTexelBufferView = nullptr; - - fVertexUniformBuffer->addMemoryBarrier(gpu, - VK_ACCESS_HOST_WRITE_BIT, - VK_ACCESS_UNIFORM_READ_BIT, - VK_PIPELINE_STAGE_HOST_BIT, - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - false); } VkDescriptorBufferInfo fragBufferInfo; @@ -269,13 +262,6 @@ void GrVkPipelineState::writeUniformBuffers(const GrVkGpu* gpu) { descriptorWrites[1].pImageInfo = nullptr; descriptorWrites[1].pBufferInfo = &fragBufferInfo; descriptorWrites[1].pTexelBufferView = nullptr; - - fFragmentUniformBuffer->addMemoryBarrier(gpu, - VK_ACCESS_HOST_WRITE_BIT, - VK_ACCESS_UNIFORM_READ_BIT, - VK_PIPELINE_STAGE_HOST_BIT, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - false); } if (uniformBindingUpdateCount) { @@ -436,11 +422,11 @@ void GrVkPipelineState::DescriptorPoolManager::getNewDescriptorSet(GrVkGpu* gpu, if (!fMaxDescriptors) { return; } - if (fCurrentDescriptorCount == fMaxDescriptors) { + fCurrentDescriptorCount += fDescCountPerSet; + if (fCurrentDescriptorCount > fMaxDescriptors) { this->getNewPool(gpu); - fCurrentDescriptorCount = 0; + fCurrentDescriptorCount = fDescCountPerSet; } - fCurrentDescriptorCount += fDescCountPerSet; VkDescriptorSetAllocateInfo dsAllocateInfo; memset(&dsAllocateInfo, 0, sizeof(VkDescriptorSetAllocateInfo)); -- cgit v1.2.3