nil: Add a CSV version of the format table
This is much more readable than the macro mess we had before. Most notably because we no longer have this mess of #defines for format support flags and instead have a character per flag and every every supported flag is there every time. This makes it way easier to figure out what we're actually claiming a format can do. This conversion was tested with a patch that did a memcmp() of this table against the old one to ensure that the two tables are bit-for-bit identical. Later commits may modify the table in various ways but this conversion to a CSV file is lossless. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28453>
This commit is contained in:
committed by
Marge Bot
parent
3f50d72ec5
commit
70843be321
@@ -9,6 +9,16 @@ libnil_files = files(
|
||||
'nil_image_tic.c',
|
||||
)
|
||||
|
||||
nil_format_table = custom_target(
|
||||
'nil_format_table',
|
||||
input : files('nil_format_table_gen.py', 'nil_formats.csv'),
|
||||
output : ['nil_format_table.h', 'nil_format_table.c'],
|
||||
command : [
|
||||
prog_python, '@INPUT0@', '--csv', '@INPUT1@',
|
||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@',
|
||||
],
|
||||
)
|
||||
|
||||
libnil_deps = [
|
||||
idep_mesautil,
|
||||
idep_nouveau_ws,
|
||||
@@ -17,7 +27,7 @@ libnil_deps = [
|
||||
|
||||
_libnil = static_library(
|
||||
'nil',
|
||||
libnil_files,
|
||||
[libnil_files, nil_format_table],
|
||||
include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium],
|
||||
dependencies : libnil_deps,
|
||||
c_args : [no_override_init_args],
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
# Copyright 2024 Collabora Ltd.
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""Generates nil_format_table.c"""
|
||||
|
||||
import argparse
|
||||
import csv
|
||||
import os
|
||||
|
||||
from mako import template
|
||||
|
||||
TEMPLATE_H = template.Template(text="""\
|
||||
/* Copyright 2024 Collabora Ltd.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#ifndef ${guard}
|
||||
#define ${guard}
|
||||
|
||||
#include "nil_format.h"
|
||||
|
||||
enum nil_format_support_flags {
|
||||
NIL_FORMAT_SUPPORTS_TEXTURE_BIT = BITFIELD_BIT(0),
|
||||
NIL_FORMAT_SUPPORTS_BUFFER_BIT = BITFIELD_BIT(1),
|
||||
NIL_FORMAT_SUPPORTS_STORAGE_BIT = BITFIELD_BIT(2),
|
||||
NIL_FORMAT_SUPPORTS_RENDER_BIT = BITFIELD_BIT(3),
|
||||
NIL_FORMAT_SUPPORTS_ALPHA_BLEND_BIT = BITFIELD_BIT(4),
|
||||
NIL_FORMAT_SUPPORTS_DEPTH_STENCIL_BIT = BITFIELD_BIT(5),
|
||||
NIL_FORMAT_SUPPORTS_SCANOUT_BIT = BITFIELD_BIT(6),
|
||||
};
|
||||
|
||||
struct nil_format_info {
|
||||
unsigned czt:8;
|
||||
unsigned support:24;
|
||||
struct nil_tic_format tic;
|
||||
};
|
||||
|
||||
extern const struct nil_format_info nil_format_table[PIPE_FORMAT_COUNT];
|
||||
|
||||
#endif /* ${guard} */
|
||||
""");
|
||||
|
||||
TEMPLATE_C = template.Template(text="""\
|
||||
/* Copyright 2024 Collabora Ltd.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
/* This file is autogenerated by nil_format_table_gen.py. DO NOT EDIT! */
|
||||
|
||||
#include "nil_format_table.h"
|
||||
|
||||
#include "cl9097.h"
|
||||
#include "cl9097tex.h"
|
||||
#include "clb097.h"
|
||||
#include "clb097tex.h"
|
||||
|
||||
const struct nil_format_info nil_format_table[PIPE_FORMAT_COUNT] = {
|
||||
% for f in formats:
|
||||
[PIPE_FORMAT_${f.pipe}] = {
|
||||
.czt = ${f.czt()},
|
||||
.support = ${f.support()},
|
||||
.tic = {
|
||||
.comp_sizes = ${f.tcs()},
|
||||
.type_r = ${f.type(0)},
|
||||
.type_g = ${f.type(1)},
|
||||
.type_b = ${f.type(2)},
|
||||
.type_a = ${f.type(3)},
|
||||
.src_x = ${f.src(0)},
|
||||
.src_y = ${f.src(1)},
|
||||
.src_z = ${f.src(2)},
|
||||
.src_w = ${f.src(3)},
|
||||
},
|
||||
},
|
||||
% endfor
|
||||
};
|
||||
""");
|
||||
|
||||
CT_FORMAT_PREFIX = {
|
||||
None : 'NV9097_SET_COLOR_TARGET_FORMAT_V_',
|
||||
'maxwell' : 'NVB097_SET_COLOR_TARGET_FORMAT_V_',
|
||||
'tk1' : 'NVB097_SET_COLOR_TARGET_FORMAT_V_',
|
||||
}
|
||||
|
||||
ZT_FORMAT_PREFIX = {
|
||||
None : 'NV9097_SET_ZT_FORMAT_V_',
|
||||
'maxwell' : 'NVB097_SET_ZT_FORMAT_V_',
|
||||
'tk1' : 'NVB097_SET_ZT_FORMAT_V_',
|
||||
}
|
||||
|
||||
TCS_PREFIX = {
|
||||
None : 'NV9097_TEXHEADV2_0_COMPONENT_SIZES_',
|
||||
'maxwell' : 'NVB097_TEXHEAD_BL_COMPONENTS_SIZES_',
|
||||
'tk1' : 'NVB097_TEXHEAD_BL_COMPONENTS_SIZES_',
|
||||
}
|
||||
|
||||
DATA_TYPES = {
|
||||
'S' : 'NV9097_TEXHEADV2_0_R_DATA_TYPE_NUM_SNORM',
|
||||
'N' : 'NV9097_TEXHEADV2_0_R_DATA_TYPE_NUM_UNORM',
|
||||
'I' : 'NV9097_TEXHEADV2_0_R_DATA_TYPE_NUM_SINT',
|
||||
'U' : 'NV9097_TEXHEADV2_0_R_DATA_TYPE_NUM_UINT',
|
||||
'F' : 'NV9097_TEXHEADV2_0_R_DATA_TYPE_NUM_FLOAT',
|
||||
}
|
||||
|
||||
SOURCES = {
|
||||
'0' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_ZERO',
|
||||
'R' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_R',
|
||||
'G' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_G',
|
||||
'B' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_B',
|
||||
'A' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_A',
|
||||
'1' : 'NV9097_TEXHEADV2_0_Z_SOURCE_IN_ONE',
|
||||
}
|
||||
|
||||
SUPPORT_FLAGS = {
|
||||
'T' : 'NIL_FORMAT_SUPPORTS_TEXTURE_BIT',
|
||||
'B' : 'NIL_FORMAT_SUPPORTS_BUFFER_BIT',
|
||||
'S' : 'NIL_FORMAT_SUPPORTS_STORAGE_BIT',
|
||||
'C' : 'NIL_FORMAT_SUPPORTS_RENDER_BIT',
|
||||
'A' : 'NIL_FORMAT_SUPPORTS_ALPHA_BLEND_BIT',
|
||||
'Z' : 'NIL_FORMAT_SUPPORTS_DEPTH_STENCIL_BIT',
|
||||
'D' : 'NIL_FORMAT_SUPPORTS_SCANOUT_BIT',
|
||||
}
|
||||
|
||||
class Format(object):
|
||||
def __init__(self, line):
|
||||
self.pipe = line[0].strip()
|
||||
self._czt = line[1].strip()
|
||||
self._tcs = line[2].strip()
|
||||
self._types = list(line[3].strip())
|
||||
self._srcs = list(line[4].strip())
|
||||
self._support = list(line[5].strip())
|
||||
if len(line) > 6:
|
||||
self.hw = line[6].strip().lower()
|
||||
else:
|
||||
self.hw = None
|
||||
|
||||
def czt(self):
|
||||
if self._czt == 'NONE':
|
||||
return CT_FORMAT_PREFIX[self.hw] + 'DISABLED'
|
||||
elif 'Z' in self._support:
|
||||
return ZT_FORMAT_PREFIX[self.hw] + self._czt
|
||||
else:
|
||||
return CT_FORMAT_PREFIX[self.hw] + self._czt
|
||||
|
||||
def support(self):
|
||||
return ' | '.join(SUPPORT_FLAGS[f] for f in self._support)
|
||||
|
||||
def tcs(self):
|
||||
return TCS_PREFIX[self.hw] + self._tcs
|
||||
|
||||
def type(self, comp):
|
||||
if comp < len(self._types):
|
||||
return DATA_TYPES[self._types[comp]]
|
||||
else:
|
||||
return DATA_TYPES['U']
|
||||
|
||||
def src(self, comp):
|
||||
if self._srcs[comp] == '1':
|
||||
# Find any component which isn't a 0/1 and look at that
|
||||
# component's data type to determine whether or not 1 is an
|
||||
# integer.
|
||||
for s in self._srcs:
|
||||
c = 'RGBA'.find(s)
|
||||
if c >= 0:
|
||||
if self._types[c] in 'SNF':
|
||||
return SOURCES['1'] + '_FLOAT'
|
||||
else:
|
||||
return SOURCES['1'] + '_INT'
|
||||
assert False, self.pipe + ': Failed to find non-constant component'
|
||||
else:
|
||||
c = 'RGBA'.find(self._srcs[comp])
|
||||
assert c < len(self._types), self.pipe + ': Swizzle is out of bounds'
|
||||
return SOURCES[self._srcs[comp]]
|
||||
|
||||
def reader(csvfile):
|
||||
"""Wrapper around csv.reader that skips comments and blanks."""
|
||||
# csv.reader actually reads the file one line at a time (it was designed to
|
||||
# open excel generated sheets), so hold the file until all of the lines are
|
||||
# read.
|
||||
with open(csvfile, 'r') as f:
|
||||
for line in csv.reader(f):
|
||||
if line and not line[0].startswith('#'):
|
||||
yield line
|
||||
|
||||
def main():
|
||||
"""Main function."""
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--csv', action='store', help='The CSV file to parse.')
|
||||
parser.add_argument('--out-c', required=True, help='Output C file.')
|
||||
parser.add_argument('--out-h', required=True, help='Output H file.')
|
||||
args = parser.parse_args()
|
||||
|
||||
formats = [Format(l) for l in reader(args.csv)]
|
||||
|
||||
try:
|
||||
with open(args.out_h, 'w', encoding='utf-8') as f:
|
||||
guard = os.path.basename(args.out_h).replace('.', '_').upper()
|
||||
f.write(TEMPLATE_H.render(guard=guard))
|
||||
with open(args.out_c, 'w', encoding='utf-8') as f:
|
||||
f.write(TEMPLATE_C.render(formats=formats))
|
||||
|
||||
except Exception:
|
||||
# In the event there's an error, this imports some helpers from mako
|
||||
# to print a useful stack trace and prints it, then exits with
|
||||
# status 1, if python is run with debug; otherwise it just raises
|
||||
# the exception
|
||||
import sys
|
||||
from mako import exceptions
|
||||
print(exceptions.text_error_template().render(), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,284 @@
|
||||
# Copyright 2024 Collabora Ltd.
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Columns:
|
||||
# name: PIPE_FORMAT enum
|
||||
# czt: Color/Z target format if renderable or NONE
|
||||
# tcs: TIC component sizes
|
||||
# type: Data type:
|
||||
# S: SNORM
|
||||
# N: UNORM
|
||||
# I: SINT
|
||||
# U: UINT
|
||||
# F: FLOAT
|
||||
# src: Swizzle of the form RGBAX01
|
||||
# caps: Format capabilities:
|
||||
# C: Color target
|
||||
# T: Texture
|
||||
# Z: Depth/stencil target
|
||||
# B: Bufer
|
||||
# A: Alpha blend
|
||||
# S: Storage
|
||||
# D: Scanout
|
||||
# hw: First hardware generation on which the format
|
||||
|
||||
# name czt tcs type src support hw
|
||||
|
||||
# BGRA display formats
|
||||
B8G8R8A8_UNORM , A8R8G8B8 , A8B8G8R8 , NNNN , BGRA , CTBASD
|
||||
B8G8R8X8_UNORM , X8R8G8B8 , A8B8G8R8 , NNNN , BGR1 , CTAD
|
||||
B8G8R8A8_SRGB , A8RL8GL8BL8 , A8B8G8R8 , NNNN , BGRA , CTAD
|
||||
B8G8R8X8_SRGB , X8RL8GL8BL8 , A8B8G8R8 , NNNN , BGR1 , CTAD
|
||||
R8G8B8A8_UNORM , A8B8G8R8 , A8B8G8R8 , NNNN , RGBA , CTBSA
|
||||
R8G8B8X8_UNORM , X8B8G8R8 , A8B8G8R8 , NNNN , RGB1 , CTA
|
||||
R8G8B8A8_SRGB , A8BL8GL8RL8 , A8B8G8R8 , NNNN , RGBA , CTA
|
||||
R8G8B8X8_SRGB , X8BL8GL8RL8 , A8B8G8R8 , NNNN , RGB1 , CTA
|
||||
|
||||
# Depth/stencil formats
|
||||
Z16_UNORM , Z16 , Z16 , NUUU , R001 , TZ , Maxwell
|
||||
Z32_FLOAT , ZF32 , ZF32 , FUUU , R001 , TZ
|
||||
Z24X8_UNORM , X8Z24 , X8Z24 , NUUU , R001 , TZ
|
||||
X8Z24_UNORM , Z24S8 , Z24S8 , UNUU , G001 , TZ
|
||||
Z24_UNORM_S8_UINT , S8Z24 , S8Z24 , NUUU , R001 , TZ
|
||||
S8_UINT_Z24_UNORM , Z24S8 , Z24S8 , UNUU , G001 , TZ
|
||||
Z32_FLOAT_S8X24_UINT , ZF32_X24S8 , ZF32_X24S8 , FUUU , R001 , TZ
|
||||
|
||||
# Stencil-only formats
|
||||
S8_UINT , NONE , R8 , UUUU , R001 , T
|
||||
X24S8_UINT , NONE , G8R24 , UUUU , G001 , T
|
||||
S8X24_UINT , NONE , G24R8 , UUUU , R001 , T
|
||||
X32_S8X24_UINT , NONE , R32_B24G8 , UUUU , G001 , T
|
||||
|
||||
B5G6R5_UNORM , R5G6B5 , B5G6R5 , NNNN , BGR1 , CTAD
|
||||
R5G6B5_UNORM , NONE , B5G6R5 , NNNN , RGB1 , T
|
||||
R5G5B5A1_UNORM , NONE , A1B5G5R5 , NNNN , RGBA , T
|
||||
B5G5R5A1_UNORM , A1R5G5B5 , A1B5G5R5 , NNNN , BGRA , CTAD
|
||||
B5G5R5X1_UNORM , X1R5G5B5 , A1B5G5R5 , NNNN , BGR1 , CTAD
|
||||
A4B4G4R4_UNORM , NONE , A4B4G4R4 , NNNN , ABGR , T
|
||||
A4R4G4B4_UNORM , NONE , A4B4G4R4 , NNNN , GBAR , T
|
||||
B4G4R4A4_UNORM , NONE , A4B4G4R4 , NNNN , BGRA , T
|
||||
B4G4R4X4_UNORM , NONE , A4B4G4R4 , NNNN , BGR1 , T
|
||||
R4G4B4A4_UNORM , NONE , A4B4G4R4 , NNNN , RGBA , T
|
||||
R4G4B4X4_UNORM , NONE , A4B4G4R4 , NNNN , RGB1 , T
|
||||
|
||||
R9G9B9E5_FLOAT , NONE , E5B9G9R9_SHAREDEXP, FFFF , RGB1 , T
|
||||
|
||||
R10G10B10A2_UNORM , A2B10G10R10 , A2B10G10R10 , NNNN , RGBA , TCBASD
|
||||
R10G10B10X2_UNORM , A2B10G10R10 , A2B10G10R10 , NNNN , RGB1 , T
|
||||
B10G10R10A2_UNORM , A2R10G10B10 , A2B10G10R10 , NNNN , BGRA , CTA
|
||||
B10G10R10X2_UNORM , A2R10G10B10 , A2B10G10R10 , NNNN , BGR1 , T
|
||||
R10G10B10A2_SNORM , NONE , A2B10G10R10 , SSSS , RGBA , T
|
||||
B10G10R10A2_SNORM , NONE , A2B10G10R10 , SSSS , BGRA , T
|
||||
R10G10B10A2_UINT , AU2BU10GU10RU10 , A2B10G10R10 , UUUU , RGBA , CTBS
|
||||
B10G10R10A2_UINT , NONE , A2B10G10R10 , UUUU , BGRA , TB
|
||||
|
||||
R11G11B10_FLOAT , BF10GF11RF11 , BF10GF11RF11 , FFFF , RGB1 , CTBSA
|
||||
|
||||
L8_UNORM , R8 , R8 , NNNN , RRR1 , CTA
|
||||
L8_SRGB , NONE , R8 , NNNN , RRR1 , T
|
||||
L8_SNORM , RN8 , R8 , SSSS , RRR1 , CTA
|
||||
L8_SINT , RS8 , R8 , IIII , RRR1 , CT
|
||||
L8_UINT , RU8 , R8 , UUUU , RRR1 , CT
|
||||
L16_UNORM , R16 , R16 , NNNN , RRR1 , CTA
|
||||
L16_SNORM , RN16 , R16 , SSSS , RRR1 , CTA
|
||||
L16_FLOAT , RF16 , R16 , FFFF , RRR1 , CTA
|
||||
L16_SINT , RS16 , R16 , IIII , RRR1 , CT
|
||||
L16_UINT , RU16 , R16 , UUUU , RRR1 , CT
|
||||
L32_FLOAT , RF32 , R32 , FFFF , RRR1 , CTA
|
||||
L32_SINT , RS32 , R32 , IIII , RRR1 , CT
|
||||
L32_UINT , RU32 , R32 , UUUU , RRR1 , CT
|
||||
|
||||
I8_UNORM , R8 , R8 , NNNN , RRRR , CT
|
||||
I8_SNORM , RN8 , R8 , SSSS , RRRR , CT
|
||||
I8_SINT , RS8 , R8 , IIII , RRRR , CT
|
||||
I8_UINT , RU8 , R8 , UUUU , RRRR , CT
|
||||
I16_UNORM , R16 , R16 , NNNN , RRRR , CT
|
||||
I16_SNORM , RN16 , R16 , SSSS , RRRR , CT
|
||||
I16_FLOAT , RF16 , R16 , FFFF , RRRR , CT
|
||||
I16_SINT , RS16 , R16 , IIII , RRRR , CT
|
||||
I16_UINT , RU16 , R16 , UUUU , RRRR , CT
|
||||
I32_FLOAT , RF32 , R32 , FFFF , RRRR , CT
|
||||
I32_SINT , RS32 , R32 , IIII , RRRR , CT
|
||||
I32_UINT , RU32 , R32 , UUUU , RRRR , CT
|
||||
|
||||
A8_UNORM , A8 , R8 , NNNN , 000R , CTBSA
|
||||
A8_SNORM , RN8 , R8 , SSSS , 000R , T
|
||||
A8_SINT , RS8 , R8 , IIII , 000R , T
|
||||
A8_UINT , RU8 , R8 , UUUU , 000R , T
|
||||
A16_UNORM , R16 , R16 , NNNN , 000R , T
|
||||
A16_SNORM , RN16 , R16 , SSSS , 000R , T
|
||||
A16_FLOAT , AF16 , R16 , FFFF , 000R , T
|
||||
A16_SINT , RS16 , R16 , IIII , 000R , T
|
||||
A16_UINT , RU16 , R16 , UUUU , 000R , T
|
||||
A32_FLOAT , AF32 , R32 , FFFF , 000R , T
|
||||
A32_SINT , RS32 , R32 , IIII , 000R , T
|
||||
A32_UINT , RU32 , R32 , UUUU , 000R , T
|
||||
|
||||
L4A4_UNORM , NONE , G4R4 , NNNN , RRRG , T
|
||||
L8A8_UNORM , G8R8 , G8R8 , NNNN , RRRG , T
|
||||
L8A8_SNORM , GN8RN8 , G8R8 , SSSS , RRRG , T
|
||||
L8A8_SRGB , NONE , G8R8 , NNNN , RRRG , T
|
||||
L8A8_SINT , GS8RS8 , G8R8 , IIII , RRRG , T
|
||||
L8A8_UINT , GU8RU8 , G8R8 , UUUU , RRRG , T
|
||||
L16A16_UNORM , R16_G16 , R16_G16 , NNNN , RRRG , T
|
||||
L16A16_SNORM , RN16_GN16 , R16_G16 , SSSS , RRRG , T
|
||||
L16A16_FLOAT , RF16_GF16 , R16_G16 , FFFF , RRRG , T
|
||||
L16A16_SINT , RS16_GS16 , R16_G16 , IIII , RRRG , T
|
||||
L16A16_UINT , RU16_GU16 , R16_G16 , UUUU , RRRG , T
|
||||
L32A32_FLOAT , RF32_GF32 , R32_G32 , FFFF , RRRG , T
|
||||
L32A32_SINT , RS32_GS32 , R32_G32 , IIII , RRRG , T
|
||||
L32A32_UINT , RU32_GU32 , R32_G32 , UUUU , RRRG , T
|
||||
|
||||
DXT1_RGB , NONE , DXT1 , NNNN , RGB1 , T
|
||||
DXT1_SRGB , NONE , DXT1 , NNNN , RGB1 , T
|
||||
DXT1_RGBA , NONE , DXT1 , NNNN , RGBA , T
|
||||
DXT1_SRGBA , NONE , DXT1 , NNNN , RGBA , T
|
||||
DXT3_RGBA , NONE , DXT23 , NNNN , RGBA , T
|
||||
DXT3_SRGBA , NONE , DXT23 , NNNN , RGBA , T
|
||||
DXT5_RGBA , NONE , DXT45 , NNNN , RGBA , T
|
||||
DXT5_SRGBA , NONE , DXT45 , NNNN , RGBA , T
|
||||
|
||||
RGTC1_UNORM , NONE , DXN1 , NNNN , R001 , T
|
||||
RGTC1_SNORM , NONE , DXN1 , SSSS , R001 , T
|
||||
RGTC2_UNORM , NONE , DXN2 , NNNN , RG01 , T
|
||||
RGTC2_SNORM , NONE , DXN2 , SSSS , RG01 , T
|
||||
LATC1_UNORM , NONE , DXN1 , NNNN , RRR1 , T
|
||||
LATC1_SNORM , NONE , DXN1 , SSSS , RRR1 , T
|
||||
LATC2_UNORM , NONE , DXN2 , NNNN , RRRG , T
|
||||
LATC2_SNORM , NONE , DXN2 , SSSS , RRRG , T
|
||||
|
||||
BPTC_RGBA_UNORM , NONE , BC7U , NNNN , RGBA , T
|
||||
BPTC_SRGBA , NONE , BC7U , NNNN , RGBA , T
|
||||
BPTC_RGB_FLOAT , NONE , BC6H_SF16 , FFFF , RGB1 , T
|
||||
BPTC_RGB_UFLOAT , NONE , BC6H_UF16 , FFFF , RGB1 , T
|
||||
|
||||
ETC1_RGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , Maxwell
|
||||
ETC2_RGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , Maxwell
|
||||
ETC2_SRGB8 , NONE , ETC2_RGB , NNNN , RGB1 , T , Maxwell
|
||||
ETC2_RGB8A1 , NONE , ETC2_RGB_PTA , NNNN , RGBA , T , Maxwell
|
||||
ETC2_SRGB8A1 , NONE , ETC2_RGB_PTA , NNNN , RGBA , T , Maxwell
|
||||
ETC2_RGBA8 , NONE , ETC2_RGBA , NNNN , RGBA , T , Maxwell
|
||||
ETC2_SRGBA8 , NONE , ETC2_RGBA , NNNN , RGBA , T , Maxwell
|
||||
ETC2_R11_UNORM , NONE , EAC , NNNN , R001 , T , Maxwell
|
||||
ETC2_R11_SNORM , NONE , EAC , SSSS , R001 , T , Maxwell
|
||||
ETC2_RG11_UNORM , NONE , EACX2 , NNNN , RG01 , T , Maxwell
|
||||
ETC2_RG11_SNORM , NONE , EACX2 , SSSS , RG01 , T , Maxwell
|
||||
|
||||
ASTC_4x4 , NONE , ASTC_2D_4X4 , NNNN , RGBA , T , TK1
|
||||
ASTC_5x4 , NONE , ASTC_2D_5X4 , NNNN , RGBA , T , TK1
|
||||
ASTC_5x5 , NONE , ASTC_2D_5X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_6x5 , NONE , ASTC_2D_6X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_6x6 , NONE , ASTC_2D_6X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x5 , NONE , ASTC_2D_8X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x6 , NONE , ASTC_2D_8X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x8 , NONE , ASTC_2D_8X8 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x5 , NONE , ASTC_2D_10X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x6 , NONE , ASTC_2D_10X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x8 , NONE , ASTC_2D_10X8 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x10 , NONE , ASTC_2D_10X10 , NNNN , RGBA , T , TK1
|
||||
ASTC_12x10 , NONE , ASTC_2D_12X10 , NNNN , RGBA , T , TK1
|
||||
ASTC_12x12 , NONE , ASTC_2D_12X12 , NNNN , RGBA , T , TK1
|
||||
|
||||
ASTC_4x4_SRGB , NONE , ASTC_2D_4X4 , NNNN , RGBA , T , TK1
|
||||
ASTC_5x4_SRGB , NONE , ASTC_2D_5X4 , NNNN , RGBA , T , TK1
|
||||
ASTC_5x5_SRGB , NONE , ASTC_2D_5X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_6x5_SRGB , NONE , ASTC_2D_6X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_6x6_SRGB , NONE , ASTC_2D_6X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x5_SRGB , NONE , ASTC_2D_8X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x6_SRGB , NONE , ASTC_2D_8X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_8x8_SRGB , NONE , ASTC_2D_8X8 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x5_SRGB , NONE , ASTC_2D_10X5 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x6_SRGB , NONE , ASTC_2D_10X6 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x8_SRGB , NONE , ASTC_2D_10X8 , NNNN , RGBA , T , TK1
|
||||
ASTC_10x10_SRGB , NONE , ASTC_2D_10X10 , NNNN , RGBA , T , TK1
|
||||
ASTC_12x10_SRGB , NONE , ASTC_2D_12X10 , NNNN , RGBA , T , TK1
|
||||
ASTC_12x12_SRGB , NONE , ASTC_2D_12X12 , NNNN , RGBA , T , TK1
|
||||
|
||||
R32G32B32A32_FLOAT , RF32_GF32_BF32_AF32 , R32_G32_B32_A32 , FFFF , RGBA , CTBSA
|
||||
R32G32B32A32_UNORM , NONE , R32_G32_B32_A32 , NNNN , RGBA , T
|
||||
R32G32B32A32_SNORM , NONE , R32_G32_B32_A32 , SSSS , RGBA , T
|
||||
R32G32B32A32_SINT , RS32_GS32_BS32_AS32 , R32_G32_B32_A32 , IIII , RGBA , CTBS
|
||||
R32G32B32A32_UINT , RU32_GU32_BU32_AU32 , R32_G32_B32_A32 , UUUU , RGBA , CTBS
|
||||
R32G32B32X32_FLOAT , RF32_GF32_BF32_X32 , R32_G32_B32_A32 , FFFF , RGB1 , CTA
|
||||
R32G32B32X32_SINT , RS32_GS32_BS32_X32 , R32_G32_B32_A32 , IIII , RGB1 , CT
|
||||
R32G32B32X32_UINT , RU32_GU32_BU32_X32 , R32_G32_B32_A32 , UUUU , RGB1 , CT
|
||||
|
||||
R32G32B32_FLOAT , NONE , R32_G32_B32 , FFFF , RGB1 , TB
|
||||
R32G32B32_SINT , NONE , R32_G32_B32 , IIII , RGB1 , TB
|
||||
R32G32B32_UINT , NONE , R32_G32_B32 , UUUU , RGB1 , TB
|
||||
|
||||
R32G32_FLOAT , RF32_GF32 , R32_G32 , FFFF , RG01 , CTBSA
|
||||
R32G32_UNORM , NONE , R32_G32 , NNNN , RG01 , T
|
||||
R32G32_SNORM , NONE , R32_G32 , SSSS , RG01 , T
|
||||
R32G32_SINT , RS32_GS32 , R32_G32 , IIII , RG01 , CTBS
|
||||
R32G32_UINT , RU32_GU32 , R32_G32 , UUUU , RG01 , CTBS
|
||||
|
||||
R32_FLOAT , RF32 , R32 , FFFF , R001 , CTBSA
|
||||
R32_UNORM , NONE , R32 , NNNN , R001 , T
|
||||
R32_SNORM , NONE , R32 , SSSS , R001 , T
|
||||
R32_SINT , RS32 , R32 , IIII , R001 , CTBS
|
||||
R32_UINT , RU32 , R32 , UUUU , R001 , CTBS
|
||||
|
||||
R64_SINT , NONE , R32_G32 , IIII , RG01 , S
|
||||
R64_UINT , NONE , R32_G32 , UUUU , RG01 , S
|
||||
|
||||
R16G16B16A16_FLOAT , RF16_GF16_BF16_AF16 , R16_G16_B16_A16 , FFFF , RGBA , CTBSA
|
||||
R16G16B16A16_UNORM , R16_G16_B16_A16 , R16_G16_B16_A16 , NNNN , RGBA , CTBSA
|
||||
R16G16B16A16_SNORM , RN16_GN16_BN16_AN16 , R16_G16_B16_A16 , SSSS , RGBA , CTBSA
|
||||
R16G16B16A16_SINT , RS16_GS16_BS16_AS16 , R16_G16_B16_A16 , IIII , RGBA , CTBS
|
||||
R16G16B16A16_UINT , RU16_GU16_BU16_AU16 , R16_G16_B16_A16 , UUUU , RGBA , CTBS
|
||||
R16G16B16X16_FLOAT , RF16_GF16_BF16_X16 , R16_G16_B16_A16 , FFFF , RGB1 , CTA
|
||||
R16G16B16X16_UNORM , R16_G16_B16_A16 , R16_G16_B16_A16 , NNNN , RGB1 , T
|
||||
R16G16B16X16_SNORM , RN16_GN16_BN16_AN16 , R16_G16_B16_A16 , SSSS , RGB1 , T
|
||||
R16G16B16X16_SINT , RS16_GS16_BS16_AS16 , R16_G16_B16_A16 , IIII , RGB1 , CT
|
||||
R16G16B16X16_UINT , RU16_GU16_BU16_AU16 , R16_G16_B16_A16 , UUUU , RGB1 , CT
|
||||
|
||||
R16G16_FLOAT , RF16_GF16 , R16_G16 , FFFF , RG01 , CTBSA
|
||||
R16G16_UNORM , R16_G16 , R16_G16 , NNNN , RG01 , CTBSA
|
||||
R16G16_SNORM , RN16_GN16 , R16_G16 , SSSS , RG01 , CTBSA
|
||||
R16G16_SINT , RS16_GS16 , R16_G16 , IIII , RG01 , CTBS
|
||||
R16G16_UINT , RU16_GU16 , R16_G16 , UUUU , RG01 , CTBS
|
||||
|
||||
R16_FLOAT , RF16 , R16 , FFFF , R001 , CTBSA
|
||||
R16_UNORM , R16 , R16 , NNNN , R001 , CTBSA
|
||||
R16_SNORM , RN16 , R16 , SSSS , R001 , CTBSA
|
||||
R16_SINT , RS16 , R16 , IIII , R001 , CTBS
|
||||
R16_UINT , RU16 , R16 , UUUU , R001 , CTBS
|
||||
|
||||
R8G8B8A8_SNORM , AN8BN8GN8RN8 , A8B8G8R8 , SSSS , RGBA , CTBSA
|
||||
R8G8B8A8_SINT , AS8BS8GS8RS8 , A8B8G8R8 , IIII , RGBA , CTBS
|
||||
R8G8B8A8_UINT , AU8BU8GU8RU8 , A8B8G8R8 , UUUU , RGBA , CTBS
|
||||
R8G8B8X8_SNORM , AN8BN8GN8RN8 , A8B8G8R8 , SSSS , RGB1 , T
|
||||
R8G8B8X8_SINT , AS8BS8GS8RS8 , A8B8G8R8 , IIII , RGB1 , CT
|
||||
R8G8B8X8_UINT , AU8BU8GU8RU8 , A8B8G8R8 , UUUU , RGB1 , CT
|
||||
|
||||
R8G8_UNORM , G8R8 , G8R8 , NNNN , RG01 , CTBSA
|
||||
R8G8_SNORM , GN8RN8 , G8R8 , SSSS , RG01 , CTBSA
|
||||
R8G8_SINT , GS8RS8 , G8R8 , IIII , RG01 , CTBS
|
||||
R8G8_UINT , GU8RU8 , G8R8 , UUUU , RG01 , CTBS
|
||||
|
||||
# On Fermi+, the green component doesn't get decoding?
|
||||
# R8G8_SRGB , NONE , G8R8 , NNNN , RG01 , T
|
||||
|
||||
R8_UNORM , R8 , R8 , NNNN , R001 , CTBSA
|
||||
R8_SNORM , RN8 , R8 , SSSS , R001 , CTBSA
|
||||
R8_SINT , RS8 , R8 , IIII , R001 , CTBS
|
||||
R8_UINT , RU8 , R8 , UUUU , R001 , CTBS
|
||||
R8_SRGB , NONE , R8 , NNNN , R001 , T
|
||||
|
||||
R8G8_B8G8_UNORM , NONE , G8B8G8R8 , NNNN , RGB1 , T
|
||||
G8R8_B8R8_UNORM , NONE , G8B8G8R8 , NNNN , GRB1 , T
|
||||
G8R8_G8B8_UNORM , NONE , B8G8R8G8 , NNNN , RGB1 , T
|
||||
R8G8_R8B8_UNORM , NONE , B8G8R8G8 , NNNN , GRB1 , T
|
||||
G8B8_G8R8_UNORM , NONE , B8G8R8G8 , NNNN , BGR1 , T
|
||||
B8G8_R8G8_UNORM , NONE , G8B8G8R8 , NNNN , BGR1 , T
|
||||
|
||||
R1_UNORM , NONE , R1 , NNNN , R001 , T
|
||||
|
||||
R4A4_UNORM , NONE , G4R4 , NNNN , R00G , T
|
||||
R8A8_UNORM , NONE , G8R8 , NNNN , R00G , T
|
||||
A4R4_UNORM , NONE , G4R4 , NNNN , G00R , T
|
||||
A8R8_UNORM , NONE , G8R8 , NNNN , G00R , T
|
||||
|
||||
R8SG8SB8UX8U_NORM , NONE , A8B8G8R8 , SSNN , RGB1 , T
|
||||
R5SG5SB6U_NORM , NONE , B6G5R5 , SSNN , RGB1 , T
|
||||
|
Reference in New Issue
Block a user