Просмотр исходного кода

Fix two uninitialized variables

Found when running in valgrind looking at another issue.

- RenderPass' depth_stencil_target
    Tripped in SDL_BindGPUFragmentSamplers when not binding a DS target

- VulkanCommandBuffer's swapchainRequested
    Tripped in VULKAN_Submit for the end transition barrier when
    creating an image. The field is only reset when reused, not on first
    use

(cherry picked from commit 265236d952dea4f50cf2e1340311848d6892b137)
Jordan Saunders 11 месяцев назад
Родитель
Сommit
589aea50c2
2 измененных файлов с 4 добавлено и 0 удалено
  1. 2 0
      src/gpu/SDL_gpu.c
  2. 2 0
      src/gpu/vulkan/SDL_gpu_vulkan.c

+ 2 - 0
src/gpu/SDL_gpu.c

@@ -1785,6 +1785,8 @@ SDL_GPURenderPass *SDL_BeginGPURenderPass(
         commandBufferHeader->render_pass.num_color_targets = num_color_targets;
         if (depth_stencil_target_info != NULL) {
             commandBufferHeader->render_pass.depth_stencil_target = depth_stencil_target_info->texture;
+        } else {
+            commandBufferHeader->render_pass.depth_stencil_target = NULL;
         }
     }
 

+ 2 - 0
src/gpu/vulkan/SDL_gpu_vulkan.c

@@ -9408,6 +9408,8 @@ static bool VULKAN_INTERNAL_AllocateCommandBuffer(
     commandBuffer->usedUniformBuffers = SDL_malloc(
         commandBuffer->usedUniformBufferCapacity * sizeof(VulkanUniformBuffer *));
 
+    commandBuffer->swapchainRequested = false;
+
     // Pool it!
 
     vulkanCommandPool->inactiveCommandBuffers[vulkanCommandPool->inactiveCommandBufferCount] = commandBuffer;