From 00bb81de769a80303e607aea149419902230bc4b Mon Sep 17 00:00:00 2001
From: cosmonaut <[EMAIL REDACTED]>
Date: Mon, 14 Oct 2024 14:28:21 -0700
Subject: [PATCH] GPU: Allow size queries on depth formats
---
src/gpu/SDL_gpu.c | 6 ++++++
src/gpu/SDL_sysgpu.h | 10 ++++++++++
2 files changed, 16 insertions(+)
diff --git a/src/gpu/SDL_gpu.c b/src/gpu/SDL_gpu.c
index 0450d92521189..0ec1fcecc67a4 100644
--- a/src/gpu/SDL_gpu.c
+++ b/src/gpu/SDL_gpu.c
@@ -619,6 +619,7 @@ Uint32 SDL_GPUTextureFormatTexelBlockSize(
case SDL_GPU_TEXTUREFORMAT_R16_UNORM:
case SDL_GPU_TEXTUREFORMAT_R16_SNORM:
case SDL_GPU_TEXTUREFORMAT_R16_UINT:
+ case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
return 2;
case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM:
case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM:
@@ -633,7 +634,12 @@ Uint32 SDL_GPUTextureFormatTexelBlockSize(
case SDL_GPU_TEXTUREFORMAT_R16G16_UINT:
case SDL_GPU_TEXTUREFORMAT_R16G16_UNORM:
case SDL_GPU_TEXTUREFORMAT_R16G16_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
return 4;
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
+ return 5;
case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT:
case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM:
case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM:
diff --git a/src/gpu/SDL_sysgpu.h b/src/gpu/SDL_sysgpu.h
index 51fd06fcc70ea..7f9ef6ca43324 100644
--- a/src/gpu/SDL_sysgpu.h
+++ b/src/gpu/SDL_sysgpu.h
@@ -180,6 +180,11 @@ static inline Sint32 Texture_GetBlockWidth(
case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT:
case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB:
case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
return 1;
default:
SDL_assert_release(!"Unrecognized TextureFormat!");
@@ -289,6 +294,11 @@ static inline Sint32 Texture_GetBlockHeight(
case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT:
case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB:
case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
+ case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
return 1;
default:
SDL_assert_release(!"Unrecognized TextureFormat!");