Skip to content

Commit 9f87ad7

Browse files
committed
Update to create depth buffer as typeless only when srv is required
1 parent a815c12 commit 9f87ad7

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/gpu/d3d12/SDL_gpu_d3d12.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -3259,6 +3259,10 @@ static D3D12Texture *D3D12_INTERNAL_CreateTexture(
32593259
D3D12_CLEAR_VALUE clearValue;
32603260
DXGI_FORMAT format;
32613261
bool useClearValue = false;
3262+
bool needsSRV =
3263+
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_SAMPLER) ||
3264+
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ) ||
3265+
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ);
32623266
bool needsUAV =
32633267
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE) ||
32643268
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE);
@@ -3291,7 +3295,7 @@ static D3D12Texture *D3D12_INTERNAL_CreateTexture(
32913295
clearValue.Format = SDLToD3D12_DepthFormat[createinfo->format];
32923296
clearValue.DepthStencil.Depth = SDL_GetFloatProperty(createinfo->props, SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT, 0);
32933297
clearValue.DepthStencil.Stencil = (UINT8)SDL_GetNumberProperty(createinfo->props, SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_UINT8, 0);
3294-
format = SDLToD3D12_TypelessFormat[createinfo->format];
3298+
format = needsSRV ? SDLToD3D12_TypelessFormat[createinfo->format] : SDLToD3D12_DepthFormat[createinfo->format];
32953299
}
32963300

32973301
if (needsUAV) {
@@ -3352,9 +3356,7 @@ static D3D12Texture *D3D12_INTERNAL_CreateTexture(
33523356
texture->resource = handle;
33533357

33543358
// Create the SRV if applicable
3355-
if ((createinfo->usage & SDL_GPU_TEXTUREUSAGE_SAMPLER) ||
3356-
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ) ||
3357-
(createinfo->usage & SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ)) {
3359+
if (needsSRV) {
33583360
D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc;
33593361

33603362
D3D12_INTERNAL_AssignStagingDescriptorHandle(

0 commit comments

Comments
 (0)