CL/Vulkan: Allocate descriptor sets under lock Multiple threads in the application are accessing the OpenCL runtime simultaneously, resulting in multiple SharedPtr of mDynamicDescriptorPools[] being created for a single context. This can lead to incorrect reference counting and potentially cause `DynamicDescriptorPool::destroy` to be called unexpectedly. This fixes the concurrent access issue through acquiring the descriptor set mutex just before initializing mDynamicDescriptorPools to ensure that only one mDynamicDescriptorPools[] is created per context. Bug: angleproject:383999367 Tests-Passing: test_integer_ops int_logic Change-Id: Iba0fad6813a08e1631b73d5efae4f4639892b36f Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981091 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>