• 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 BlitResolve_frag
23 {
24 enum flags
25 {
26     kSrcIsArray = 0x00000001,
27     kIsResolve  = 0x00000002,
28 };
29 enum Blit
30 {
31     kBlitColorFloat   = 0x00000000,
32     kBlitColorInt     = 0x00000004,
33     kBlitColorUint    = 0x00000008,
34     kBlitDepth        = 0x0000000C,
35     kBlitStencil      = 0x00000010,
36     kBlitDepthStencil = 0x00000014,
37 };
38 constexpr size_t kArrayLen = 0x00000018;
39 }  // namespace BlitResolve_frag
40 
41 namespace BlitResolveStencilNoExport_comp
42 {
43 enum flags
44 {
45     kSrcIsArray = 0x00000001,
46     kIsResolve  = 0x00000002,
47 };
48 constexpr size_t kArrayLen = 0x00000004;
49 }  // namespace BlitResolveStencilNoExport_comp
50 
51 namespace ConvertIndex_comp
52 {
53 enum flags
54 {
55     kIsPrimitiveRestartEnabled = 0x00000001,
56     kIsIndirect                = 0x00000002,
57 };
58 constexpr size_t kArrayLen = 0x00000004;
59 }  // namespace ConvertIndex_comp
60 
61 namespace ConvertIndexIndirectLineLoop_comp
62 {
63 enum IndicesBitsWidth
64 {
65     kIs8Bits  = 0x00000000,
66     kIs16Bits = 0x00000001,
67     kIs32Bits = 0x00000002,
68 };
69 constexpr size_t kArrayLen = 0x00000003;
70 }  // namespace ConvertIndexIndirectLineLoop_comp
71 
72 namespace ConvertIndirectLineLoop_comp
73 {
74 constexpr size_t kArrayLen = 0x00000001;
75 }  // namespace ConvertIndirectLineLoop_comp
76 
77 namespace ConvertVertex_comp
78 {
79 enum Conversion
80 {
81     kSintToSint   = 0x00000000,
82     kUintToUint   = 0x00000001,
83     kSintToFloat  = 0x00000002,
84     kUintToFloat  = 0x00000003,
85     kSnormToFloat = 0x00000004,
86     kUnormToFloat = 0x00000005,
87     kFixedToFloat = 0x00000006,
88     kFloatToFloat = 0x00000007,
89 };
90 constexpr size_t kArrayLen = 0x00000008;
91 }  // namespace ConvertVertex_comp
92 
93 namespace CopyImageToBuffer_comp
94 {
95 enum SrcFormat
96 {
97     kSrcIsFloat = 0x00000000,
98 };
99 enum SrcType
100 {
101     kSrcIs2D = 0x00000000,
102     kSrcIs3D = 0x00000001,
103 };
104 constexpr size_t kArrayLen = 0x00000002;
105 }  // namespace CopyImageToBuffer_comp
106 
107 namespace EtcToBc_comp
108 {
109 enum OutputFormat
110 {
111     kEtcRgba8ToBC3 = 0x00000000,
112     kEtcRg11ToBC5  = 0x00000001,
113 };
114 constexpr size_t kArrayLen = 0x00000002;
115 }  // namespace EtcToBc_comp
116 
117 namespace ExportStencil_frag
118 {
119 constexpr size_t kArrayLen = 0x00000001;
120 }  // namespace ExportStencil_frag
121 
122 namespace FullScreenTri_vert
123 {
124 constexpr size_t kArrayLen = 0x00000001;
125 }  // namespace FullScreenTri_vert
126 
127 namespace GenerateMipmap_comp
128 {
129 enum MaxSupportedDest
130 {
131     kDestSize4 = 0x00000000,
132     kDestSize6 = 0x00000001,
133 };
134 enum Format
135 {
136     kIsRGBA8          = 0x00000000,
137     kIsRGBA8_UseHalf  = 0x00000002,
138     kIsRGBA16         = 0x00000004,
139     kIsRGBA16_UseHalf = 0x00000006,
140     kIsRGBA32F        = 0x00000008,
141 };
142 constexpr size_t kArrayLen = 0x0000000A;
143 }  // namespace GenerateMipmap_comp
144 
145 namespace ImageClear_frag
146 {
147 enum flags
148 {
149     kClearDepth = 0x00000001,
150 };
151 enum AttachmentIndex
152 {
153     kAttachment0 = 0x00000000,
154     kAttachment1 = 0x00000002,
155     kAttachment2 = 0x00000004,
156     kAttachment3 = 0x00000006,
157     kAttachment4 = 0x00000008,
158     kAttachment5 = 0x0000000A,
159     kAttachment6 = 0x0000000C,
160     kAttachment7 = 0x0000000E,
161 };
162 enum Format
163 {
164     kIsFloat = 0x00000000,
165     kIsSint  = 0x00000010,
166     kIsUint  = 0x00000020,
167 };
168 constexpr size_t kArrayLen = 0x00000030;
169 }  // namespace ImageClear_frag
170 
171 namespace ImageCopy_frag
172 {
173 enum SrcType
174 {
175     kSrcIs2D      = 0x00000000,
176     kSrcIs2DArray = 0x00000001,
177     kSrcIs3D      = 0x00000002,
178     kSrcIsYUV     = 0x00000003,
179 };
180 enum DestFormat
181 {
182     kDestIsFloat = 0x00000000,
183     kDestIsSint  = 0x00000004,
184     kDestIsUint  = 0x00000008,
185 };
186 enum SrcFormat
187 {
188     kSrcIsFloat = 0x00000000,
189     kSrcIsSint  = 0x00000010,
190     kSrcIsUint  = 0x00000020,
191 };
192 constexpr size_t kArrayLen = 0x0000002C;
193 }  // namespace ImageCopy_frag
194 
195 namespace OverlayDraw_frag
196 {
197 constexpr size_t kArrayLen = 0x00000001;
198 }  // namespace OverlayDraw_frag
199 
200 namespace OverlayDraw_vert
201 {
202 constexpr size_t kArrayLen = 0x00000001;
203 }  // namespace OverlayDraw_vert
204 
205 }  // namespace InternalShader
206 
207 class ShaderLibrary final : angle::NonCopyable
208 {
209   public:
210     ShaderLibrary();
211     ~ShaderLibrary();
212 
213     void destroy(VkDevice device);
214 
215     angle::Result getBlitResolve_frag(Context *context,
216                                       uint32_t shaderFlags,
217                                       RefCounted<ShaderModule> **shaderOut);
218     angle::Result getBlitResolveStencilNoExport_comp(Context *context,
219                                                      uint32_t shaderFlags,
220                                                      RefCounted<ShaderModule> **shaderOut);
221     angle::Result getConvertIndex_comp(Context *context,
222                                        uint32_t shaderFlags,
223                                        RefCounted<ShaderModule> **shaderOut);
224     angle::Result getConvertIndexIndirectLineLoop_comp(Context *context,
225                                                        uint32_t shaderFlags,
226                                                        RefCounted<ShaderModule> **shaderOut);
227     angle::Result getConvertIndirectLineLoop_comp(Context *context,
228                                                   uint32_t shaderFlags,
229                                                   RefCounted<ShaderModule> **shaderOut);
230     angle::Result getConvertVertex_comp(Context *context,
231                                         uint32_t shaderFlags,
232                                         RefCounted<ShaderModule> **shaderOut);
233     angle::Result getCopyImageToBuffer_comp(Context *context,
234                                             uint32_t shaderFlags,
235                                             RefCounted<ShaderModule> **shaderOut);
236     angle::Result getEtcToBc_comp(Context *context,
237                                   uint32_t shaderFlags,
238                                   RefCounted<ShaderModule> **shaderOut);
239     angle::Result getExportStencil_frag(Context *context,
240                                         uint32_t shaderFlags,
241                                         RefCounted<ShaderModule> **shaderOut);
242     angle::Result getFullScreenTri_vert(Context *context,
243                                         uint32_t shaderFlags,
244                                         RefCounted<ShaderModule> **shaderOut);
245     angle::Result getGenerateMipmap_comp(Context *context,
246                                          uint32_t shaderFlags,
247                                          RefCounted<ShaderModule> **shaderOut);
248     angle::Result getImageClear_frag(Context *context,
249                                      uint32_t shaderFlags,
250                                      RefCounted<ShaderModule> **shaderOut);
251     angle::Result getImageCopy_frag(Context *context,
252                                     uint32_t shaderFlags,
253                                     RefCounted<ShaderModule> **shaderOut);
254     angle::Result getOverlayDraw_frag(Context *context,
255                                       uint32_t shaderFlags,
256                                       RefCounted<ShaderModule> **shaderOut);
257     angle::Result getOverlayDraw_vert(Context *context,
258                                       uint32_t shaderFlags,
259                                       RefCounted<ShaderModule> **shaderOut);
260 
261   private:
262     RefCounted<ShaderModule> mBlitResolve_frag_shaders[InternalShader::BlitResolve_frag::kArrayLen];
263     RefCounted<ShaderModule> mBlitResolveStencilNoExport_comp_shaders
264         [InternalShader::BlitResolveStencilNoExport_comp::kArrayLen];
265     RefCounted<ShaderModule>
266         mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen];
267     RefCounted<ShaderModule> mConvertIndexIndirectLineLoop_comp_shaders
268         [InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
269     RefCounted<ShaderModule> mConvertIndirectLineLoop_comp_shaders
270         [InternalShader::ConvertIndirectLineLoop_comp::kArrayLen];
271     RefCounted<ShaderModule>
272         mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen];
273     RefCounted<ShaderModule>
274         mCopyImageToBuffer_comp_shaders[InternalShader::CopyImageToBuffer_comp::kArrayLen];
275     RefCounted<ShaderModule> mEtcToBc_comp_shaders[InternalShader::EtcToBc_comp::kArrayLen];
276     RefCounted<ShaderModule>
277         mExportStencil_frag_shaders[InternalShader::ExportStencil_frag::kArrayLen];
278     RefCounted<ShaderModule>
279         mFullScreenTri_vert_shaders[InternalShader::FullScreenTri_vert::kArrayLen];
280     RefCounted<ShaderModule>
281         mGenerateMipmap_comp_shaders[InternalShader::GenerateMipmap_comp::kArrayLen];
282     RefCounted<ShaderModule> mImageClear_frag_shaders[InternalShader::ImageClear_frag::kArrayLen];
283     RefCounted<ShaderModule> mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kArrayLen];
284     RefCounted<ShaderModule> mOverlayDraw_frag_shaders[InternalShader::OverlayDraw_frag::kArrayLen];
285     RefCounted<ShaderModule> mOverlayDraw_vert_shaders[InternalShader::OverlayDraw_vert::kArrayLen];
286 };
287 }  // namespace vk
288 }  // namespace rx
289 
290 #endif  // LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_
291