Author :
Tim Van Patten
Date :
2020-04-20 11:25:32
Hash :0e1798d6 Message :Vulkan: PPO: Allocate uniform descriptor set if list is empty
When a Program is used to draw, the buffers to hold uniforms are
allocated as part of updateUniforms(), and then if a buffer is
allocated, a corresponding descriptor set is allocated for each shader
stage with uniforms. However, if that Program is later bound to a PPO,
the PPO's descriptor set list is cleared as part of creating the
pipeline layout. This means the uniform descriptor sets need to be
re-allocated but using the previously allocated buffers so the
'anyNewBufferAllocated' flag isn't enough - we also need to check if
the PPO's list of descriptor sets is empty.
Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: Id8df587b4f5552012590a29d120b6899bbdf677b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2156936
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>