Index: src/gpu/vk/GrVkPipelineState.cpp |
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp |
index 3e442fb249b5c7d1b51a559156e8e3614e4186a4..e464848034cd0c61f4f66ad7bcec13aeb5e9aef1 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)); |