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