From fb71b442315776104a749a83e86f1022bb98ccb8 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 8 Dec 2024 18:08:36 +0100
Subject: [PATCH] gpu: define EXPAND_ARRAY_IF_NEEDED macro once and make it
function-like
---
src/gpu/SDL_gpu.c | 2 +-
src/gpu/SDL_sysgpu.h | 14 ++++++++------
src/gpu/d3d12/SDL_gpu_d3d12.c | 10 +++++-----
src/gpu/vulkan/SDL_gpu_vulkan.c | 24 ++++++++----------------
4 files changed, 22 insertions(+), 28 deletions(-)
diff --git a/src/gpu/SDL_gpu.c b/src/gpu/SDL_gpu.c
index 8bd63c960ad84..5763e793dd729 100644
--- a/src/gpu/SDL_gpu.c
+++ b/src/gpu/SDL_gpu.c
@@ -247,7 +247,7 @@ SDL_GPUGraphicsPipeline *SDL_GPU_FetchBlitPipeline(
BlitPipelineCacheEntry,
*blit_pipeline_count + 1,
*blit_pipeline_capacity,
- *blit_pipeline_capacity * 2)
+ *blit_pipeline_capacity * 2);
(*blit_pipelines)[*blit_pipeline_count].pipeline = pipeline;
(*blit_pipelines)[*blit_pipeline_count].type = source_texture_type;
diff --git a/src/gpu/SDL_sysgpu.h b/src/gpu/SDL_sysgpu.h
index 8806d2fb8b78b..2cf8f6459b74a 100644
--- a/src/gpu/SDL_sysgpu.h
+++ b/src/gpu/SDL_sysgpu.h
@@ -391,12 +391,14 @@ static inline Uint32 BytesPerRow(
// Internal Macros
#define EXPAND_ARRAY_IF_NEEDED(arr, elementType, newCount, capacity, newCapacity) \
- if (newCount >= capacity) { \
- capacity = newCapacity; \
- arr = (elementType *)SDL_realloc( \
- arr, \
- sizeof(elementType) * capacity); \
- }
+ do { \
+ if ((newCount) >= (capacity)) { \
+ (capacity) = (newCapacity); \
+ (arr) = (elementType *)SDL_realloc( \
+ (arr), \
+ sizeof(elementType) * (capacity)); \
+ } \
+ } while (0)
// Internal Declarations
diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c
index 783407022edbb..6773196d98661 100644
--- a/src/gpu/d3d12/SDL_gpu_d3d12.c
+++ b/src/gpu/d3d12/SDL_gpu_d3d12.c
@@ -1229,7 +1229,7 @@ static void D3D12_INTERNAL_ReleaseBuffer(
D3D12Buffer *,
renderer->buffersToDestroyCount + 1,
renderer->buffersToDestroyCapacity,
- renderer->buffersToDestroyCapacity * 2)
+ renderer->buffersToDestroyCapacity * 2);
renderer->buffersToDestroy[renderer->buffersToDestroyCount] = buffer;
renderer->buffersToDestroyCount += 1;
@@ -1309,7 +1309,7 @@ static void D3D12_INTERNAL_ReleaseTexture(
D3D12Texture *,
renderer->texturesToDestroyCount + 1,
renderer->texturesToDestroyCapacity,
- renderer->texturesToDestroyCapacity * 2)
+ renderer->texturesToDestroyCapacity * 2);
renderer->texturesToDestroy[renderer->texturesToDestroyCount] = texture;
renderer->texturesToDestroyCount += 1;
@@ -3740,7 +3740,7 @@ static void D3D12_ReleaseSampler(
D3D12Sampler *,
renderer->samplersToDestroyCount + 1,
renderer->samplersToDestroyCapacity,
- renderer->samplersToDestroyCapacity * 2)
+ renderer->samplersToDestroyCapacity * 2);
renderer->samplersToDestroy[renderer->samplersToDestroyCount] = d3d12Sampler;
renderer->samplersToDestroyCount += 1;
@@ -3800,7 +3800,7 @@ static void D3D12_ReleaseComputePipeline(
D3D12ComputePipeline *,
renderer->computePipelinesToDestroyCount + 1,
renderer->computePipelinesToDestroyCapacity,
- renderer->computePipelinesToDestroyCapacity * 2)
+ renderer->computePipelinesToDestroyCapacity * 2);
renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = d3d12ComputePipeline;
renderer->computePipelinesToDestroyCount += 1;
@@ -3822,7 +3822,7 @@ static void D3D12_ReleaseGraphicsPipeline(
D3D12GraphicsPipeline *,
renderer->graphicsPipelinesToDestroyCount + 1,
renderer->graphicsPipelinesToDestroyCapacity,
- renderer->graphicsPipelinesToDestroyCapacity * 2)
+ renderer->graphicsPipelinesToDestroyCapacity * 2);
renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = d3d12GraphicsPipeline;
renderer->graphicsPipelinesToDestroyCount += 1;
diff --git a/src/gpu/vulkan/SDL_gpu_vulkan.c b/src/gpu/vulkan/SDL_gpu_vulkan.c
index 6ecf95219f944..4ff9e1c56aab2 100644
--- a/src/gpu/vulkan/SDL_gpu_vulkan.c
+++ b/src/gpu/vulkan/SDL_gpu_vulkan.c
@@ -97,14 +97,6 @@ typedef struct VulkanExtensions
arr->capacity * sizeof(type)); \
}
-#define EXPAND_ARRAY_IF_NEEDED(arr, elementType, newCount, capacity, newCapacity) \
- if (newCount >= capacity) { \
- capacity = newCapacity; \
- arr = (elementType *)SDL_realloc( \
- arr, \
- sizeof(elementType) * capacity); \
- }
-
#define MOVE_ARRAY_CONTENTS_AND_RESET(i, dstArr, dstCount, srcArr, srcCount) \
for (i = 0; i < srcCount; i += 1) { \
dstArr[i] = srcArr[i]; \
@@ -2897,7 +2889,7 @@ static void VULKAN_INTERNAL_ReleaseFramebuffer(
VulkanFramebuffer *,
renderer->framebuffersToDestroyCount + 1,
renderer->framebuffersToDestroyCapacity,
- renderer->framebuffersToDestroyCapacity * 2)
+ renderer->framebuffersToDestroyCapacity * 2);
renderer->framebuffersToDestroy[renderer->framebuffersToDestroyCount] = framebuffer;
renderer->framebuffersToDestroyCount += 1;
@@ -4940,7 +4932,7 @@ static void VULKAN_INTERNAL_ReturnDescriptorSetCacheToPool(
DescriptorSetCache *,
renderer->descriptorSetCachePoolCount + 1,
renderer->descriptorSetCachePoolCapacity,
- renderer->descriptorSetCachePoolCapacity * 2)
+ renderer->descriptorSetCachePoolCapacity * 2);
renderer->descriptorSetCachePool[renderer->descriptorSetCachePoolCount] = descriptorSetCache;
renderer->descriptorSetCachePoolCount += 1;
@@ -6752,7 +6744,7 @@ static void VULKAN_INTERNAL_ReleaseTexture(
VulkanTexture *,
renderer->texturesToDestroyCount + 1,
renderer->texturesToDestroyCapacity,
- renderer->texturesToDestroyCapacity * 2)
+ renderer->texturesToDestroyCapacity * 2);
renderer->texturesToDestroy[renderer->texturesToDestroyCount] = vulkanTexture;
renderer->texturesToDestroyCount += 1;
@@ -6800,7 +6792,7 @@ static void VULKAN_ReleaseSampler(
VulkanSampler *,
renderer->samplersToDestroyCount + 1,
renderer->samplersToDestroyCapacity,
- renderer->samplersToDestroyCapacity * 2)
+ renderer->samplersToDestroyCapacity * 2);
renderer->samplersToDestroy[renderer->samplersToDestroyCount] = vulkanSampler;
renderer->samplersToDestroyCount += 1;
@@ -6823,7 +6815,7 @@ static void VULKAN_INTERNAL_ReleaseBuffer(
VulkanBuffer *,
renderer->buffersToDestroyCount + 1,
renderer->buffersToDestroyCapacity,
- renderer->buffersToDestroyCapacity * 2)
+ renderer->buffersToDestroyCapacity * 2);
renderer->buffersToDestroy[renderer->buffersToDestroyCount] = vulkanBuffer;
renderer->buffersToDestroyCount += 1;
@@ -6893,7 +6885,7 @@ static void VULKAN_ReleaseShader(
VulkanShader *,
renderer->shadersToDestroyCount + 1,
renderer->shadersToDestroyCapacity,
- renderer->shadersToDestroyCapacity * 2)
+ renderer->shadersToDestroyCapacity * 2);
renderer->shadersToDestroy[renderer->shadersToDestroyCount] = vulkanShader;
renderer->shadersToDestroyCount += 1;
@@ -6915,7 +6907,7 @@ static void VULKAN_ReleaseComputePipeline(
VulkanComputePipeline *,
renderer->computePipelinesToDestroyCount + 1,
renderer->computePipelinesToDestroyCapacity,
- renderer->computePipelinesToDestroyCapacity * 2)
+ renderer->computePipelinesToDestroyCapacity * 2);
renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = vulkanComputePipeline;
renderer->computePipelinesToDestroyCount += 1;
@@ -6937,7 +6929,7 @@ static void VULKAN_ReleaseGraphicsPipeline(
VulkanGraphicsPipeline *,
renderer->graphicsPipelinesToDestroyCount + 1,
renderer->graphicsPipelinesToDestroyCapacity,
- renderer->graphicsPipelinesToDestroyCapacity * 2)
+ renderer->graphicsPipelinesToDestroyCapacity * 2);
renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = vulkanGraphicsPipeline;
renderer->graphicsPipelinesToDestroyCount += 1;