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);