summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Versace <chadversary@chromium.org>2022-11-08 09:43:50 -0800
committerMarge Bot <emma+marge@anholt.net>2023-01-03 17:20:30 +0000
commit0a256f79d4600a33c7f8c3e161041b5dcec1fbf0 (patch)
tree8b3d3d3cf2c165aa1d153449a882f2ebb203744c
parentb0f07a3e856498c05a717b1cfd30c536d8b0d55e (diff)
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>
-rw-r--r--src/vulkan/runtime/vk_synchronization2.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vulkan/runtime/vk_synchronization2.c b/src/vulkan/runtime/vk_synchronization2.c
index 8c291091bac..8fb1d102141 100644
--- a/src/vulkan/runtime/vk_synchronization2.c
+++ b/src/vulkan/runtime/vk_synchronization2.c
@@ -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,