aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkPipelineState.cpp
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2016-04-08 13:27:53 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-08 13:27:53 -0700
commit7cbffda6c85e0634399d74607db2a82943abe06a (patch)
treec2cc75d1fb0f3c27bf08ac0e78466a8e588f3170 /src/gpu/vk/GrVkPipelineState.cpp
parent9e0efe57ac29b13d7f7a24ccefc456562acbad6c (diff)
Don't create new descriptor set for vulkan uniforms every draw
Diffstat (limited to 'src/gpu/vk/GrVkPipelineState.cpp')
-rw-r--r--src/gpu/vk/GrVkPipelineState.cpp10
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));