From 7cbffda6c85e0634399d74607db2a82943abe06a Mon Sep 17 00:00:00 2001 From: egdaniel Date: Fri, 8 Apr 2016 13:27:53 -0700 Subject: Don't create new descriptor set for vulkan uniforms every draw BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1872553005 Review URL: https://codereview.chromium.org/1872553005 --- src/gpu/vk/GrVkPipelineState.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/gpu/vk/GrVkPipelineState.cpp') diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp index 3e442fb249..e464848034 100644 --- a/src/gpu/vk/GrVkPipelineState.cpp +++ b/src/gpu/vk/GrVkPipelineState.cpp @@ -200,17 +200,17 @@ void GrVkPipelineState::setData(GrVkGpu* gpu, this->writeSamplers(gpu, textureBindings); } - if (fVertexUniformBuffer.get() || fFragmentUniformBuffer.get()) { - fUniformPoolManager.getNewDescriptorSet(gpu, + if (fDataManager.uploadUniformBuffers(gpu, fVertexUniformBuffer, fFragmentUniformBuffer) || + VK_NULL_HANDLE == fDescriptorSets[GrVkUniformHandler::kUniformBufferDescSet]) { + fUniformPoolManager.getNewDescriptorSet(gpu, &fDescriptorSets[GrVkUniformHandler::kUniformBufferDescSet]); - this->writeUniformBuffers(gpu); + this->writeUniformBuffers(gpu); + } } } void GrVkPipelineState::writeUniformBuffers(const GrVkGpu* gpu) { - fDataManager.uploadUniformBuffers(gpu, fVertexUniformBuffer, fFragmentUniformBuffer); - VkWriteDescriptorSet descriptorWrites[2]; memset(descriptorWrites, 0, 2 * sizeof(VkWriteDescriptorSet)); -- cgit v1.2.3