1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_vk_mandatory_format_support_table.py using data from
3 // vk_mandatory_format_support_data.json and the vk.xml file situated at
4 // /third_party/vulkan-validation-layers/src/scripts/vk.xml
5 //
6 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
7 // Use of this source code is governed by a BSD-style license that can be
8 // found in the LICENSE file.
9 //
10 // vk_mandatory_format_support_table_autogen.cpp:
11 //   Queries for full Vulkan mandatory format support information based on VK format.
12 
13 #include "libANGLE/renderer/vulkan/vk_format_utils.h"
14 
15 using namespace angle;
16 
17 namespace rx
18 {
19 namespace vk
20 {
21 namespace
22 {
23 constexpr VkFormatFeatureFlagBits BLIT_DST         = VK_FORMAT_FEATURE_BLIT_DST_BIT;
24 constexpr VkFormatFeatureFlagBits BLIT_SRC         = VK_FORMAT_FEATURE_BLIT_SRC_BIT;
25 constexpr VkFormatFeatureFlagBits COLOR_ATTACHMENT = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
26 constexpr VkFormatFeatureFlagBits COLOR_ATTACHMENT_BLEND =
27     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
28 constexpr VkFormatFeatureFlagBits DEPTH_STENCIL_ATTACHMENT =
29     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
30 constexpr VkFormatFeatureFlagBits SAMPLED_IMAGE = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
31 constexpr VkFormatFeatureFlagBits SAMPLED_IMAGE_FILTER_LINEAR =
32     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
33 constexpr VkFormatFeatureFlagBits STORAGE_IMAGE        = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT;
34 constexpr VkFormatFeatureFlagBits STORAGE_IMAGE_ATOMIC = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
35 constexpr VkFormatFeatureFlagBits STORAGE_TEXEL_BUFFER = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
36 constexpr VkFormatFeatureFlagBits STORAGE_TEXEL_BUFFER_ATOMIC =
37     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
38 constexpr VkFormatFeatureFlagBits UNIFORM_TEXEL_BUFFER = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;
39 constexpr VkFormatFeatureFlagBits VERTEX_BUFFER        = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
40 
41 using namespace angle;
42 
43 constexpr FormatMap<VkFormatProperties> kFormatProperties = {
44     {FormatID::A1R5G5B5_UNORM,
45      {0,
46       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
47           SAMPLED_IMAGE_FILTER_LINEAR,
48       0}},
49     {FormatID::ASTC_10x10_SRGB_BLOCK, {0, 0, 0}},
50     {FormatID::ASTC_10x10_UNORM_BLOCK, {0, 0, 0}},
51     {FormatID::ASTC_10x5_SRGB_BLOCK, {0, 0, 0}},
52     {FormatID::ASTC_10x5_UNORM_BLOCK, {0, 0, 0}},
53     {FormatID::ASTC_10x6_SRGB_BLOCK, {0, 0, 0}},
54     {FormatID::ASTC_10x6_UNORM_BLOCK, {0, 0, 0}},
55     {FormatID::ASTC_10x8_SRGB_BLOCK, {0, 0, 0}},
56     {FormatID::ASTC_10x8_UNORM_BLOCK, {0, 0, 0}},
57     {FormatID::ASTC_12x10_SRGB_BLOCK, {0, 0, 0}},
58     {FormatID::ASTC_12x10_UNORM_BLOCK, {0, 0, 0}},
59     {FormatID::ASTC_12x12_SRGB_BLOCK, {0, 0, 0}},
60     {FormatID::ASTC_12x12_UNORM_BLOCK, {0, 0, 0}},
61     {FormatID::ASTC_4x4_SRGB_BLOCK, {0, 0, 0}},
62     {FormatID::ASTC_4x4_UNORM_BLOCK, {0, 0, 0}},
63     {FormatID::ASTC_5x4_SRGB_BLOCK, {0, 0, 0}},
64     {FormatID::ASTC_5x4_UNORM_BLOCK, {0, 0, 0}},
65     {FormatID::ASTC_5x5_SRGB_BLOCK, {0, 0, 0}},
66     {FormatID::ASTC_5x5_UNORM_BLOCK, {0, 0, 0}},
67     {FormatID::ASTC_6x5_SRGB_BLOCK, {0, 0, 0}},
68     {FormatID::ASTC_6x5_UNORM_BLOCK, {0, 0, 0}},
69     {FormatID::ASTC_6x6_SRGB_BLOCK, {0, 0, 0}},
70     {FormatID::ASTC_6x6_UNORM_BLOCK, {0, 0, 0}},
71     {FormatID::ASTC_8x5_SRGB_BLOCK, {0, 0, 0}},
72     {FormatID::ASTC_8x5_UNORM_BLOCK, {0, 0, 0}},
73     {FormatID::ASTC_8x6_SRGB_BLOCK, {0, 0, 0}},
74     {FormatID::ASTC_8x6_UNORM_BLOCK, {0, 0, 0}},
75     {FormatID::ASTC_8x8_SRGB_BLOCK, {0, 0, 0}},
76     {FormatID::ASTC_8x8_UNORM_BLOCK, {0, 0, 0}},
77     {FormatID::B10G10R10A2_UNORM, {0, 0, 0}},
78     {FormatID::B4G4R4A4_UNORM, {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR, 0}},
79     {FormatID::B5G5R5A1_UNORM, {0, 0, 0}},
80     {FormatID::B5G6R5_UNORM, {0, 0, 0}},
81     {FormatID::B8G8R8A8_UNORM,
82      {0,
83       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
84           SAMPLED_IMAGE_FILTER_LINEAR,
85       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
86     {FormatID::B8G8R8A8_UNORM_SRGB,
87      {0,
88       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
89           SAMPLED_IMAGE_FILTER_LINEAR,
90       0}},
91     {FormatID::BC1_RGBA_UNORM_BLOCK, {0, 0, 0}},
92     {FormatID::BC1_RGBA_UNORM_SRGB_BLOCK, {0, 0, 0}},
93     {FormatID::BC1_RGB_UNORM_BLOCK, {0, 0, 0}},
94     {FormatID::BC1_RGB_UNORM_SRGB_BLOCK, {0, 0, 0}},
95     {FormatID::BC2_RGBA_UNORM_BLOCK, {0, 0, 0}},
96     {FormatID::BC2_RGBA_UNORM_SRGB_BLOCK, {0, 0, 0}},
97     {FormatID::BC3_RGBA_UNORM_BLOCK, {0, 0, 0}},
98     {FormatID::BC3_RGBA_UNORM_SRGB_BLOCK, {0, 0, 0}},
99     {FormatID::BC4_RED_SNORM_BLOCK, {0, 0, 0}},
100     {FormatID::BC4_RED_UNORM_BLOCK, {0, 0, 0}},
101     {FormatID::BC5_RG_SNORM_BLOCK, {0, 0, 0}},
102     {FormatID::BC5_RG_UNORM_BLOCK, {0, 0, 0}},
103     {FormatID::BC6H_RGB_SFLOAT_BLOCK, {0, 0, 0}},
104     {FormatID::BC6H_RGB_UFLOAT_BLOCK, {0, 0, 0}},
105     {FormatID::BC7_RGBA_UNORM_BLOCK, {0, 0, 0}},
106     {FormatID::BC7_RGBA_UNORM_SRGB_BLOCK, {0, 0, 0}},
107     {FormatID::D16_UNORM, {0, BLIT_SRC | DEPTH_STENCIL_ATTACHMENT | SAMPLED_IMAGE, 0}},
108     {FormatID::D24_UNORM_S8_UINT, {0, 0, 0}},
109     {FormatID::D24_UNORM_X8_UINT, {0, 0, 0}},
110     {FormatID::D32_FLOAT, {0, 0, 0}},
111     {FormatID::D32_FLOAT_S8X24_UINT, {0, 0, 0}},
112     {FormatID::EAC_R11G11_SNORM_BLOCK, {0, 0, 0}},
113     {FormatID::EAC_R11G11_UNORM_BLOCK, {0, 0, 0}},
114     {FormatID::EAC_R11_SNORM_BLOCK, {0, 0, 0}},
115     {FormatID::EAC_R11_UNORM_BLOCK, {0, 0, 0}},
116     {FormatID::ETC2_R8G8B8A1_SRGB_BLOCK, {0, 0, 0}},
117     {FormatID::ETC2_R8G8B8A1_UNORM_BLOCK, {0, 0, 0}},
118     {FormatID::ETC2_R8G8B8A8_SRGB_BLOCK, {0, 0, 0}},
119     {FormatID::ETC2_R8G8B8A8_UNORM_BLOCK, {0, 0, 0}},
120     {FormatID::ETC2_R8G8B8_SRGB_BLOCK, {0, 0, 0}},
121     {FormatID::ETC2_R8G8B8_UNORM_BLOCK, {0, 0, 0}},
122     {FormatID::EXTERNAL0, {0, 0, 0}},
123     {FormatID::EXTERNAL1, {0, 0, 0}},
124     {FormatID::EXTERNAL2, {0, 0, 0}},
125     {FormatID::EXTERNAL3, {0, 0, 0}},
126     {FormatID::EXTERNAL4, {0, 0, 0}},
127     {FormatID::EXTERNAL5, {0, 0, 0}},
128     {FormatID::EXTERNAL6, {0, 0, 0}},
129     {FormatID::EXTERNAL7, {0, 0, 0}},
130     {FormatID::G8_B8R8_2PLANE_420_UNORM, {0, 0, 0}},
131     {FormatID::G8_B8_R8_3PLANE_420_UNORM, {0, 0, 0}},
132     {FormatID::NONE, {0, 0, 0}},
133     {FormatID::R10G10B10A2_SINT, {0, 0, 0}},
134     {FormatID::R10G10B10A2_SNORM, {0, 0, 0}},
135     {FormatID::R10G10B10A2_SSCALED, {0, 0, 0}},
136     {FormatID::R10G10B10A2_UINT,
137      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE, UNIFORM_TEXEL_BUFFER}},
138     {FormatID::R10G10B10A2_UNORM,
139      {0,
140       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
141           SAMPLED_IMAGE_FILTER_LINEAR,
142       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
143     {FormatID::R10G10B10A2_USCALED, {0, 0, 0}},
144     {FormatID::R11G11B10_FLOAT,
145      {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR, UNIFORM_TEXEL_BUFFER}},
146     {FormatID::R16G16B16A16_FLOAT,
147      {0,
148       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
149           SAMPLED_IMAGE_FILTER_LINEAR | STORAGE_IMAGE,
150       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
151     {FormatID::R16G16B16A16_SINT,
152      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
153       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
154     {FormatID::R16G16B16A16_SNORM, {0, 0, VERTEX_BUFFER}},
155     {FormatID::R16G16B16A16_SSCALED, {0, 0, 0}},
156     {FormatID::R16G16B16A16_UINT,
157      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
158       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
159     {FormatID::R16G16B16A16_UNORM, {0, 0, VERTEX_BUFFER}},
160     {FormatID::R16G16B16A16_USCALED, {0, 0, 0}},
161     {FormatID::R16G16B16_FLOAT, {0, 0, 0}},
162     {FormatID::R16G16B16_SINT, {0, 0, 0}},
163     {FormatID::R16G16B16_SNORM, {0, 0, 0}},
164     {FormatID::R16G16B16_SSCALED, {0, 0, 0}},
165     {FormatID::R16G16B16_UINT, {0, 0, 0}},
166     {FormatID::R16G16B16_UNORM, {0, 0, 0}},
167     {FormatID::R16G16B16_USCALED, {0, 0, 0}},
168     {FormatID::R16G16_FLOAT,
169      {0,
170       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
171           SAMPLED_IMAGE_FILTER_LINEAR,
172       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
173     {FormatID::R16G16_SINT,
174      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
175       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
176     {FormatID::R16G16_SNORM, {0, 0, VERTEX_BUFFER}},
177     {FormatID::R16G16_SSCALED, {0, 0, 0}},
178     {FormatID::R16G16_UINT,
179      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
180       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
181     {FormatID::R16G16_UNORM, {0, 0, VERTEX_BUFFER}},
182     {FormatID::R16G16_USCALED, {0, 0, 0}},
183     {FormatID::R16_FLOAT,
184      {0,
185       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
186           SAMPLED_IMAGE_FILTER_LINEAR,
187       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
188     {FormatID::R16_SINT,
189      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
190       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
191     {FormatID::R16_SNORM, {0, 0, VERTEX_BUFFER}},
192     {FormatID::R16_SSCALED, {0, 0, 0}},
193     {FormatID::R16_UINT,
194      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
195       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
196     {FormatID::R16_UNORM, {0, 0, VERTEX_BUFFER}},
197     {FormatID::R16_USCALED, {0, 0, 0}},
198     {FormatID::R32G32B32A32_FLOAT,
199      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
200       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
201     {FormatID::R32G32B32A32_SINT,
202      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
203       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
204     {FormatID::R32G32B32A32_UINT,
205      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
206       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
207     {FormatID::R32G32B32_FLOAT, {0, 0, VERTEX_BUFFER}},
208     {FormatID::R32G32B32_SINT, {0, 0, VERTEX_BUFFER}},
209     {FormatID::R32G32B32_UINT, {0, 0, VERTEX_BUFFER}},
210     {FormatID::R32G32_FLOAT,
211      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
212       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
213     {FormatID::R32G32_SINT,
214      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
215       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
216     {FormatID::R32G32_UINT,
217      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
218       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
219     {FormatID::R32_FLOAT,
220      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
221       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
222     {FormatID::R32_SINT,
223      {0,
224       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE | STORAGE_IMAGE_ATOMIC,
225       STORAGE_TEXEL_BUFFER | STORAGE_TEXEL_BUFFER_ATOMIC | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
226     {FormatID::R32_UINT,
227      {0,
228       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE | STORAGE_IMAGE_ATOMIC,
229       STORAGE_TEXEL_BUFFER | STORAGE_TEXEL_BUFFER_ATOMIC | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
230     {FormatID::R4G4B4A4_UNORM, {0, 0, 0}},
231     {FormatID::R5G5B5A1_UNORM, {0, 0, 0}},
232     {FormatID::R5G6B5_UNORM,
233      {0,
234       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
235           SAMPLED_IMAGE_FILTER_LINEAR,
236       0}},
237     {FormatID::R8G8B8A8_SINT,
238      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
239       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
240     {FormatID::R8G8B8A8_SNORM,
241      {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR | STORAGE_IMAGE,
242       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
243     {FormatID::R8G8B8A8_SSCALED, {0, 0, 0}},
244     {FormatID::R8G8B8A8_UINT,
245      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE | STORAGE_IMAGE,
246       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
247     {FormatID::R8G8B8A8_UNORM,
248      {0,
249       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
250           SAMPLED_IMAGE_FILTER_LINEAR | STORAGE_IMAGE,
251       STORAGE_TEXEL_BUFFER | UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
252     {FormatID::R8G8B8A8_UNORM_SRGB,
253      {0,
254       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
255           SAMPLED_IMAGE_FILTER_LINEAR,
256       0}},
257     {FormatID::R8G8B8A8_USCALED, {0, 0, 0}},
258     {FormatID::R8G8B8_SINT, {0, 0, 0}},
259     {FormatID::R8G8B8_SNORM, {0, 0, 0}},
260     {FormatID::R8G8B8_SSCALED, {0, 0, 0}},
261     {FormatID::R8G8B8_UINT, {0, 0, 0}},
262     {FormatID::R8G8B8_UNORM, {0, 0, 0}},
263     {FormatID::R8G8B8_UNORM_SRGB, {0, 0, 0}},
264     {FormatID::R8G8B8_USCALED, {0, 0, 0}},
265     {FormatID::R8G8_SINT,
266      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
267       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
268     {FormatID::R8G8_SNORM,
269      {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR,
270       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
271     {FormatID::R8G8_SSCALED, {0, 0, 0}},
272     {FormatID::R8G8_UINT,
273      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
274       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
275     {FormatID::R8G8_UNORM,
276      {0,
277       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
278           SAMPLED_IMAGE_FILTER_LINEAR,
279       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
280     {FormatID::R8G8_UNORM_SRGB, {0, 0, 0}},
281     {FormatID::R8G8_USCALED, {0, 0, 0}},
282     {FormatID::R8_SINT,
283      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
284       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
285     {FormatID::R8_SNORM,
286      {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR,
287       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
288     {FormatID::R8_SSCALED, {0, 0, 0}},
289     {FormatID::R8_UINT,
290      {0, BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | SAMPLED_IMAGE,
291       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
292     {FormatID::R8_UNORM,
293      {0,
294       BLIT_DST | BLIT_SRC | COLOR_ATTACHMENT | COLOR_ATTACHMENT_BLEND | SAMPLED_IMAGE |
295           SAMPLED_IMAGE_FILTER_LINEAR,
296       UNIFORM_TEXEL_BUFFER | VERTEX_BUFFER}},
297     {FormatID::R8_UNORM_SRGB, {0, 0, 0}},
298     {FormatID::R8_USCALED, {0, 0, 0}},
299     {FormatID::R9G9B9E5_SHAREDEXP, {0, BLIT_SRC | SAMPLED_IMAGE | SAMPLED_IMAGE_FILTER_LINEAR, 0}},
300     {FormatID::S8_UINT, {0, 0, 0}}};
301 }  // anonymous namespace
302 
GetMandatoryFormatSupport(FormatID formatID)303 const VkFormatProperties &GetMandatoryFormatSupport(FormatID formatID)
304 {
305     return kFormatProperties[formatID];
306 }
307 }  // namespace vk
308 }  // namespace rx
309