From 3db10a6b2c7d03de4f7b31bfd827f55edcd87eae Mon Sep 17 00:00:00 2001
From: Caleb Cornett <[EMAIL REDACTED]>
Date: Thu, 10 Oct 2024 18:40:21 -0400
Subject: [PATCH] GPU: ASTC block size fixes (#11157)
---
src/gpu/SDL_sysgpu.h | 175 +++++++++++++++++++++++++++++---
src/gpu/d3d11/SDL_gpu_d3d11.c | 93 ++++++++---------
src/gpu/d3d12/SDL_gpu_d3d12.c | 84 +++++++--------
src/gpu/metal/SDL_gpu_metal.m | 84 +++++++--------
src/gpu/vulkan/SDL_gpu_vulkan.c | 84 +++++++--------
5 files changed, 336 insertions(+), 184 deletions(-)
diff --git a/src/gpu/SDL_sysgpu.h b/src/gpu/SDL_sysgpu.h
index ba48c6cc1cc16..f06ae62d677d0 100644
--- a/src/gpu/SDL_sysgpu.h
+++ b/src/gpu/SDL_sysgpu.h
@@ -78,10 +78,54 @@ typedef struct BlitPipelineCacheEntry
#define SDL_GPU_SWAPCHAINCOMPOSITION_MAX_ENUM_VALUE (SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2048 + 1)
#define SDL_GPU_PRESENTMODE_MAX_ENUM_VALUE (SDL_GPU_PRESENTMODE_MAILBOX + 1)
-static inline Sint32 Texture_GetBlockSize(
+static inline Sint32 Texture_GetBlockWidth(
SDL_GPUTextureFormat format)
{
switch (format) {
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT:
+ return 12;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT:
+ return 10;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT:
+ return 8;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT:
+ return 6;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT:
+ return 5;
case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM:
case SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM:
case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM:
@@ -93,6 +137,118 @@ static inline Sint32 Texture_GetBlockSize(
case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB:
case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB:
case SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT:
+ return 4;
+ case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R8G8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16G16_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_A8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_R8_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R8G8_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16G16_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM:
+ case SDL_GPU_TEXTUREFORMAT_R16_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT:
+ case SDL_GPU_TEXTUREFORMAT_R8_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R8G8_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R16_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT:
+ case SDL_GPU_TEXTUREFORMAT_R8_INT:
+ case SDL_GPU_TEXTUREFORMAT_R8G8_INT:
+ case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT:
+ case SDL_GPU_TEXTUREFORMAT_R16_INT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16_INT:
+ case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT:
+ case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB:
+ return 1;
+ default:
+ SDL_assert_release(!"Unrecognized TextureFormat!");
+ return 0;
+ }
+}
+
+static inline Sint32 Texture_GetBlockHeight(
+ SDL_GPUTextureFormat format)
+{
+ switch (format) {
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT:
+ return 12;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT:
+ return 10;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT:
+ return 8;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT:
+ return 6;
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT:
+ return 5;
+ case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT:
+ case SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB:
+ case SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT:
return 4;
case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM:
case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM:
@@ -201,10 +357,8 @@ static inline Uint32 BytesPerRow(
Sint32 width,
SDL_GPUTextureFormat format)
{
- Uint32 blocksPerRow = width;
- Uint32 pixelRowsPerBlock = Texture_GetBlockSize(format);
-
- blocksPerRow = (width + pixelRowsPerBlock - 1) / pixelRowsPerBlock;
+ Uint32 blockWidth = Texture_GetBlockWidth(format);
+ Uint32 blocksPerRow = (width + blockWidth - 1) / blockWidth;
return blocksPerRow * SDL_GPUTextureFormatTexelBlockSize(format);
}
@@ -213,13 +367,10 @@ static inline Sint32 BytesPerImage(
Uint32 height,
SDL_GPUTextureFormat format)
{
- Uint32 blocksPerRow = width;
- Uint32 blocksPerColumn = height;
- Uint32 pixelRowsPerBlock = Texture_GetBlockSize(format);
- Uint32 pixelColumnsPerBlock = pixelRowsPerBlock;
-
- blocksPerRow = (width + pixelRowsPerBlock - 1) / pixelRowsPerBlock;
- blocksPerColumn = (height + pixelColumnsPerBlock - 1) / pixelColumnsPerBlock;
+ Uint32 blockWidth = Texture_GetBlockWidth(format);
+ Uint32 blockHeight = Texture_GetBlockHeight(format);
+ Uint32 blocksPerRow = (width + blockWidth - 1) / blockWidth;
+ Uint32 blocksPerColumn = (height + blockHeight - 1) / blockHeight;
return blocksPerRow * blocksPerColumn * SDL_GPUTextureFormatTexelBlockSize(format);
}
diff --git a/src/gpu/d3d11/SDL_gpu_d3d11.c b/src/gpu/d3d11/SDL_gpu_d3d11.c
index 838251c10617d..d667efddf5ba7 100644
--- a/src/gpu/d3d11/SDL_gpu_d3d11.c
+++ b/src/gpu/d3d11/SDL_gpu_d3d11.c
@@ -237,48 +237,48 @@ static DXGI_FORMAT SDLToD3D11_TextureFormat[] = {
DXGI_FORMAT_D32_FLOAT, // D32_FLOAT
DXGI_FORMAT_D24_UNORM_S8_UINT, // D24_UNORM_S8_UINT
DXGI_FORMAT_D32_FLOAT_S8X24_UINT, // D32_FLOAT_S8_UINT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_FLOAT
};
SDL_COMPILE_TIME_ASSERT(SDLToD3D11_TextureFormat, SDL_arraysize(SDLToD3D11_TextureFormat) == SDL_GPU_TEXTUREFORMAT_MAX_ENUM_VALUE);
@@ -2698,10 +2698,11 @@ static void D3D11_UploadToTexture(
destination->mip_level,
cycle);
- Sint32 blockSize = Texture_GetBlockSize(dstFormat);
- if (blockSize > 1) {
- w = (w + blockSize - 1) & ~(blockSize - 1);
- h = (h + blockSize - 1) & ~(blockSize - 1);
+ Sint32 blockWidth = Texture_GetBlockWidth(dstFormat);
+ Sint32 blockHeight = Texture_GetBlockHeight(dstFormat);
+ if (blockWidth > 1 && blockHeight > 1) {
+ w = (w + blockWidth - 1) & ~(blockWidth - 1);
+ h = (h + blockHeight - 1) & ~(blockHeight - 1);
}
if (bufferStride == 0) {
diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c
index dde8d7179a6e4..86d8dcc6c6d83 100644
--- a/src/gpu/d3d12/SDL_gpu_d3d12.c
+++ b/src/gpu/d3d12/SDL_gpu_d3d12.c
@@ -312,48 +312,48 @@ static DXGI_FORMAT SDLToD3D12_TextureFormat[] = {
DXGI_FORMAT_D32_FLOAT, // D32_FLOAT
DXGI_FORMAT_D24_UNORM_S8_UINT, // D24_UNORM_S8_UINT
DXGI_FORMAT_D32_FLOAT_S8X24_UINT, // D32_FLOAT_S8_UINT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
- DXGI_FORMAT_UNKNOWN, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_UNORM
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_UNORM_SRGB
+ DXGI_FORMAT_UNKNOWN, // ASTC_4x4_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x4_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_5x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_6x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_8x8_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x5_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x6_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x8_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_10x10_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x10_FLOAT
+ DXGI_FORMAT_UNKNOWN, // ASTC_12x12_FLOAT
};
SDL_COMPILE_TIME_ASSERT(SDLToD3D12_TextureFormat, SDL_arraysize(SDLToD3D12_TextureFormat) == SDL_GPU_TEXTUREFORMAT_MAX_ENUM_VALUE);
diff --git a/src/gpu/metal/SDL_gpu_metal.m b/src/gpu/metal/SDL_gpu_metal.m
index 84515eaf025da..faed52bb6156b 100644
--- a/src/gpu/metal/SDL_gpu_metal.m
+++ b/src/gpu/metal/SDL_gpu_metal.m
@@ -166,48 +166,48 @@ static void METAL_ReleaseWindow(
MTLPixelFormatInvalid, // D24_UNORM_S8_UINT
#endif
MTLPixelFormatDepth32Float_Stencil8, // D32_FLOAT_S8_UINT
- MTLPixelFormatASTC_4x4_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
- MTLPixelFormatASTC_5x4_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
- MTLPixelFormatASTC_5x5_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
- MTLPixelFormatASTC_6x5_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
- MTLPixelFormatASTC_6x6_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
- MTLPixelFormatASTC_8x5_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
- MTLPixelFormatASTC_8x6_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
- MTLPixelFormatASTC_8x8_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
- MTLPixelFormatASTC_10x5_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
- MTLPixelFormatASTC_10x6_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
- MTLPixelFormatASTC_10x8_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
- MTLPixelFormatASTC_10x10_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
- MTLPixelFormatASTC_12x10_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
- MTLPixelFormatASTC_12x12_LDR, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
- MTLPixelFormatASTC_4x4_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
- MTLPixelFormatASTC_5x4_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
- MTLPixelFormatASTC_5x5_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
- MTLPixelFormatASTC_6x5_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
- MTLPixelFormatASTC_6x6_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
- MTLPixelFormatASTC_8x5_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
- MTLPixelFormatASTC_8x6_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
- MTLPixelFormatASTC_8x8_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
- MTLPixelFormatASTC_10x5_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
- MTLPixelFormatASTC_10x6_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
- MTLPixelFormatASTC_10x8_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
- MTLPixelFormatASTC_10x10_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
- MTLPixelFormatASTC_12x10_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
- MTLPixelFormatASTC_12x12_sRGB, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
- MTLPixelFormatASTC_4x4_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
- MTLPixelFormatASTC_5x4_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
- MTLPixelFormatASTC_5x5_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
- MTLPixelFormatASTC_6x5_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
- MTLPixelFormatASTC_6x6_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
- MTLPixelFormatASTC_8x5_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
- MTLPixelFormatASTC_8x6_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
- MTLPixelFormatASTC_8x8_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
- MTLPixelFormatASTC_10x5_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
- MTLPixelFormatASTC_10x6_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
- MTLPixelFormatASTC_10x8_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
- MTLPixelFormatASTC_10x10_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
- MTLPixelFormatASTC_12x10_HDR, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
- MTLPixelFormatASTC_12x12_HDR // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT
+ MTLPixelFormatASTC_4x4_LDR, // ASTC_4x4_UNORM
+ MTLPixelFormatASTC_5x4_LDR, // ASTC_5x4_UNORM
+ MTLPixelFormatASTC_5x5_LDR, // ASTC_5x5_UNORM
+ MTLPixelFormatASTC_6x5_LDR, // ASTC_6x5_UNORM
+ MTLPixelFormatASTC_6x6_LDR, // ASTC_6x6_UNORM
+ MTLPixelFormatASTC_8x5_LDR, // ASTC_8x5_UNORM
+ MTLPixelFormatASTC_8x6_LDR, // ASTC_8x6_UNORM
+ MTLPixelFormatASTC_8x8_LDR, // ASTC_8x8_UNORM
+ MTLPixelFormatASTC_10x5_LDR, // ASTC_10x5_UNORM
+ MTLPixelFormatASTC_10x6_LDR, // ASTC_10x6_UNORM
+ MTLPixelFormatASTC_10x8_LDR, // ASTC_10x8_UNORM
+ MTLPixelFormatASTC_10x10_LDR, // ASTC_10x10_UNORM
+ MTLPixelFormatASTC_12x10_LDR, // ASTC_12x10_UNORM
+ MTLPixelFormatASTC_12x12_LDR, // ASTC_12x12_UNORM
+ MTLPixelFormatASTC_4x4_sRGB, // ASTC_4x4_UNORM_SRGB
+ MTLPixelFormatASTC_5x4_sRGB, // ASTC_5x4_UNORM_SRGB
+ MTLPixelFormatASTC_5x5_sRGB, // ASTC_5x5_UNORM_SRGB
+ MTLPixelFormatASTC_6x5_sRGB, // ASTC_6x5_UNORM_SRGB
+ MTLPixelFormatASTC_6x6_sRGB, // ASTC_6x6_UNORM_SRGB
+ MTLPixelFormatASTC_8x5_sRGB, // ASTC_8x5_UNORM_SRGB
+ MTLPixelFormatASTC_8x6_sRGB, // ASTC_8x6_UNORM_SRGB
+ MTLPixelFormatASTC_8x8_sRGB, // ASTC_8x8_UNORM_SRGB
+ MTLPixelFormatASTC_10x5_sRGB, // ASTC_10x5_UNORM_SRGB
+ MTLPixelFormatASTC_10x6_sRGB, // ASTC_10x6_UNORM_SRGB
+ MTLPixelFormatASTC_10x8_sRGB, // ASTC_10x8_UNORM_SRGB
+ MTLPixelFormatASTC_10x10_sRGB, // ASTC_10x10_UNORM_SRGB
+ MTLPixelFormatASTC_12x10_sRGB, // ASTC_12x10_UNORM_SRGB
+ MTLPixelFormatASTC_12x12_sRGB, // ASTC_12x12_UNORM_SRGB
+ MTLPixelFormatASTC_4x4_HDR, // ASTC_4x4_FLOAT
+ MTLPixelFormatASTC_5x4_HDR, // ASTC_5x4_FLOAT
+ MTLPixelFormatASTC_5x5_HDR, // ASTC_5x5_FLOAT
+ MTLPixelFormatASTC_6x5_HDR, // ASTC_6x5_FLOAT
+ MTLPixelFormatASTC_6x6_HDR, // ASTC_6x6_FLOAT
+ MTLPixelFormatASTC_8x5_HDR, // ASTC_8x5_FLOAT
+ MTLPixelFormatASTC_8x6_HDR, // ASTC_8x6_FLOAT
+ MTLPixelFormatASTC_8x8_HDR, // ASTC_8x8_FLOAT
+ MTLPixelFormatASTC_10x5_HDR, // ASTC_10x5_FLOAT
+ MTLPixelFormatASTC_10x6_HDR, // ASTC_10x6_FLOAT
+ MTLPixelFormatASTC_10x8_HDR, // ASTC_10x8_FLOAT
+ MTLPixelFormatASTC_10x10_HDR, // ASTC_10x10_FLOAT
+ MTLPixelFormatASTC_12x10_HDR, // ASTC_12x10_FLOAT
+ MTLPixelFormatASTC_12x12_HDR // ASTC_12x12_FLOAT
};
SDL_COMPILE_TIME_ASSERT(SDLToMetal_SurfaceFormat, SDL_arraysize(SDLToMetal_SurfaceFormat) == SDL_GPU_TEXTUREFORMAT_MAX_ENUM_VALUE);
diff --git a/src/gpu/vulkan/SDL_gpu_vulkan.c b/src/gpu/vulkan/SDL_gpu_vulkan.c
index db40d678858ad..4f4ae3cdf87c3 100644
--- a/src/gpu/vulkan/SDL_gpu_vulkan.c
+++ b/src/gpu/vulkan/SDL_gpu_vulkan.c
@@ -200,48 +200,48 @@ static VkFormat SDLToVK_TextureFormat[] = {
VK_FORMAT_D32_SFLOAT, // D32_FLOAT
VK_FORMAT_D24_UNORM_S8_UINT, // D24_UNORM_S8_UINT
VK_FORMAT_D32_SFLOAT_S8_UINT, // D32_FLOAT_S8_UINT
- VK_FORMAT_ASTC_5x4_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
- VK_FORMAT_ASTC_4x4_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
- VK_FORMAT_ASTC_5x5_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
- VK_FORMAT_ASTC_6x5_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
- VK_FORMAT_ASTC_6x6_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
- VK_FORMAT_ASTC_8x5_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
- VK_FORMAT_ASTC_8x6_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
- VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
- VK_FORMAT_ASTC_10x5_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
- VK_FORMAT_ASTC_10x6_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
- VK_FORMAT_ASTC_10x8_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
- VK_FORMAT_ASTC_10x10_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
- VK_FORMAT_ASTC_12x10_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
- VK_FORMAT_ASTC_12x12_UNORM_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
- VK_FORMAT_ASTC_4x4_SRGB_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
- VK_FORMAT_ASTC_5x4_SRGB_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
- VK_FORMAT_ASTC_5x5_SRGB_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
- VK_FORMAT_ASTC_6x5_SRGB_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
- VK_FORMAT_ASTC_6x6_SRGB_BLOCK, // SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
- VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
(Patch may be truncated, please check the link at the top of this post.)