Commit f5182abb by Alexis Hetu Committed by Alexis Hétu

Descriptor Pool alignment checks

Make sure all allocations within the pool are 16 bytes aligned Bug b/137554711 Change-Id: I7e9531b720ae07390e0089768f92fd95c62d6afb Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33250Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 6d55ba73
...@@ -51,12 +51,12 @@ void DescriptorPool::destroy(const VkAllocationCallbacks* pAllocator) ...@@ -51,12 +51,12 @@ void DescriptorPool::destroy(const VkAllocationCallbacks* pAllocator)
size_t DescriptorPool::ComputeRequiredAllocationSize(const VkDescriptorPoolCreateInfo* pCreateInfo) size_t DescriptorPool::ComputeRequiredAllocationSize(const VkDescriptorPoolCreateInfo* pCreateInfo)
{ {
size_t size = pCreateInfo->maxSets * sizeof(DescriptorSetHeader); size_t size = pCreateInfo->maxSets * sw::align(sizeof(DescriptorSetHeader), 16);
for(uint32_t i = 0; i < pCreateInfo->poolSizeCount; i++) for(uint32_t i = 0; i < pCreateInfo->poolSizeCount; i++)
{ {
size += pCreateInfo->pPoolSizes[i].descriptorCount * size += pCreateInfo->pPoolSizes[i].descriptorCount *
DescriptorSetLayout::GetDescriptorSize(pCreateInfo->pPoolSizes[i].type); sw::align(DescriptorSetLayout::GetDescriptorSize(pCreateInfo->pPoolSizes[i].type), 16);
} }
return size; return size;
......
...@@ -29,7 +29,7 @@ namespace vk ...@@ -29,7 +29,7 @@ namespace vk
DescriptorSetLayout* layout; DescriptorSetLayout* layout;
}; };
class DescriptorSet class alignas(16) DescriptorSet
{ {
public: public:
static inline DescriptorSet* Cast(VkDescriptorSet object) static inline DescriptorSet* Cast(VkDescriptorSet object)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment