From 99a65853a6de8662e11511312f2017ba7302caaa Mon Sep 17 00:00:00 2001 From: ImpDi <64393330+ImpDi@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:19:45 +0800 Subject: [PATCH] Texture2DArray and Compute Pipeline in DirectX12 (#15161) Apparently, because PlaneSlice wasn't initialized, we couldn't use SDL_GPU_TEXTURETYPE_2D_ARRAY and SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE together, as the error d3d12: "ID3D12Device::CreateUnorderedAccessView occurred: The PlaneSlice -858993460 is invalid when the resource format is R8G8B8A8_UNORM and the view format is R8G8B8A8_UNORM. Only Plane Slice 0 is valid when creating a view on a non-planar format. [ STATE_CREATION ERROR #344: CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE]" (cherry picked from commit 89cab56536a371682de5f31f1e3b989858c47edf) --- src/gpu/d3d12/SDL_gpu_d3d12.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c index 6a85c6e6d0..5a1018a550 100644 --- a/src/gpu/d3d12/SDL_gpu_d3d12.c +++ b/src/gpu/d3d12/SDL_gpu_d3d12.c @@ -3635,6 +3635,7 @@ static D3D12Texture *D3D12_INTERNAL_CreateTexture( uavDesc.Texture2DArray.MipSlice = levelIndex; uavDesc.Texture2DArray.FirstArraySlice = layerIndex; uavDesc.Texture2DArray.ArraySize = 1; + uavDesc.Texture2DArray.PlaneSlice = 0; } else if (createinfo->type == SDL_GPU_TEXTURETYPE_3D) { uavDesc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE3D; uavDesc.Texture3D.MipSlice = levelIndex;