diff options
author | 2016-04-08 13:27:53 -0700 | |
---|---|---|
committer | 2016-04-08 13:27:53 -0700 | |
commit | 7cbffda6c85e0634399d74607db2a82943abe06a (patch) | |
tree | c2cc75d1fb0f3c27bf08ac0e78466a8e588f3170 /src/gpu/vk/GrVkPipelineState.cpp | |
parent | 9e0efe57ac29b13d7f7a24ccefc456562acbad6c (diff) |
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
Diffstat (limited to 'src/gpu/vk/GrVkPipelineState.cpp')
-rw-r--r-- | src/gpu/vk/GrVkPipelineState.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
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)); |