Skip to content

Commit 9c0864d

Browse files
committed
Support ETC2 texture format.
1 parent 54f13c8 commit 9c0864d

File tree

7 files changed

+125
-15
lines changed

7 files changed

+125
-15
lines changed

Graphics/GraphicsAccessories/src/GraphicsAccessories.cpp

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ class TexFormatToViewFormatConverter
216216
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_BC7_TYPELESS, BC7_UNORM_SRGB, UNKNOWN, UNKNOWN, UNKNOWN);
217217
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_BC7_UNORM, BC7_UNORM, UNKNOWN, UNKNOWN, UNKNOWN);
218218
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_BC7_UNORM_SRGB, BC7_UNORM_SRGB, UNKNOWN, UNKNOWN, UNKNOWN);
219+
220+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8_UNORM, ETC2_RGB8_UNORM, UNKNOWN, UNKNOWN, UNKNOWN);
221+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8_UNORM_SRGB, ETC2_RGB8_UNORM_SRGB, UNKNOWN, UNKNOWN, UNKNOWN);
222+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8A1_UNORM, ETC2_RGB8A1_UNORM, UNKNOWN, UNKNOWN, UNKNOWN);
223+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB, ETC2_RGB8A1_UNORM_SRGB, UNKNOWN, UNKNOWN, UNKNOWN);
224+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGBA8_UNORM, ETC2_RGBA8_UNORM, UNKNOWN, UNKNOWN, UNKNOWN);
225+
INIT_TEX_VIEW_FORMAT_INFO(TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB, ETC2_RGBA8_UNORM_SRGB, UNKNOWN, UNKNOWN, UNKNOWN);
219226
#undef INIT_TVIEW_FORMAT_INFO
220227
// clang-format on
221228

@@ -399,9 +406,16 @@ const TextureFormatAttribs& GetTextureFormatAttribs(TEXTURE_FORMAT Format)
399406
INIT_TEX_FORMAT_INFO(TEX_FORMAT_BC7_TYPELESS, 16, 4, COMPONENT_TYPE_COMPRESSED, true, 4,4);
400407
INIT_TEX_FORMAT_INFO(TEX_FORMAT_BC7_UNORM, 16, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
401408
INIT_TEX_FORMAT_INFO(TEX_FORMAT_BC7_UNORM_SRGB, 16, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
409+
410+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8_UNORM, 8, 3, COMPONENT_TYPE_COMPRESSED, false, 4,4);
411+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8_UNORM_SRGB, 8, 3, COMPONENT_TYPE_COMPRESSED, false, 4,4);
412+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8A1_UNORM, 8, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
413+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB, 8, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
414+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGBA8_UNORM, 16, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
415+
INIT_TEX_FORMAT_INFO(TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB, 16, 4, COMPONENT_TYPE_COMPRESSED, false, 4,4);
402416
#undef INIT_TEX_FORMAT_INFO
403417
// clang-format on
404-
static_assert(TEX_FORMAT_NUM_FORMATS == TEX_FORMAT_BC7_UNORM_SRGB + 1, "Not all texture formats initialized.");
418+
static_assert(TEX_FORMAT_NUM_FORMATS == TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB + 1, "Not all texture formats initialized.");
405419

406420
#ifdef DILIGENT_DEBUG
407421
for (Uint32 Fmt = TEX_FORMAT_UNKNOWN; Fmt < TEX_FORMAT_NUM_FORMATS; ++Fmt)
@@ -2568,6 +2582,15 @@ TEXTURE_FORMAT UnormFormatToSRGB(TEXTURE_FORMAT Fmt)
25682582
case TEX_FORMAT_BC7_UNORM:
25692583
return TEX_FORMAT_BC7_UNORM_SRGB;
25702584

2585+
case TEX_FORMAT_ETC2_RGB8_UNORM:
2586+
return TEX_FORMAT_ETC2_RGB8_UNORM_SRGB;
2587+
2588+
case TEX_FORMAT_ETC2_RGB8A1_UNORM:
2589+
return TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB;
2590+
2591+
case TEX_FORMAT_ETC2_RGBA8_UNORM:
2592+
return TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB;
2593+
25712594
default:
25722595
return Fmt;
25732596
}
@@ -2598,6 +2621,15 @@ TEXTURE_FORMAT SRGBFormatToUnorm(TEXTURE_FORMAT Fmt)
25982621
case TEX_FORMAT_BC7_UNORM_SRGB:
25992622
return TEX_FORMAT_BC7_UNORM;
26002623

2624+
case TEX_FORMAT_ETC2_RGB8_UNORM_SRGB:
2625+
return TEX_FORMAT_ETC2_RGB8_UNORM;
2626+
2627+
case TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB:
2628+
return TEX_FORMAT_ETC2_RGB8A1_UNORM;
2629+
2630+
case TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB:
2631+
return TEX_FORMAT_ETC2_RGBA8_UNORM;
2632+
26012633
default:
26022634
return Fmt;
26032635
}
@@ -2660,7 +2692,10 @@ bool IsSRGBFormat(TEXTURE_FORMAT Fmt)
26602692
Fmt == TEX_FORMAT_BC3_UNORM_SRGB ||
26612693
Fmt == TEX_FORMAT_BGRA8_UNORM_SRGB ||
26622694
Fmt == TEX_FORMAT_BGRX8_UNORM_SRGB ||
2663-
Fmt == TEX_FORMAT_BC7_UNORM_SRGB);
2695+
Fmt == TEX_FORMAT_BC7_UNORM_SRGB ||
2696+
Fmt == TEX_FORMAT_ETC2_RGB8_UNORM_SRGB ||
2697+
Fmt == TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB ||
2698+
Fmt == TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB);
26642699
}
26652700

26662701
String GetPipelineShadingRateFlagsString(PIPELINE_SHADING_RATE_FLAGS Flags)

Graphics/GraphicsEngine/interface/GraphicsTypes.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,30 @@ DILIGENT_TYPED_ENUM(TEXTURE_FORMAT, Uint16)
906906
/// <a href = "https://www.opengl.org/wiki/BPTC_Texture_Compression">BPTC Texture Compression on OpenGL.org </a>
907907
TEX_FORMAT_BC7_UNORM_SRGB,
908908

909+
/// Three-component block-compression unsigned-normalized-integer format. \n
910+
/// OpenGL counterpart: GL_COMPRESSED_RGB8_ETC2.
911+
TEX_FORMAT_ETC2_RGB8_UNORM,
912+
913+
/// Three-component block-compression unsigned-normalized-integer sRGB format. \n
914+
/// OpenGL counterpart: GL_COMPRESSED_SRGB8_ETC2.
915+
TEX_FORMAT_ETC2_RGB8_UNORM_SRGB,
916+
917+
/// Four-component block-compression unsigned-normalized-integer format. \n
918+
/// OpenGL counterpart: GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2.
919+
TEX_FORMAT_ETC2_RGB8A1_UNORM,
920+
921+
/// Four-component block-compression unsigned-normalized-integer sRGB format. \n
922+
/// OpenGL counterpart: GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2.
923+
TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB,
924+
925+
/// Four-component block-compression unsigned-normalized-integer format. \n
926+
/// OpenGL counterpart: GL_COMPRESSED_RGBA8_ETC2_EAC.
927+
TEX_FORMAT_ETC2_RGBA8_UNORM,
928+
929+
/// Four-component block-compression unsigned-normalized-integer sRGB format. \n
930+
/// OpenGL counterpart: GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC.
931+
TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB,
932+
909933
/// Helper member containing the total number of texture formats in the enumeration
910934
TEX_FORMAT_NUM_FORMATS
911935
};

Graphics/GraphicsEngineOpenGL/src/GLTypeConversions.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,15 @@ class FormatToGLInternalTexFormatMap
167167
m_FmtToGLFmtMap[TEX_FORMAT_BC7_TYPELESS] = GL_COMPRESSED_RGBA_BPTC_UNORM;
168168
m_FmtToGLFmtMap[TEX_FORMAT_BC7_UNORM] = GL_COMPRESSED_RGBA_BPTC_UNORM;
169169
m_FmtToGLFmtMap[TEX_FORMAT_BC7_UNORM_SRGB] = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM;
170+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM] = GL_COMPRESSED_RGB8_ETC2;
171+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM_SRGB] = GL_COMPRESSED_SRGB8_ETC2;
172+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM] = GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;
173+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB] = GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2;
174+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM] = GL_COMPRESSED_RGBA8_ETC2_EAC;
175+
m_FmtToGLFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB] = GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC;
170176
// clang-format on
171177

172-
static_assert(TEX_FORMAT_NUM_FORMATS == 100, "Please enter the new format information above");
178+
static_assert(TEX_FORMAT_NUM_FORMATS == 106, "Please enter the new format information above");
173179
}
174180

175181
GLenum operator[](TEXTURE_FORMAT TexFormat) const
@@ -412,6 +418,12 @@ NativePixelAttribs GetNativePixelTransferAttribs(TEXTURE_FORMAT TexFormat)
412418
FmtToGLPixelFmt[TEX_FORMAT_BC7_TYPELESS] = NativePixelAttribs{GL_RGBA, 0, True};
413419
FmtToGLPixelFmt[TEX_FORMAT_BC7_UNORM] = NativePixelAttribs{GL_RGBA, 0, True};
414420
FmtToGLPixelFmt[TEX_FORMAT_BC7_UNORM_SRGB] = NativePixelAttribs{GL_RGBA, 0, True};
421+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGB8_UNORM] = NativePixelAttribs{GL_RGB, 0, True};
422+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGB8_UNORM_SRGB] = NativePixelAttribs{GL_RGB, 0, True};
423+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGB8A1_UNORM] = NativePixelAttribs{GL_RGBA, 0, True};
424+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB] = NativePixelAttribs{GL_RGBA, 0, True};
425+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGBA8_UNORM] = NativePixelAttribs{GL_RGBA, 0, True};
426+
FmtToGLPixelFmt[TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB] = NativePixelAttribs{GL_RGBA, 0, True};
415427
// clang-format on
416428
bAttribsMapInitialized = true;
417429
}

Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,6 +1123,12 @@ void RenderDeviceGLImpl::FlagSupportedTexFormats()
11231123
const bool bTexNorm16 = bDekstopGL || CheckExtension("GL_EXT_texture_norm16"); // Only for ES3.1+
11241124
const bool bTexSwizzle = bDekstopGL || bGLES30OrAbove || CheckExtension("GL_ARB_texture_swizzle");
11251125

1126+
#if PLATFORM_EMSCRIPTEN
1127+
const bool bETC2 = CheckExtension("GL_WEBGL_compressed_texture_etc");
1128+
#else
1129+
const bool bETC2 = bGLES30OrAbove;
1130+
#endif
1131+
11261132
// || GLES3.0 || GLES3.1 || GLES3.2 ||
11271133
// | Format || CR | TF || CR | TF | Req RB | Req. Tex || CR | TF | Req RB | Req. Tex ||
11281134
// |------------||------|------||------|------|--------|----------||------|------|--------|----------||
@@ -1306,6 +1312,13 @@ void RenderDeviceGLImpl::FlagSupportedTexFormats()
13061312
FlagFormat(TEX_FORMAT_BC7_TYPELESS, bBPTC);
13071313
FlagFormat(TEX_FORMAT_BC7_UNORM, bBPTC, BIND_SHADER_RESOURCE, true);
13081314
FlagFormat(TEX_FORMAT_BC7_UNORM_SRGB, bBPTC, BIND_SHADER_RESOURCE, true);
1315+
1316+
FlagFormat(TEX_FORMAT_ETC2_RGB8_UNORM, bETC2, BIND_SHADER_RESOURCE, true);
1317+
FlagFormat(TEX_FORMAT_ETC2_RGB8_UNORM_SRGB, bETC2, BIND_SHADER_RESOURCE, true);
1318+
FlagFormat(TEX_FORMAT_ETC2_RGB8A1_UNORM, bETC2, BIND_SHADER_RESOURCE, true);
1319+
FlagFormat(TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB, bETC2, BIND_SHADER_RESOURCE, true);
1320+
FlagFormat(TEX_FORMAT_ETC2_RGBA8_UNORM, bETC2, BIND_SHADER_RESOURCE, true);
1321+
FlagFormat(TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB, bETC2, BIND_SHADER_RESOURCE, true);
13091322
// clang-format on
13101323

13111324
#ifdef DILIGENT_DEVELOPMENT

Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,12 @@ class TexFormatToVkFormatMapper
165165
m_FmtToVkFmtMap[TEX_FORMAT_BC7_TYPELESS] = VK_FORMAT_BC7_UNORM_BLOCK;
166166
m_FmtToVkFmtMap[TEX_FORMAT_BC7_UNORM] = VK_FORMAT_BC7_UNORM_BLOCK;
167167
m_FmtToVkFmtMap[TEX_FORMAT_BC7_UNORM_SRGB] = VK_FORMAT_BC7_SRGB_BLOCK;
168+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM] = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
169+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM_SRGB] = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
170+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM] = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
171+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB] = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
172+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM] = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
173+
m_FmtToVkFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB] = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
168174
// clang-format on
169175
}
170176

@@ -361,12 +367,13 @@ class VkFormatToTexFormatMapper
361367
m_VkFmtToTexFmtMap[VK_FORMAT_BC7_UNORM_BLOCK] = TEX_FORMAT_BC7_UNORM;
362368
m_VkFmtToTexFmtMap[VK_FORMAT_BC7_SRGB_BLOCK] = TEX_FORMAT_BC7_UNORM_SRGB;
363369

364-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK] = TEX_FORMAT_UNKNOWN;
365-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK] = TEX_FORMAT_UNKNOWN;
366-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK] = TEX_FORMAT_UNKNOWN;
367-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK] = TEX_FORMAT_UNKNOWN;
368-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK] = TEX_FORMAT_UNKNOWN;
369-
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK] = TEX_FORMAT_UNKNOWN;
370+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK] = TEX_FORMAT_ETC2_RGB8_UNORM;
371+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK] = TEX_FORMAT_ETC2_RGB8_UNORM_SRGB;
372+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK] = TEX_FORMAT_ETC2_RGB8A1_UNORM;
373+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK] = TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB;
374+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK] = TEX_FORMAT_ETC2_RGBA8_UNORM;
375+
m_VkFmtToTexFmtMap[VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK] = TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB;
376+
370377
m_VkFmtToTexFmtMap[VK_FORMAT_EAC_R11_UNORM_BLOCK] = TEX_FORMAT_UNKNOWN;
371378
m_VkFmtToTexFmtMap[VK_FORMAT_EAC_R11_SNORM_BLOCK] = TEX_FORMAT_UNKNOWN;
372379
m_VkFmtToTexFmtMap[VK_FORMAT_EAC_R11G11_UNORM_BLOCK] = TEX_FORMAT_UNKNOWN;

Graphics/GraphicsEngineWebGPU/src/RenderDeviceWebGPUImpl.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,7 @@ void RenderDeviceWebGPUImpl::FindSupportedTextureFormats()
430430
const bool TextureCompressionBCSupported = wgpuDeviceHasFeature(m_wgpuDevice, WGPUFeatureName_TextureCompressionBC);
431431
const bool R16UnormSupported = wgpuDeviceHasFeature(m_wgpuDevice, WGPUFeatureName_Unorm16TextureFormats);
432432
const bool R16SnormSupported = wgpuDeviceHasFeature(m_wgpuDevice, WGPUFeatureName_Snorm16TextureFormats);
433+
const bool ETC2Supported = wgpuDeviceHasFeature(m_wgpuDevice, WGPUFeatureName_TextureCompressionETC2);
433434

434435
// https://www.w3.org/TR/webgpu/#texture-format-caps
435436

@@ -525,6 +526,17 @@ void RenderDeviceWebGPUImpl::FindSupportedTextureFormats()
525526
SetTexFormatInfo({TEX_FORMAT_RG16_SNORM}, BIND_SR, FMT_FLAG_FILTER | FMT_FLAG_MSAA);
526527
SetTexFormatInfo({TEX_FORMAT_RGBA16_SNORM}, BIND_SR, FMT_FLAG_FILTER | FMT_FLAG_MSAA);
527528
}
529+
530+
if (ETC2Supported)
531+
{
532+
SetTexFormatInfo({TEX_FORMAT_ETC2_RGB8_UNORM,
533+
TEX_FORMAT_ETC2_RGB8_UNORM_SRGB,
534+
TEX_FORMAT_ETC2_RGB8A1_UNORM,
535+
TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB,
536+
TEX_FORMAT_ETC2_RGBA8_UNORM,
537+
TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB},
538+
BIND_S, FMT_FLAG_FILTER);
539+
}
528540
}
529541

530542
} // namespace Diligent

Graphics/GraphicsEngineWebGPU/src/WebGPUTypeConversions.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,13 @@ class TexFormatToWebGPUFormatMapper
160160
m_FmtToWGPUFmtMap[TEX_FORMAT_BC7_UNORM] = WGPUTextureFormat_BC7RGBAUnorm;
161161
m_FmtToWGPUFmtMap[TEX_FORMAT_BC7_UNORM_SRGB] = WGPUTextureFormat_BC7RGBAUnormSrgb;
162162

163+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM] = WGPUTextureFormat_ETC2RGB8Unorm;
164+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGB8_UNORM_SRGB] = WGPUTextureFormat_ETC2RGB8UnormSrgb;
165+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM] = WGPUTextureFormat_ETC2RGB8A1Unorm;
166+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB] = WGPUTextureFormat_ETC2RGB8A1UnormSrgb;
167+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM] = WGPUTextureFormat_ETC2RGBA8Unorm;
168+
m_FmtToWGPUFmtMap[TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB] = WGPUTextureFormat_ETC2RGBA8UnormSrgb;
169+
163170
m_FmtToWGPUFmtMap[TEX_FORMAT_R10G10B10_XR_BIAS_A2_UNORM] = WGPUTextureFormat_Undefined;
164171
// clang-format on
165172
}
@@ -264,12 +271,12 @@ class WGPUFormatToTexFormatMapper
264271
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_BC7RGBAUnorm] = TEX_FORMAT_BC7_UNORM;
265272
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_BC7RGBAUnormSrgb] = TEX_FORMAT_BC7_UNORM_SRGB;
266273

267-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8Unorm] = TEX_FORMAT_UNKNOWN;
268-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8UnormSrgb] = TEX_FORMAT_UNKNOWN;
269-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8A1Unorm] = TEX_FORMAT_UNKNOWN;
270-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8A1UnormSrgb] = TEX_FORMAT_UNKNOWN;
271-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGBA8Unorm] = TEX_FORMAT_UNKNOWN;
272-
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGBA8UnormSrgb] = TEX_FORMAT_UNKNOWN;
274+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8Unorm] = TEX_FORMAT_ETC2_RGB8_UNORM;
275+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8UnormSrgb] = TEX_FORMAT_ETC2_RGB8_UNORM_SRGB;
276+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8A1Unorm] = TEX_FORMAT_ETC2_RGB8A1_UNORM;
277+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGB8A1UnormSrgb] = TEX_FORMAT_ETC2_RGB8A1_UNORM_SRGB;
278+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGBA8Unorm] = TEX_FORMAT_ETC2_RGBA8_UNORM;
279+
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_ETC2RGBA8UnormSrgb] = TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB;
273280

274281
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_EACR11Unorm] = TEX_FORMAT_UNKNOWN;
275282
m_WGPUFmtToTexFmtMap[WGPUTextureFormat_EACR11Snorm] = TEX_FORMAT_UNKNOWN;

0 commit comments

Comments
 (0)