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