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 FullScreenQuad_vert 94 { 95 constexpr size_t kArrayLen = 0x00000001; 96 } // namespace FullScreenQuad_vert 97 98 namespace GenerateMipmap_comp 99 { 100 enum MaxSupportedDest 101 { 102 kDestSize4 = 0x00000000, 103 kDestSize6 = 0x00000001, 104 }; 105 enum Format 106 { 107 kIsRGBA8 = 0x00000000, 108 kIsRGBA8_UseHalf = 0x00000002, 109 kIsRGBA16 = 0x00000004, 110 kIsRGBA16_UseHalf = 0x00000006, 111 kIsRGBA32F = 0x00000008, 112 }; 113 constexpr size_t kArrayLen = 0x0000000A; 114 } // namespace GenerateMipmap_comp 115 116 namespace ImageClear_frag 117 { 118 enum flags 119 { 120 kClearDepth = 0x00000001, 121 }; 122 enum AttachmentIndex 123 { 124 kAttachment0 = 0x00000000, 125 kAttachment1 = 0x00000002, 126 kAttachment2 = 0x00000004, 127 kAttachment3 = 0x00000006, 128 kAttachment4 = 0x00000008, 129 kAttachment5 = 0x0000000A, 130 kAttachment6 = 0x0000000C, 131 kAttachment7 = 0x0000000E, 132 }; 133 enum Format 134 { 135 kIsFloat = 0x00000000, 136 kIsSint = 0x00000010, 137 kIsUint = 0x00000020, 138 }; 139 constexpr size_t kArrayLen = 0x00000030; 140 } // namespace ImageClear_frag 141 142 namespace ImageCopy_frag 143 { 144 enum DestFormat 145 { 146 kDestIsFloat = 0x00000000, 147 kDestIsSint = 0x00000001, 148 kDestIsUint = 0x00000002, 149 }; 150 enum SrcFormat 151 { 152 kSrcIsFloat = 0x00000000, 153 kSrcIsSint = 0x00000004, 154 kSrcIsUint = 0x00000008, 155 }; 156 enum SrcType 157 { 158 kSrcIs2D = 0x00000000, 159 kSrcIs2DArray = 0x00000010, 160 kSrcIs3D = 0x00000020, 161 }; 162 constexpr size_t kArrayLen = 0x0000002B; 163 } // namespace ImageCopy_frag 164 165 namespace OverlayCull_comp 166 { 167 enum SubgroupSize 168 { 169 kIs8x4 = 0x00000000, 170 kIs8x8 = 0x00000001, 171 }; 172 enum SubgroupOp 173 { 174 kSupportsBallot = 0x00000000, 175 kSupportsArithmetic = 0x00000002, 176 kSupportsNone = 0x00000004, 177 }; 178 constexpr size_t kArrayLen = 0x00000006; 179 } // namespace OverlayCull_comp 180 181 namespace OverlayDraw_comp 182 { 183 enum SubgroupSize 184 { 185 kIs8x4 = 0x00000000, 186 kIs8x8 = 0x00000001, 187 }; 188 constexpr size_t kArrayLen = 0x00000002; 189 } // namespace OverlayDraw_comp 190 191 } // namespace InternalShader 192 193 class ShaderLibrary final : angle::NonCopyable 194 { 195 public: 196 ShaderLibrary(); 197 ~ShaderLibrary(); 198 199 void destroy(VkDevice device); 200 201 angle::Result getBlitResolve_frag(Context *context, 202 uint32_t shaderFlags, 203 RefCounted<ShaderAndSerial> **shaderOut); 204 angle::Result getBlitResolveStencilNoExport_comp(Context *context, 205 uint32_t shaderFlags, 206 RefCounted<ShaderAndSerial> **shaderOut); 207 angle::Result getConvertIndex_comp(Context *context, 208 uint32_t shaderFlags, 209 RefCounted<ShaderAndSerial> **shaderOut); 210 angle::Result getConvertIndexIndirectLineLoop_comp(Context *context, 211 uint32_t shaderFlags, 212 RefCounted<ShaderAndSerial> **shaderOut); 213 angle::Result getConvertIndirectLineLoop_comp(Context *context, 214 uint32_t shaderFlags, 215 RefCounted<ShaderAndSerial> **shaderOut); 216 angle::Result getConvertVertex_comp(Context *context, 217 uint32_t shaderFlags, 218 RefCounted<ShaderAndSerial> **shaderOut); 219 angle::Result getFullScreenQuad_vert(Context *context, 220 uint32_t shaderFlags, 221 RefCounted<ShaderAndSerial> **shaderOut); 222 angle::Result getGenerateMipmap_comp(Context *context, 223 uint32_t shaderFlags, 224 RefCounted<ShaderAndSerial> **shaderOut); 225 angle::Result getImageClear_frag(Context *context, 226 uint32_t shaderFlags, 227 RefCounted<ShaderAndSerial> **shaderOut); 228 angle::Result getImageCopy_frag(Context *context, 229 uint32_t shaderFlags, 230 RefCounted<ShaderAndSerial> **shaderOut); 231 angle::Result getOverlayCull_comp(Context *context, 232 uint32_t shaderFlags, 233 RefCounted<ShaderAndSerial> **shaderOut); 234 angle::Result getOverlayDraw_comp(Context *context, 235 uint32_t shaderFlags, 236 RefCounted<ShaderAndSerial> **shaderOut); 237 238 private: 239 RefCounted<ShaderAndSerial> 240 mBlitResolve_frag_shaders[InternalShader::BlitResolve_frag::kArrayLen]; 241 RefCounted<ShaderAndSerial> mBlitResolveStencilNoExport_comp_shaders 242 [InternalShader::BlitResolveStencilNoExport_comp::kArrayLen]; 243 RefCounted<ShaderAndSerial> 244 mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen]; 245 RefCounted<ShaderAndSerial> mConvertIndexIndirectLineLoop_comp_shaders 246 [InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen]; 247 RefCounted<ShaderAndSerial> mConvertIndirectLineLoop_comp_shaders 248 [InternalShader::ConvertIndirectLineLoop_comp::kArrayLen]; 249 RefCounted<ShaderAndSerial> 250 mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen]; 251 RefCounted<ShaderAndSerial> 252 mFullScreenQuad_vert_shaders[InternalShader::FullScreenQuad_vert::kArrayLen]; 253 RefCounted<ShaderAndSerial> 254 mGenerateMipmap_comp_shaders[InternalShader::GenerateMipmap_comp::kArrayLen]; 255 RefCounted<ShaderAndSerial> 256 mImageClear_frag_shaders[InternalShader::ImageClear_frag::kArrayLen]; 257 RefCounted<ShaderAndSerial> mImageCopy_frag_shaders[InternalShader::ImageCopy_frag::kArrayLen]; 258 RefCounted<ShaderAndSerial> 259 mOverlayCull_comp_shaders[InternalShader::OverlayCull_comp::kArrayLen]; 260 RefCounted<ShaderAndSerial> 261 mOverlayDraw_comp_shaders[InternalShader::OverlayDraw_comp::kArrayLen]; 262 }; 263 } // namespace vk 264 } // namespace rx 265 266 #endif // LIBANGLE_RENDERER_VULKAN_VK_INTERNAL_SHADERS_AUTOGEN_H_ 267