From 4db63e323e37e6bb7df6a743999d1ded036553a8 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 2 Nov 2025 16:15:20 -0800 Subject: [PATCH] Save a copy of the D3D12 semantic string Fixes https://github.com/libsdl-org/SDL/issues/14383 --- src/gpu/d3d12/SDL_gpu_d3d12.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c index 985a82eee1..0c76e79225 100644 --- a/src/gpu/d3d12/SDL_gpu_d3d12.c +++ b/src/gpu/d3d12/SDL_gpu_d3d12.c @@ -864,7 +864,7 @@ struct D3D12Renderer SDL_SharedObject *d3d12_dll; ID3D12Device *device; PFN_D3D12_SERIALIZE_ROOT_SIGNATURE pD3D12SerializeRootSignature; - const char *semantic; + char *semantic; SDL_iconv_t iconv; ID3D12CommandQueue *commandQueue; @@ -1713,6 +1713,7 @@ static void D3D12_INTERNAL_DestroyRenderer(D3D12Renderer *renderer) SDL_DestroyMutex(renderer->windowLock); SDL_DestroyMutex(renderer->fenceLock); SDL_DestroyMutex(renderer->disposeLock); + SDL_free(renderer->semantic); SDL_free(renderer); } @@ -9255,7 +9256,7 @@ static SDL_GPUDevice *D3D12_CreateDevice(bool debugMode, bool preferLowPower, SD renderer->debug_mode = debugMode; renderer->allowedFramesInFlight = 2; - renderer->semantic = SDL_GetStringProperty(props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING, "TEXCOORD"); + renderer->semantic = SDL_strdup(SDL_GetStringProperty(props, SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING, "TEXCOORD")); // Blit resources D3D12_INTERNAL_InitBlitResources(renderer);