vulkan/runtime: Preserve pNext when upgrading to synchronization2 structs
The functions that upgraded VkFooMemoryBarrier to VkFooMemoryBarrier2 dropped the pNext pointers. It loses VkSampleLocationsInfoEXT, and may lose additional structs too if VkFooMemoryBarrier receives further extensions in the future. Signed-off-by: Chad Versace <chadversary@chromium.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20477>
This commit is contained in:
@@ -52,6 +52,7 @@ upgrade_memory_barrier(const VkMemoryBarrier *barrier,
|
||||
{
|
||||
return (VkMemoryBarrier2) {
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
|
||||
.pNext = barrier->pNext,
|
||||
.srcStageMask = src_stage_mask2,
|
||||
.srcAccessMask = (VkAccessFlags2) barrier->srcAccessMask,
|
||||
.dstStageMask = dst_stage_mask2,
|
||||
@@ -66,6 +67,7 @@ upgrade_buffer_memory_barrier(const VkBufferMemoryBarrier *barrier,
|
||||
{
|
||||
return (VkBufferMemoryBarrier2) {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
|
||||
.pNext = barrier->pNext,
|
||||
.srcStageMask = src_stage_mask2,
|
||||
.srcAccessMask = (VkAccessFlags2) barrier->srcAccessMask,
|
||||
.dstStageMask = dst_stage_mask2,
|
||||
@@ -85,6 +87,7 @@ upgrade_image_memory_barrier(const VkImageMemoryBarrier *barrier,
|
||||
{
|
||||
return (VkImageMemoryBarrier2) {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
|
||||
.pNext = barrier->pNext,
|
||||
.srcStageMask = src_stage_mask2,
|
||||
.srcAccessMask = (VkAccessFlags2) barrier->srcAccessMask,
|
||||
.dstStageMask = dst_stage_mask2,
|
||||
|
||||
Reference in New Issue
Block a user