Skip to content

Commit 2f2a732

Browse files
authored
Remove explicit typeless formats (#241)
* add TextureUsage::Typeless * remove explicit typeless formats and reorder the list * improve metal getFormatSupport * fix metal * fix metal pixel format translation * fix d3d table * add metal format table * fix metal * metal fix * fix * use getVertexFormat for input layout * d3d11 typeless support * d3d12 typeless support * cleanup * fix buffer/texture labels * remove dead code
1 parent 7abcaa3 commit 2f2a732

33 files changed

+756
-1440
lines changed

include/slang-rhi.h

Lines changed: 52 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -157,91 +157,79 @@ enum class Format
157157
// has a matching Vulkan format but is also omitted as it is only supported by Nvidia.
158158
Undefined,
159159

160-
R32G32B32A32_TYPELESS,
161-
R32G32B32_TYPELESS,
162-
R32G32_TYPELESS,
163-
R32_TYPELESS,
164-
165-
R16G16B16A16_TYPELESS,
166-
R16G16_TYPELESS,
167-
R16_TYPELESS,
168-
169-
R8G8B8A8_TYPELESS,
170-
R8G8_TYPELESS,
171-
R8_TYPELESS,
172-
B8G8R8A8_TYPELESS,
173-
174-
R32G32B32A32_FLOAT,
175-
R32G32B32_FLOAT,
176-
R32G32_FLOAT,
177-
R32_FLOAT,
178-
179-
R16G16B16A16_FLOAT,
180-
R16G16_FLOAT,
181-
R16_FLOAT,
182-
183-
R32G32B32A32_UINT,
184-
R32G32B32_UINT,
185-
R32G32_UINT,
186-
R32_UINT,
187-
188-
R16G16B16A16_UINT,
189-
R16G16_UINT,
190-
R16_UINT,
191-
192-
R8G8B8A8_UINT,
193-
R8G8_UINT,
194160
R8_UINT,
195-
196-
R32G32B32A32_SINT,
197-
R32G32B32_SINT,
198-
R32G32_SINT,
199-
R32_SINT,
200-
201-
R16G16B16A16_SINT,
202-
R16G16_SINT,
203-
R16_SINT,
204-
205-
R8G8B8A8_SINT,
206-
R8G8_SINT,
207161
R8_SINT,
162+
R8_UNORM,
163+
R8_SNORM,
208164

209-
R16G16B16A16_UNORM,
210-
R16G16_UNORM,
211-
R16_UNORM,
165+
R8G8_UINT,
166+
R8G8_SINT,
167+
R8G8_UNORM,
168+
R8G8_SNORM,
212169

170+
R8G8B8A8_UINT,
171+
R8G8B8A8_SINT,
213172
R8G8B8A8_UNORM,
214173
R8G8B8A8_UNORM_SRGB,
215-
R8G8_UNORM,
216-
R8_UNORM,
174+
R8G8B8A8_SNORM,
175+
217176
B8G8R8A8_UNORM,
218177
B8G8R8A8_UNORM_SRGB,
219178
B8G8R8X8_UNORM,
220179
B8G8R8X8_UNORM_SRGB,
221180

222-
R16G16B16A16_SNORM,
223-
R16G16_SNORM,
181+
R16_UINT,
182+
R16_SINT,
183+
R16_UNORM,
224184
R16_SNORM,
185+
R16_FLOAT,
225186

226-
R8G8B8A8_SNORM,
227-
R8G8_SNORM,
228-
R8_SNORM,
187+
R16G16_UINT,
188+
R16G16_SINT,
189+
R16G16_UNORM,
190+
R16G16_SNORM,
191+
R16G16_FLOAT,
229192

230-
D32_FLOAT,
231-
D16_UNORM,
232-
D32_FLOAT_S8_UINT,
233-
R32_FLOAT_X32_TYPELESS,
193+
R16G16B16A16_UINT,
194+
R16G16B16A16_SINT,
195+
R16G16B16A16_UNORM,
196+
R16G16B16A16_SNORM,
197+
R16G16B16A16_FLOAT,
198+
199+
R32_UINT,
200+
R32_SINT,
201+
R32_FLOAT,
202+
203+
R32G32_UINT,
204+
R32G32_SINT,
205+
R32G32_FLOAT,
206+
207+
R32G32B32_UINT,
208+
R32G32B32_SINT,
209+
R32G32B32_FLOAT,
210+
211+
R32G32B32A32_UINT,
212+
R32G32B32A32_SINT,
213+
R32G32B32A32_FLOAT,
214+
215+
R64_UINT,
216+
R64_SINT,
234217

235218
B4G4R4A4_UNORM,
236219
B5G6R5_UNORM,
237220
B5G5R5A1_UNORM,
238221

239222
R9G9B9E5_SHAREDEXP,
240-
R10G10B10A2_TYPELESS,
241-
R10G10B10A2_UNORM,
242223
R10G10B10A2_UINT,
224+
R10G10B10A2_UNORM,
243225
R11G11B10_FLOAT,
244226

227+
// Depth/stencil formats
228+
D32_FLOAT,
229+
D16_UNORM,
230+
D32_FLOAT_S8_UINT,
231+
232+
// Compressed formats
245233
BC1_UNORM,
246234
BC1_UNORM_SRGB,
247235
BC2_UNORM,
@@ -257,9 +245,6 @@ enum class Format
257245
BC7_UNORM,
258246
BC7_UNORM_SRGB,
259247

260-
R64_UINT,
261-
R64_SINT,
262-
263248
_Count,
264249
};
265250

@@ -290,7 +275,6 @@ struct FormatInfo
290275
/// The height of a block in pixels.
291276
uint8_t blockHeight;
292277

293-
bool isTypeless : 1;
294278
bool isCompressed : 1;
295279
};
296280

@@ -587,7 +571,8 @@ enum class TextureUsage
587571
CopyDestination = (1 << 7),
588572
ResolveSource = (1 << 8),
589573
ResolveDestination = (1 << 9),
590-
Shared = (1 << 10),
574+
Typeless = (1 << 10),
575+
Shared = (1 << 11),
591576
};
592577
SLANG_RHI_ENUM_CLASS_OPERATORS(TextureUsage);
593578

0 commit comments

Comments
 (0)