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