From 1fd47039075e368430abb0d297f441bd4be40d8d 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 (cherry picked from commit 4db63e323e37e6bb7df6a743999d1ded036553a8) --- 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 914c53a89c..92b9b7a7ad 100644 --- a/src/gpu/d3d12/SDL_gpu_d3d12.c +++ b/src/gpu/d3d12/SDL_gpu_d3d12.c @@ -876,7 +876,7 @@ struct D3D12Renderer SDL_SharedObject *d3d12_dll; ID3D12Device *device; PFN_D3D12_SERIALIZE_ROOT_SIGNATURE D3D12SerializeRootSignature_func; - const char *semantic; + char *semantic; SDL_iconv_t iconv; ID3D12CommandQueue *commandQueue; @@ -1739,6 +1739,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); } @@ -9212,7 +9213,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);