mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-22 17:10:32 +01:00
freedreno/fdl: add astc hdr formats
Add astc hdr (float) formats, those get treated identically as the ldr formats as the blocks have enough metadata to be decoded as float. Reviewed-by: Rob Clark <rob.clark@oss.qualcomm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38859>
This commit is contained in:
parent
c8ce0df2d2
commit
dc07473524
4 changed files with 42 additions and 1 deletions
|
|
@ -347,7 +347,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
|||
GL_KHR_blend_equation_advanced_coherent DONE (freedreno/a6xx, llvmpipe, panfrost, zink, asahi, iris/gen9+, v3d)
|
||||
GL_KHR_robust_buffer_access_behavior DONE (panfrost, llvmpipe, virgl)
|
||||
GL_KHR_shader_subgroup DONE (radeonsi, zink, asahi, iris/gen9+)
|
||||
GL_KHR_texture_compression_astc_hdr DONE (panfrost, asahi)
|
||||
GL_KHR_texture_compression_astc_hdr DONE (freedreno, panfrost, asahi)
|
||||
GL_KHR_texture_compression_astc_sliced_3d DONE (freedreno/a4xx+, r600, radeonsi, panfrost, softpipe, llvmpipe, v3d, virgl, zink, lima, asahi, iris/gen9+)
|
||||
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
|
||||
GL_OES_EGL_image DONE (all drivers)
|
||||
|
|
|
|||
|
|
@ -210,6 +210,8 @@ struct fd_dev_info {
|
|||
|
||||
bool has_sampler_minmax;
|
||||
|
||||
bool has_astc_hdr;
|
||||
|
||||
bool broken_ds_ubwc_quirk;
|
||||
|
||||
/* See ir3_compiler::has_scalar_alu. */
|
||||
|
|
|
|||
|
|
@ -320,6 +320,7 @@ a6xx_base = GPUProps(
|
|||
has_hw_multiview = True,
|
||||
has_fs_tex_prefetch = True,
|
||||
has_sampler_minmax = True,
|
||||
has_astc_hdr = True,
|
||||
|
||||
supports_double_threadsize = True,
|
||||
|
||||
|
|
@ -349,6 +350,7 @@ a6xx_gen1_low = GPUProps(
|
|||
has_gmem_fast_clear = False,
|
||||
has_hw_multiview = False,
|
||||
has_sampler_minmax = False,
|
||||
has_astc_hdr = False,
|
||||
has_fs_tex_prefetch = False,
|
||||
sysmem_per_ccu_color_cache_size = 8 * 1024,
|
||||
sysmem_per_ccu_depth_cache_size = 8 * 1024,
|
||||
|
|
|
|||
|
|
@ -358,6 +358,21 @@ static const struct fd6_format formats[PIPE_FORMAT_COUNT] = {
|
|||
_T_(ASTC_12x10_SRGB, ASTC_12x10, WZYX),
|
||||
_T_(ASTC_12x12_SRGB, ASTC_12x12, WZYX),
|
||||
|
||||
_T_(ASTC_4x4_FLOAT, ASTC_4x4, WZYX),
|
||||
_T_(ASTC_5x4_FLOAT, ASTC_5x4, WZYX),
|
||||
_T_(ASTC_5x5_FLOAT, ASTC_5x5, WZYX),
|
||||
_T_(ASTC_6x5_FLOAT, ASTC_6x5, WZYX),
|
||||
_T_(ASTC_6x6_FLOAT, ASTC_6x6, WZYX),
|
||||
_T_(ASTC_8x5_FLOAT, ASTC_8x5, WZYX),
|
||||
_T_(ASTC_8x6_FLOAT, ASTC_8x6, WZYX),
|
||||
_T_(ASTC_8x8_FLOAT, ASTC_8x8, WZYX),
|
||||
_T_(ASTC_10x5_FLOAT, ASTC_10x5, WZYX),
|
||||
_T_(ASTC_10x6_FLOAT, ASTC_10x6, WZYX),
|
||||
_T_(ASTC_10x8_FLOAT, ASTC_10x8, WZYX),
|
||||
_T_(ASTC_10x10_FLOAT, ASTC_10x10, WZYX),
|
||||
_T_(ASTC_12x10_FLOAT, ASTC_12x10, WZYX),
|
||||
_T_(ASTC_12x12_FLOAT, ASTC_12x12, WZYX),
|
||||
|
||||
_T_(G8B8_G8R8_UNORM, R8G8R8B8_422_UNORM, WZYX), /* YUYV */
|
||||
_T_(B8G8_R8G8_UNORM, G8R8B8R8_422_UNORM, WZYX), /* UYVY */
|
||||
|
||||
|
|
@ -432,6 +447,28 @@ bool
|
|||
fd6_texture_format_supported(const struct fd_dev_info *info, enum pipe_format format,
|
||||
enum a6xx_tile_mode tile_mode, bool is_mutable)
|
||||
{
|
||||
if (!info->props.has_astc_hdr) {
|
||||
/* ASTC HDR formats are removed */
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_ASTC_4x4_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_5x4_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_5x5_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_6x5_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_6x6_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_8x5_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_8x6_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_8x8_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_10x5_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_10x6_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_10x8_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_10x10_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_12x10_FLOAT:
|
||||
case PIPE_FORMAT_ASTC_12x12_FLOAT:
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (info->props.is_a702) {
|
||||
/* BPTC is removed */
|
||||
switch (format) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue