gpu: define EXPAND_ARRAY_IF_NEEDED macro once and make it function-like

This commit is contained in:
Anonymous Maarten 2024-12-08 18:08:36 +01:00 committed by Anonymous Maarten
parent 0370b92d80
commit fb71b44231
4 changed files with 22 additions and 28 deletions

View file

@ -247,7 +247,7 @@ SDL_GPUGraphicsPipeline *SDL_GPU_FetchBlitPipeline(
BlitPipelineCacheEntry, BlitPipelineCacheEntry,
*blit_pipeline_count + 1, *blit_pipeline_count + 1,
*blit_pipeline_capacity, *blit_pipeline_capacity,
*blit_pipeline_capacity * 2) *blit_pipeline_capacity * 2);
(*blit_pipelines)[*blit_pipeline_count].pipeline = pipeline; (*blit_pipelines)[*blit_pipeline_count].pipeline = pipeline;
(*blit_pipelines)[*blit_pipeline_count].type = source_texture_type; (*blit_pipelines)[*blit_pipeline_count].type = source_texture_type;

View file

@ -391,12 +391,14 @@ static inline Uint32 BytesPerRow(
// Internal Macros // Internal Macros
#define EXPAND_ARRAY_IF_NEEDED(arr, elementType, newCount, capacity, newCapacity) \ #define EXPAND_ARRAY_IF_NEEDED(arr, elementType, newCount, capacity, newCapacity) \
if (newCount >= capacity) { \ do { \
capacity = newCapacity; \ if ((newCount) >= (capacity)) { \
arr = (elementType *)SDL_realloc( \ (capacity) = (newCapacity); \
arr, \ (arr) = (elementType *)SDL_realloc( \
sizeof(elementType) * capacity); \ (arr), \
} sizeof(elementType) * (capacity)); \
} \
} while (0)
// Internal Declarations // Internal Declarations

View file

@ -1229,7 +1229,7 @@ static void D3D12_INTERNAL_ReleaseBuffer(
D3D12Buffer *, D3D12Buffer *,
renderer->buffersToDestroyCount + 1, renderer->buffersToDestroyCount + 1,
renderer->buffersToDestroyCapacity, renderer->buffersToDestroyCapacity,
renderer->buffersToDestroyCapacity * 2) renderer->buffersToDestroyCapacity * 2);
renderer->buffersToDestroy[renderer->buffersToDestroyCount] = buffer; renderer->buffersToDestroy[renderer->buffersToDestroyCount] = buffer;
renderer->buffersToDestroyCount += 1; renderer->buffersToDestroyCount += 1;
@ -1309,7 +1309,7 @@ static void D3D12_INTERNAL_ReleaseTexture(
D3D12Texture *, D3D12Texture *,
renderer->texturesToDestroyCount + 1, renderer->texturesToDestroyCount + 1,
renderer->texturesToDestroyCapacity, renderer->texturesToDestroyCapacity,
renderer->texturesToDestroyCapacity * 2) renderer->texturesToDestroyCapacity * 2);
renderer->texturesToDestroy[renderer->texturesToDestroyCount] = texture; renderer->texturesToDestroy[renderer->texturesToDestroyCount] = texture;
renderer->texturesToDestroyCount += 1; renderer->texturesToDestroyCount += 1;
@ -3740,7 +3740,7 @@ static void D3D12_ReleaseSampler(
D3D12Sampler *, D3D12Sampler *,
renderer->samplersToDestroyCount + 1, renderer->samplersToDestroyCount + 1,
renderer->samplersToDestroyCapacity, renderer->samplersToDestroyCapacity,
renderer->samplersToDestroyCapacity * 2) renderer->samplersToDestroyCapacity * 2);
renderer->samplersToDestroy[renderer->samplersToDestroyCount] = d3d12Sampler; renderer->samplersToDestroy[renderer->samplersToDestroyCount] = d3d12Sampler;
renderer->samplersToDestroyCount += 1; renderer->samplersToDestroyCount += 1;
@ -3800,7 +3800,7 @@ static void D3D12_ReleaseComputePipeline(
D3D12ComputePipeline *, D3D12ComputePipeline *,
renderer->computePipelinesToDestroyCount + 1, renderer->computePipelinesToDestroyCount + 1,
renderer->computePipelinesToDestroyCapacity, renderer->computePipelinesToDestroyCapacity,
renderer->computePipelinesToDestroyCapacity * 2) renderer->computePipelinesToDestroyCapacity * 2);
renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = d3d12ComputePipeline; renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = d3d12ComputePipeline;
renderer->computePipelinesToDestroyCount += 1; renderer->computePipelinesToDestroyCount += 1;
@ -3822,7 +3822,7 @@ static void D3D12_ReleaseGraphicsPipeline(
D3D12GraphicsPipeline *, D3D12GraphicsPipeline *,
renderer->graphicsPipelinesToDestroyCount + 1, renderer->graphicsPipelinesToDestroyCount + 1,
renderer->graphicsPipelinesToDestroyCapacity, renderer->graphicsPipelinesToDestroyCapacity,
renderer->graphicsPipelinesToDestroyCapacity * 2) renderer->graphicsPipelinesToDestroyCapacity * 2);
renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = d3d12GraphicsPipeline; renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = d3d12GraphicsPipeline;
renderer->graphicsPipelinesToDestroyCount += 1; renderer->graphicsPipelinesToDestroyCount += 1;

View file

@ -97,14 +97,6 @@ typedef struct VulkanExtensions
arr->capacity * sizeof(type)); \ 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) \ #define MOVE_ARRAY_CONTENTS_AND_RESET(i, dstArr, dstCount, srcArr, srcCount) \
for (i = 0; i < srcCount; i += 1) { \ for (i = 0; i < srcCount; i += 1) { \
dstArr[i] = srcArr[i]; \ dstArr[i] = srcArr[i]; \
@ -2897,7 +2889,7 @@ static void VULKAN_INTERNAL_ReleaseFramebuffer(
VulkanFramebuffer *, VulkanFramebuffer *,
renderer->framebuffersToDestroyCount + 1, renderer->framebuffersToDestroyCount + 1,
renderer->framebuffersToDestroyCapacity, renderer->framebuffersToDestroyCapacity,
renderer->framebuffersToDestroyCapacity * 2) renderer->framebuffersToDestroyCapacity * 2);
renderer->framebuffersToDestroy[renderer->framebuffersToDestroyCount] = framebuffer; renderer->framebuffersToDestroy[renderer->framebuffersToDestroyCount] = framebuffer;
renderer->framebuffersToDestroyCount += 1; renderer->framebuffersToDestroyCount += 1;
@ -4940,7 +4932,7 @@ static void VULKAN_INTERNAL_ReturnDescriptorSetCacheToPool(
DescriptorSetCache *, DescriptorSetCache *,
renderer->descriptorSetCachePoolCount + 1, renderer->descriptorSetCachePoolCount + 1,
renderer->descriptorSetCachePoolCapacity, renderer->descriptorSetCachePoolCapacity,
renderer->descriptorSetCachePoolCapacity * 2) renderer->descriptorSetCachePoolCapacity * 2);
renderer->descriptorSetCachePool[renderer->descriptorSetCachePoolCount] = descriptorSetCache; renderer->descriptorSetCachePool[renderer->descriptorSetCachePoolCount] = descriptorSetCache;
renderer->descriptorSetCachePoolCount += 1; renderer->descriptorSetCachePoolCount += 1;
@ -6752,7 +6744,7 @@ static void VULKAN_INTERNAL_ReleaseTexture(
VulkanTexture *, VulkanTexture *,
renderer->texturesToDestroyCount + 1, renderer->texturesToDestroyCount + 1,
renderer->texturesToDestroyCapacity, renderer->texturesToDestroyCapacity,
renderer->texturesToDestroyCapacity * 2) renderer->texturesToDestroyCapacity * 2);
renderer->texturesToDestroy[renderer->texturesToDestroyCount] = vulkanTexture; renderer->texturesToDestroy[renderer->texturesToDestroyCount] = vulkanTexture;
renderer->texturesToDestroyCount += 1; renderer->texturesToDestroyCount += 1;
@ -6800,7 +6792,7 @@ static void VULKAN_ReleaseSampler(
VulkanSampler *, VulkanSampler *,
renderer->samplersToDestroyCount + 1, renderer->samplersToDestroyCount + 1,
renderer->samplersToDestroyCapacity, renderer->samplersToDestroyCapacity,
renderer->samplersToDestroyCapacity * 2) renderer->samplersToDestroyCapacity * 2);
renderer->samplersToDestroy[renderer->samplersToDestroyCount] = vulkanSampler; renderer->samplersToDestroy[renderer->samplersToDestroyCount] = vulkanSampler;
renderer->samplersToDestroyCount += 1; renderer->samplersToDestroyCount += 1;
@ -6823,7 +6815,7 @@ static void VULKAN_INTERNAL_ReleaseBuffer(
VulkanBuffer *, VulkanBuffer *,
renderer->buffersToDestroyCount + 1, renderer->buffersToDestroyCount + 1,
renderer->buffersToDestroyCapacity, renderer->buffersToDestroyCapacity,
renderer->buffersToDestroyCapacity * 2) renderer->buffersToDestroyCapacity * 2);
renderer->buffersToDestroy[renderer->buffersToDestroyCount] = vulkanBuffer; renderer->buffersToDestroy[renderer->buffersToDestroyCount] = vulkanBuffer;
renderer->buffersToDestroyCount += 1; renderer->buffersToDestroyCount += 1;
@ -6893,7 +6885,7 @@ static void VULKAN_ReleaseShader(
VulkanShader *, VulkanShader *,
renderer->shadersToDestroyCount + 1, renderer->shadersToDestroyCount + 1,
renderer->shadersToDestroyCapacity, renderer->shadersToDestroyCapacity,
renderer->shadersToDestroyCapacity * 2) renderer->shadersToDestroyCapacity * 2);
renderer->shadersToDestroy[renderer->shadersToDestroyCount] = vulkanShader; renderer->shadersToDestroy[renderer->shadersToDestroyCount] = vulkanShader;
renderer->shadersToDestroyCount += 1; renderer->shadersToDestroyCount += 1;
@ -6915,7 +6907,7 @@ static void VULKAN_ReleaseComputePipeline(
VulkanComputePipeline *, VulkanComputePipeline *,
renderer->computePipelinesToDestroyCount + 1, renderer->computePipelinesToDestroyCount + 1,
renderer->computePipelinesToDestroyCapacity, renderer->computePipelinesToDestroyCapacity,
renderer->computePipelinesToDestroyCapacity * 2) renderer->computePipelinesToDestroyCapacity * 2);
renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = vulkanComputePipeline; renderer->computePipelinesToDestroy[renderer->computePipelinesToDestroyCount] = vulkanComputePipeline;
renderer->computePipelinesToDestroyCount += 1; renderer->computePipelinesToDestroyCount += 1;
@ -6937,7 +6929,7 @@ static void VULKAN_ReleaseGraphicsPipeline(
VulkanGraphicsPipeline *, VulkanGraphicsPipeline *,
renderer->graphicsPipelinesToDestroyCount + 1, renderer->graphicsPipelinesToDestroyCount + 1,
renderer->graphicsPipelinesToDestroyCapacity, renderer->graphicsPipelinesToDestroyCapacity,
renderer->graphicsPipelinesToDestroyCapacity * 2) renderer->graphicsPipelinesToDestroyCapacity * 2);
renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = vulkanGraphicsPipeline; renderer->graphicsPipelinesToDestroy[renderer->graphicsPipelinesToDestroyCount] = vulkanGraphicsPipeline;
renderer->graphicsPipelinesToDestroyCount += 1; renderer->graphicsPipelinesToDestroyCount += 1;