xref: /aosp_15_r20/external/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_vk_internal_shaders.py using data from shaders/src/*
3 //
4 // Copyright 2018 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // vk_internal_shaders_autogen.h:
9 //   Pre-generated shader library for the ANGLE Vulkan back-end.
10 
11 #ifndef LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_
12 #define LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_
13 
14 #include "libANGLE/renderer/vulkan/vk_utils.h"
15 
16 namespace rx
17 {
18 namespace vk
19 {
20 namespace InternalShader
21 {
22 namespace Blit3DSrc_frag
23 {
24 enum Blit
25 {
26     kBlitFloat = 0x00000000,
27     kBlitInt   = 0x00000001,
28     kBlitUint  = 0x00000002,
29 };
30 constexpr size_t kArrayLen = 0x00000003;
31 }  // namespace Blit3DSrc_frag
32 
33 namespace BlitResolve_frag
34 {
35 enum flags
36 {
37     kSrcIsArray = 0x00000001,
38     kIsResolve  = 0x00000002,
39 };
40 enum Blit
41 {
42     kBlitColorFloat   = 0x00000000,
43     kBlitColorInt     = 0x00000004,
44     kBlitColorUint    = 0x00000008,
45     kBlitDepth        = 0x0000000C,
46     kBlitStencil      = 0x00000010,
47     kBlitDepthStencil = 0x00000014,
48 };
49 constexpr size_t kArrayLen = 0x00000018;
50 }  // namespace BlitResolve_frag
51 
52 namespace BlitResolveStencilNoExport_comp
53 {
54 enum flags
55 {
56     kSrcIsArray = 0x00000001,
57     kIsResolve  = 0x00000002,
58 };
59 constexpr size_t kArrayLen = 0x00000004;
60 }  // namespace BlitResolveStencilNoExport_comp
61 
62 namespace ConvertIndex_comp
63 {
64 enum flags
65 {
66     kIsPrimitiveRestartEnabled = 0x00000001,
67     kIsIndirect                = 0x00000002,
68 };
69 constexpr size_t kArrayLen = 0x00000004;
70 }  // namespace ConvertIndex_comp
71 
72 namespace ConvertIndexIndirectLineLoop_comp
73 {
74 enum IndicesBitsWidth
75 {
76     kIs8Bits  = 0x00000000,
77     kIs16Bits = 0x00000001,
78     kIs32Bits = 0x00000002,
79 };
80 constexpr size_t kArrayLen = 0x00000003;
81 }  // namespace ConvertIndexIndirectLineLoop_comp
82 
83 namespace ConvertIndirectLineLoop_comp
84 {
85 constexpr size_t kArrayLen = 0x00000001;
86 }  // namespace ConvertIndirectLineLoop_comp
87 
88 namespace ConvertVertex_comp
89 {
90 enum Conversion
91 {
92     kSintToSint   = 0x00000000,
93     kUintToUint   = 0x00000001,
94     kSintToFloat  = 0x00000002,
95     kUintToFloat  = 0x00000003,
96     kSnormToFloat = 0x00000004,
97     kUnormToFloat = 0x00000005,
98     kFixedToFloat = 0x00000006,
99     kFloatToFloat = 0x00000007,
100 };
101 constexpr size_t kArrayLen = 0x00000008;
102 }  // namespace ConvertVertex_comp
103 
104 namespace CopyImageToBuffer_comp
105 {
106 enum SrcFormat
107 {
108     kSrcIsFloat = 0x00000000,
109 };
110 enum SrcType
111 {
112     kSrcIs2D = 0x00000000,
113     kSrcIs3D = 0x00000001,
114 };
115 constexpr size_t kArrayLen = 0x00000002;
116 }  // namespace CopyImageToBuffer_comp
117 
118 namespace EtcToBc_comp
119 {
120 enum OutputFormat
121 {
122     kEtcRgba8ToBC3 = 0x00000000,
123     kEtcRg11ToBC5  = 0x00000001,
124 };
125 constexpr size_t kArrayLen = 0x00000002;
126 }  // namespace EtcToBc_comp
127 
128 namespace ExportStencil_frag
129 {
130 constexpr size_t kArrayLen = 0x00000001;
131 }  // namespace ExportStencil_frag
132 
133 namespace FullScreenTri_vert
134 {
135 constexpr size_t kArrayLen = 0x00000001;
136 }  // namespace FullScreenTri_vert
137 
138 namespace GenerateFragmentShadingRate_comp
139 {
140 constexpr size_t kArrayLen = 0x00000001;
141 }  // namespace GenerateFragmentShadingRate_comp
142 
143 namespace GenerateMipmap_comp
144 {
145 enum MaxSupportedDest
146 {
147     kDestSize4 = 0x00000000,
148     kDestSize6 = 0x00000001,
149 };
150 enum Format
151 {
152     kIsRGBA8          = 0x00000000,
153     kIsRGBA8_UseHalf  = 0x00000002,
154     kIsRGBA16         = 0x00000004,
155     kIsRGBA16_UseHalf = 0x00000006,
156     kIsRGBA32F        = 0x00000008,
157 };
158 constexpr size_t kArrayLen = 0x0000000A;
159 }  // namespace GenerateMipmap_comp
160 
161 namespace ImageClear_frag
162 {
163 enum flags
164 {
165     kClearDepth = 0x00000001,
166 };
167 enum AttachmentIndex
168 {
169     kAttachment0 = 0x00000000,
170     kAttachment1 = 0x00000002,
171     kAttachment2 = 0x00000004,
172     kAttachment3 = 0x00000006,
173     kAttachment4 = 0x00000008,
174     kAttachment5 = 0x0000000A,
175     kAttachment6 = 0x0000000C,
176     kAttachment7 = 0x0000000E,
177 };
178 enum Format
179 {
180     kIsFloat = 0x00000000,
181     kIsSint  = 0x00000010,
182     kIsUint  = 0x00000020,
183 };
184 constexpr size_t kArrayLen = 0x00000030;
185 }  // namespace ImageClear_frag
186 
187 namespace ImageCopy_frag
188 {
189 enum DstFormat
190 {
191     kDstIsFloat = 0x00000000,
192     kDstIsSint  = 0x00000001,
193     kDstIsUint  = 0x00000002,
194 };
195 enum SrcFormat
196 {
197     kSrcIsFloat = 0x00000000,
198     kSrcIsSint  = 0x00000004,
199     kSrcIsUint  = 0x00000008,
200 };
201 enum SrcType
202 {
203     kSrcIs2D      = 0x00000000,
204     kSrcIs2DArray = 0x00000010,
205     kSrcIs3D      = 0x00000020,
206 };
207 constexpr size_t kArrayLen = 0x0000002B;
208 }  // namespace ImageCopy_frag
209 
210 namespace ImageCopyFloat_frag
211 {
212 enum SrcType
213 {
214     kSrcIsYUV  = 0x00000000,
215     kSrcIs2DMS = 0x00000001,
216 };
217 constexpr size_t kArrayLen = 0x00000002;
218 }  // namespace ImageCopyFloat_frag
219 
220 namespace OverlayDraw_frag
221 {
222 constexpr size_t kArrayLen = 0x00000001;
223 }  // namespace OverlayDraw_frag
224 
225 namespace OverlayDraw_vert
226 {
227 constexpr size_t kArrayLen = 0x00000001;
228 }  // namespace OverlayDraw_vert
229 
230 }  // namespace InternalShader
231 
232 class ShaderLibrary final : angle::NonCopyable
233 {
234   public:
235     ShaderLibrary();
236     ~ShaderLibrary();
237 
238     void destroy(VkDevice device);
239 
240     angle::Result getBlit3DSrc_frag(Context *context,
241                                     uint32_t shaderFlags,
242                                     ShaderModulePtr *shaderOut);
243     angle::Result getBlitResolve_frag(Context *context,
244                                       uint32_t shaderFlags,
245                                       ShaderModulePtr *shaderOut);
246     angle::Result getBlitResolveStencilNoExport_comp(Context *context,
247                                                      uint32_t shaderFlags,
248                                                      ShaderModulePtr *shaderOut);
249     angle::Result getConvertIndex_comp(Context *context,
250                                        uint32_t shaderFlags,
251                                        ShaderModulePtr *shaderOut);
252     angle::Result getConvertIndexIndirectLineLoop_comp(Context *context,
253                                                        uint32_t shaderFlags,
254                                                        ShaderModulePtr *shaderOut);
255     angle::Result getConvertIndirectLineLoop_comp(Context *context,
256                                                   uint32_t shaderFlags,
257                                                   ShaderModulePtr *shaderOut);
258     angle::Result getConvertVertex_comp(Context *context,
259                                         uint32_t shaderFlags,
260                                         ShaderModulePtr *shaderOut);
261     angle::Result getCopyImageToBuffer_comp(Context *context,
262                                             uint32_t shaderFlags,
263                                             ShaderModulePtr *shaderOut);
264     angle::Result getEtcToBc_comp(Context *context,
265                                   uint32_t shaderFlags,
266                                   ShaderModulePtr *shaderOut);
267     angle::Result getExportStencil_frag(Context *context,
268                                         uint32_t shaderFlags,
269                                         ShaderModulePtr *shaderOut);
270     angle::Result getFullScreenTri_vert(Context *context,
271                                         uint32_t shaderFlags,
272                                         ShaderModulePtr *shaderOut);
273     angle::Result getGenerateFragmentShadingRate_comp(Context *context,
274                                                       uint32_t shaderFlags,
275                                                       ShaderModulePtr *shaderOut);
276     angle::Result getGenerateMipmap_comp(Context *context,
277                                          uint32_t shaderFlags,
278                                          ShaderModulePtr *shaderOut);
279     angle::Result getImageClear_frag(Context *context,
280                                      uint32_t shaderFlags,
281                                      ShaderModulePtr *shaderOut);
282     angle::Result getImageCopy_frag(Context *context,
283                                     uint32_t shaderFlags,
284                                     ShaderModulePtr *shaderOut);
285     angle::Result getImageCopyFloat_frag(Context *context,
286                                          uint32_t shaderFlags,
287                                          ShaderModulePtr *shaderOut);
288     angle::Result getOverlayDraw_frag(Context *context,
289                                       uint32_t shaderFlags,
290                                       ShaderModulePtr *shaderOut);
291     angle::Result getOverlayDraw_vert(Context *context,
292                                       uint32_t shaderFlags,
293                                       ShaderModulePtr *shaderOut);
294 
295   private:
296     ShaderModulePtr mBlit3DSrc_frag_shaders[InternalShader::Blit3DSrc_frag::kArrayLen];
297     ShaderModulePtr mBlitResolve_frag_shaders[InternalShader::BlitResolve_frag::kArrayLen];
298     ShaderModulePtr mBlitResolveStencilNoExport_comp_shaders
299         [InternalShader::BlitResolveStencilNoExport_comp::kArrayLen];
300     ShaderModulePtr mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen];
301     ShaderModulePtr mConvertIndexIndirectLineLoop_comp_shaders
302         [InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
303     ShaderModulePtr mConvertIndirectLineLoop_comp_shaders
304         [InternalShader::ConvertIndirectLineLoop_comp::kArrayLen];
305     ShaderModulePtr mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen];
306     ShaderModulePtr
307         mCopyImageToBuffer_comp_shaders[InternalShader::CopyImageToBuffer_comp::kArrayLen];
308     ShaderModulePtr mEtcToBc_comp_shaders[InternalShader::EtcToBc_comp::kArrayLen];
309     ShaderModulePtr mExportStencil_frag_shaders[InternalShader::ExportStencil_frag::kArrayLen];
310     ShaderModulePtr mFullScreenTri_vert_shaders[InternalShader::FullScreenTri_vert::kArrayLen];
311     ShaderModulePtr mGenerateFragmentShadingRate_comp_shaders
312         [InternalShader::GenerateFragmentShadingRate_comp::kArrayLen];
313     ShaderModulePtr mGenerateMipmap_comp_shaders[InternalShader::GenerateMipmap_comp::kArrayLen];
314     ShaderModulePtr mImageClear_frag_shaders[InternalShader::ImageClear_frag::kArrayLen];
315     ShaderModulePtr mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kArrayLen];
316     ShaderModulePtr mImageCopyFloat_frag_shaders[InternalShader::ImageCopyFloat_frag::kArrayLen];
317     ShaderModulePtr mOverlayDraw_frag_shaders[InternalShader::OverlayDraw_frag::kArrayLen];
318     ShaderModulePtr mOverlayDraw_vert_shaders[InternalShader::OverlayDraw_vert::kArrayLen];
319 };
320 }  // namespace vk
321 }  // namespace rx
322 
323 #endif  // LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_
324