diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c index 063095200f..278452294b 100644 --- a/src/gpu/d3d12/SDL_gpu_d3d12.c +++ b/src/gpu/d3d12/SDL_gpu_d3d12.c @@ -2906,8 +2906,6 @@ static SDL_GPUComputePipeline *D3D12_CreateComputePipeline( const SDL_GPUComputePipelineCreateInfo *createinfo) { D3D12Renderer *renderer = (D3D12Renderer *)driverData; - void *bytecode; - size_t bytecodeSize; ID3D12PipelineState *pipelineState; if (!D3D12_INTERNAL_CreateShaderBytecode( @@ -2915,8 +2913,8 @@ static SDL_GPUComputePipeline *D3D12_CreateComputePipeline( createinfo->code, createinfo->code_size, createinfo->format, - &bytecode, - &bytecodeSize)) { + NULL, + NULL)) { return NULL; } @@ -2925,13 +2923,12 @@ static SDL_GPUComputePipeline *D3D12_CreateComputePipeline( createinfo); if (rootSignature == NULL) { - SDL_free(bytecode); SET_STRING_ERROR_AND_RETURN("Could not create root signature!", NULL); } D3D12_COMPUTE_PIPELINE_STATE_DESC pipelineDesc; - pipelineDesc.CS.pShaderBytecode = bytecode; - pipelineDesc.CS.BytecodeLength = bytecodeSize; + pipelineDesc.CS.pShaderBytecode = createinfo->code; + pipelineDesc.CS.BytecodeLength = createinfo->code_size; pipelineDesc.pRootSignature = rootSignature->handle; pipelineDesc.CachedPSO.CachedBlobSizeInBytes = 0; pipelineDesc.CachedPSO.pCachedBlob = NULL; @@ -2946,7 +2943,6 @@ static SDL_GPUComputePipeline *D3D12_CreateComputePipeline( if (FAILED(res)) { D3D12_INTERNAL_SetError(renderer, "Could not create compute pipeline state", res); - SDL_free(bytecode); return NULL; } @@ -2955,7 +2951,6 @@ static SDL_GPUComputePipeline *D3D12_CreateComputePipeline( if (!computePipeline) { ID3D12PipelineState_Release(pipelineState); - SDL_free(bytecode); return NULL; }