• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 GenerateMipmap_comp
139 {
140 enum MaxSupportedDest
141 {
142     kDestSize4 = 0x00000000,
143     kDestSize6 = 0x00000001,
144 };
145 enum Format
146 {
147     kIsRGBA8          = 0x00000000,
148     kIsRGBA8_UseHalf  = 0x00000002,
149     kIsRGBA16         = 0x00000004,
150     kIsRGBA16_UseHalf = 0x00000006,
151     kIsRGBA32F        = 0x00000008,
152 };
153 constexpr size_t kArrayLen = 0x0000000A;
154 }  // namespace GenerateMipmap_comp
155 
156 namespace ImageClear_frag
157 {
158 enum flags
159 {
160     kClearDepth = 0x00000001,
161 };
162 enum AttachmentIndex
163 {
164     kAttachment0 = 0x00000000,
165     kAttachment1 = 0x00000002,
166     kAttachment2 = 0x00000004,
167     kAttachment3 = 0x00000006,
168     kAttachment4 = 0x00000008,
169     kAttachment5 = 0x0000000A,
170     kAttachment6 = 0x0000000C,
171     kAttachment7 = 0x0000000E,
172 };
173 enum Format
174 {
175     kIsFloat = 0x00000000,
176     kIsSint  = 0x00000010,
177     kIsUint  = 0x00000020,
178 };
179 constexpr size_t kArrayLen = 0x00000030;
180 }  // namespace ImageClear_frag
181 
182 namespace ImageCopy_frag
183 {
184 enum SrcType
185 {
186     kSrcIs2D      = 0x00000000,
187     kSrcIs2DArray = 0x00000001,
188     kSrcIs3D      = 0x00000002,
189     kSrcIsYUV     = 0x00000003,
190 };
191 enum DestFormat
192 {
193     kDestIsFloat = 0x00000000,
194     kDestIsSint  = 0x00000004,
195     kDestIsUint  = 0x00000008,
196 };
197 enum SrcFormat
198 {
199     kSrcIsFloat = 0x00000000,
200     kSrcIsSint  = 0x00000010,
201     kSrcIsUint  = 0x00000020,
202 };
203 constexpr size_t kArrayLen = 0x0000002C;
204 }  // namespace ImageCopy_frag
205 
206 namespace OverlayDraw_frag
207 {
208 constexpr size_t kArrayLen = 0x00000001;
209 }  // namespace OverlayDraw_frag
210 
211 namespace OverlayDraw_vert
212 {
213 constexpr size_t kArrayLen = 0x00000001;
214 }  // namespace OverlayDraw_vert
215 
216 }  // namespace InternalShader
217 
218 class ShaderLibrary final : angle::NonCopyable
219 {
220   public:
221     ShaderLibrary();
222     ~ShaderLibrary();
223 
224     void destroy(VkDevice device);
225 
226     angle::Result getBlit3DSrc_frag(Context *context,
227                                     uint32_t shaderFlags,
228                                     RefCounted<ShaderModule> **shaderOut);
229     angle::Result getBlitResolve_frag(Context *context,
230                                       uint32_t shaderFlags,
231                                       RefCounted<ShaderModule> **shaderOut);
232     angle::Result getBlitResolveStencilNoExport_comp(Context *context,
233                                                      uint32_t shaderFlags,
234                                                      RefCounted<ShaderModule> **shaderOut);
235     angle::Result getConvertIndex_comp(Context *context,
236                                        uint32_t shaderFlags,
237                                        RefCounted<ShaderModule> **shaderOut);
238     angle::Result getConvertIndexIndirectLineLoop_comp(Context *context,
239                                                        uint32_t shaderFlags,
240                                                        RefCounted<ShaderModule> **shaderOut);
241     angle::Result getConvertIndirectLineLoop_comp(Context *context,
242                                                   uint32_t shaderFlags,
243                                                   RefCounted<ShaderModule> **shaderOut);
244     angle::Result getConvertVertex_comp(Context *context,
245                                         uint32_t shaderFlags,
246                                         RefCounted<ShaderModule> **shaderOut);
247     angle::Result getCopyImageToBuffer_comp(Context *context,
248                                             uint32_t shaderFlags,
249                                             RefCounted<ShaderModule> **shaderOut);
250     angle::Result getEtcToBc_comp(Context *context,
251                                   uint32_t shaderFlags,
252                                   RefCounted<ShaderModule> **shaderOut);
253     angle::Result getExportStencil_frag(Context *context,
254                                         uint32_t shaderFlags,
255                                         RefCounted<ShaderModule> **shaderOut);
256     angle::Result getFullScreenTri_vert(Context *context,
257                                         uint32_t shaderFlags,
258                                         RefCounted<ShaderModule> **shaderOut);
259     angle::Result getGenerateMipmap_comp(Context *context,
260                                          uint32_t shaderFlags,
261                                          RefCounted<ShaderModule> **shaderOut);
262     angle::Result getImageClear_frag(Context *context,
263                                      uint32_t shaderFlags,
264                                      RefCounted<ShaderModule> **shaderOut);
265     angle::Result getImageCopy_frag(Context *context,
266                                     uint32_t shaderFlags,
267                                     RefCounted<ShaderModule> **shaderOut);
268     angle::Result getOverlayDraw_frag(Context *context,
269                                       uint32_t shaderFlags,
270                                       RefCounted<ShaderModule> **shaderOut);
271     angle::Result getOverlayDraw_vert(Context *context,
272                                       uint32_t shaderFlags,
273                                       RefCounted<ShaderModule> **shaderOut);
274 
275   private:
276     RefCounted<ShaderModule> mBlit3DSrc_frag_shaders[InternalShader::Blit3DSrc_frag::kArrayLen];
277     RefCounted<ShaderModule> mBlitResolve_frag_shaders[InternalShader::BlitResolve_frag::kArrayLen];
278     RefCounted<ShaderModule> mBlitResolveStencilNoExport_comp_shaders
279         [InternalShader::BlitResolveStencilNoExport_comp::kArrayLen];
280     RefCounted<ShaderModule>
281         mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen];
282     RefCounted<ShaderModule> mConvertIndexIndirectLineLoop_comp_shaders
283         [InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
284     RefCounted<ShaderModule> mConvertIndirectLineLoop_comp_shaders
285         [InternalShader::ConvertIndirectLineLoop_comp::kArrayLen];
286     RefCounted<ShaderModule>
287         mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen];
288     RefCounted<ShaderModule>
289         mCopyImageToBuffer_comp_shaders[InternalShader::CopyImageToBuffer_comp::kArrayLen];
290     RefCounted<ShaderModule> mEtcToBc_comp_shaders[InternalShader::EtcToBc_comp::kArrayLen];
291     RefCounted<ShaderModule>
292         mExportStencil_frag_shaders[InternalShader::ExportStencil_frag::kArrayLen];
293     RefCounted<ShaderModule>
294         mFullScreenTri_vert_shaders[InternalShader::FullScreenTri_vert::kArrayLen];
295     RefCounted<ShaderModule>
296         mGenerateMipmap_comp_shaders[InternalShader::GenerateMipmap_comp::kArrayLen];
297     RefCounted<ShaderModule> mImageClear_frag_shaders[InternalShader::ImageClear_frag::kArrayLen];
298     RefCounted<ShaderModule> mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kArrayLen];
299     RefCounted<ShaderModule> mOverlayDraw_frag_shaders[InternalShader::OverlayDraw_frag::kArrayLen];
300     RefCounted<ShaderModule> mOverlayDraw_vert_shaders[InternalShader::OverlayDraw_vert::kArrayLen];
301 };
302 }  // namespace vk
303 }  // namespace rx
304 
305 #endif  // LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_
306