xref: /aosp_15_r20/external/mesa3d/src/amd/common/ac_formats.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2015 Advanced Micro Devices, Inc.
3  * Copyright 2024 Valve Corporation
4  *
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef AC_FORMATS_H
9 #define AC_FORMATS_H
10 
11 #include "amd_family.h"
12 
13 #include "util/format/u_format.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 uint32_t
20 ac_translate_buffer_numformat(const struct util_format_description *desc,
21                               int first_non_void);
22 
23 uint32_t
24 ac_translate_buffer_dataformat(const struct util_format_description *desc,
25                               int first_non_void);
26 
27 uint32_t
28 ac_translate_tex_numformat(const struct util_format_description *desc,
29                            int first_non_void);
30 
31 uint32_t
32 ac_translate_tex_dataformat(const struct radeon_info *info,
33                             const struct util_format_description *desc,
34                             int first_non_void);
35 
36 unsigned
37 ac_get_cb_format(enum amd_gfx_level gfx_level, enum pipe_format format);
38 
39 unsigned
40 ac_get_cb_number_type(enum pipe_format format);
41 
42 unsigned
43 ac_translate_colorswap(enum amd_gfx_level gfx_level,
44                        enum pipe_format format,
45                        bool do_endian_swap);
46 
47 bool
48 ac_is_colorbuffer_format_supported(enum amd_gfx_level gfx_level,
49                                    enum pipe_format format);
50 
51 uint32_t
52 ac_colorformat_endian_swap(uint32_t colorformat);
53 
54 uint32_t
55 ac_translate_dbformat(enum pipe_format format);
56 
57 bool
58 ac_is_zs_format_supported(enum pipe_format format);
59 
60 uint32_t
61 ac_border_color_swizzle(const struct util_format_description *desc);
62 
63 enum pipe_format
64 ac_simplify_cb_format(enum pipe_format format);
65 
66 bool
67 ac_alpha_is_on_msb(const struct radeon_info *info, enum pipe_format format);
68 
69 bool
70 ac_is_reduction_mode_supported(const struct radeon_info *info, enum pipe_format format,
71                                bool shadow_samplers);
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif
78