// GENERATED FILE - DO NOT EDIT. // Generated by gen_vk_internal_shaders.py using data from shaders/src/* // // Copyright 2018 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // vk_internal_shaders_autogen.cpp: // Pre-generated shader library for the ANGLE Vulkan back-end. #include "libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h" #define USE_SYSTEM_ZLIB #include "compression_utils_portable.h" namespace rx { namespace vk { namespace { #include "libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/Blit3DSrc.frag.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000004.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000005.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000006.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000007.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000008.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000009.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000B.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000C.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000D.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000E.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.0000000F.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000010.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000011.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000012.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000013.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000014.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000015.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000016.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolve.frag.00000017.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/BlitResolveStencilNoExport.comp.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc" #include "libANGLE/renderer/vulkan/shaders/gen/CopyImageToBuffer.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/CopyImageToBuffer.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ExportStencil.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/FullScreenTri.vert.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateFragmentShadingRate.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000004.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000005.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000006.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000007.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000008.inc" #include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000009.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000003.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000004.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000005.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000006.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000007.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000008.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000009.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000B.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000C.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000D.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000E.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000000F.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000010.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000011.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000012.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000013.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000014.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000015.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000016.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000017.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000018.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000019.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001B.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001C.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001D.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001E.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000001F.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000020.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000021.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000022.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000023.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000024.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000025.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000026.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000027.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000028.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000029.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002B.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002C.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002D.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002E.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.0000002F.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000002.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000004.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000005.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000006.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000008.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000009.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000010.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000011.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000012.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000014.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000015.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000016.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000018.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000019.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000001A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000020.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000021.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000022.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000024.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000025.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000026.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000028.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.00000029.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000002A.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopyFloat.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopyFloat.frag.00000001.inc" #include "libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.frag.00000000.inc" #include "libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.vert.00000000.inc" // This is compressed SPIR-V binary blob and size struct CompressedShaderBlob { const uint8_t *code; uint32_t size; }; constexpr CompressedShaderBlob kBlit3DSrc_frag_shaders[] = { {kBlit3DSrc_frag_00000000, sizeof(kBlit3DSrc_frag_00000000)}, {kBlit3DSrc_frag_00000001, sizeof(kBlit3DSrc_frag_00000001)}, {kBlit3DSrc_frag_00000002, sizeof(kBlit3DSrc_frag_00000002)}, }; constexpr CompressedShaderBlob kBlitResolve_frag_shaders[] = { {kBlitResolve_frag_00000000, sizeof(kBlitResolve_frag_00000000)}, {kBlitResolve_frag_00000001, sizeof(kBlitResolve_frag_00000001)}, {kBlitResolve_frag_00000002, sizeof(kBlitResolve_frag_00000002)}, {kBlitResolve_frag_00000003, sizeof(kBlitResolve_frag_00000003)}, {kBlitResolve_frag_00000004, sizeof(kBlitResolve_frag_00000004)}, {kBlitResolve_frag_00000005, sizeof(kBlitResolve_frag_00000005)}, {kBlitResolve_frag_00000006, sizeof(kBlitResolve_frag_00000006)}, {kBlitResolve_frag_00000007, sizeof(kBlitResolve_frag_00000007)}, {kBlitResolve_frag_00000008, sizeof(kBlitResolve_frag_00000008)}, {kBlitResolve_frag_00000009, sizeof(kBlitResolve_frag_00000009)}, {kBlitResolve_frag_0000000A, sizeof(kBlitResolve_frag_0000000A)}, {kBlitResolve_frag_0000000B, sizeof(kBlitResolve_frag_0000000B)}, {kBlitResolve_frag_0000000C, sizeof(kBlitResolve_frag_0000000C)}, {kBlitResolve_frag_0000000D, sizeof(kBlitResolve_frag_0000000D)}, {kBlitResolve_frag_0000000E, sizeof(kBlitResolve_frag_0000000E)}, {kBlitResolve_frag_0000000F, sizeof(kBlitResolve_frag_0000000F)}, {kBlitResolve_frag_00000010, sizeof(kBlitResolve_frag_00000010)}, {kBlitResolve_frag_00000011, sizeof(kBlitResolve_frag_00000011)}, {kBlitResolve_frag_00000012, sizeof(kBlitResolve_frag_00000012)}, {kBlitResolve_frag_00000013, sizeof(kBlitResolve_frag_00000013)}, {kBlitResolve_frag_00000014, sizeof(kBlitResolve_frag_00000014)}, {kBlitResolve_frag_00000015, sizeof(kBlitResolve_frag_00000015)}, {kBlitResolve_frag_00000016, sizeof(kBlitResolve_frag_00000016)}, {kBlitResolve_frag_00000017, sizeof(kBlitResolve_frag_00000017)}, }; constexpr CompressedShaderBlob kBlitResolveStencilNoExport_comp_shaders[] = { {kBlitResolveStencilNoExport_comp_00000000, sizeof(kBlitResolveStencilNoExport_comp_00000000)}, {kBlitResolveStencilNoExport_comp_00000001, sizeof(kBlitResolveStencilNoExport_comp_00000001)}, {kBlitResolveStencilNoExport_comp_00000002, sizeof(kBlitResolveStencilNoExport_comp_00000002)}, {kBlitResolveStencilNoExport_comp_00000003, sizeof(kBlitResolveStencilNoExport_comp_00000003)}, }; constexpr CompressedShaderBlob kConvertIndex_comp_shaders[] = { {kConvertIndex_comp_00000000, sizeof(kConvertIndex_comp_00000000)}, {kConvertIndex_comp_00000001, sizeof(kConvertIndex_comp_00000001)}, {kConvertIndex_comp_00000002, sizeof(kConvertIndex_comp_00000002)}, {kConvertIndex_comp_00000003, sizeof(kConvertIndex_comp_00000003)}, }; constexpr CompressedShaderBlob kConvertIndexIndirectLineLoop_comp_shaders[] = { {kConvertIndexIndirectLineLoop_comp_00000000, sizeof(kConvertIndexIndirectLineLoop_comp_00000000)}, {kConvertIndexIndirectLineLoop_comp_00000001, sizeof(kConvertIndexIndirectLineLoop_comp_00000001)}, {kConvertIndexIndirectLineLoop_comp_00000002, sizeof(kConvertIndexIndirectLineLoop_comp_00000002)}, }; constexpr CompressedShaderBlob kConvertIndirectLineLoop_comp_shaders[] = { {kConvertIndirectLineLoop_comp_00000000, sizeof(kConvertIndirectLineLoop_comp_00000000)}, }; constexpr CompressedShaderBlob kConvertVertex_comp_shaders[] = { {kConvertVertex_comp_00000000, sizeof(kConvertVertex_comp_00000000)}, {kConvertVertex_comp_00000001, sizeof(kConvertVertex_comp_00000001)}, {kConvertVertex_comp_00000002, sizeof(kConvertVertex_comp_00000002)}, {kConvertVertex_comp_00000003, sizeof(kConvertVertex_comp_00000003)}, {kConvertVertex_comp_00000004, sizeof(kConvertVertex_comp_00000004)}, {kConvertVertex_comp_00000005, sizeof(kConvertVertex_comp_00000005)}, {kConvertVertex_comp_00000006, sizeof(kConvertVertex_comp_00000006)}, {kConvertVertex_comp_00000007, sizeof(kConvertVertex_comp_00000007)}, }; constexpr CompressedShaderBlob kCopyImageToBuffer_comp_shaders[] = { {kCopyImageToBuffer_comp_00000000, sizeof(kCopyImageToBuffer_comp_00000000)}, {kCopyImageToBuffer_comp_00000001, sizeof(kCopyImageToBuffer_comp_00000001)}, }; constexpr CompressedShaderBlob kEtcToBc_comp_shaders[] = { {kEtcToBc_comp_00000000, sizeof(kEtcToBc_comp_00000000)}, {kEtcToBc_comp_00000001, sizeof(kEtcToBc_comp_00000001)}, }; constexpr CompressedShaderBlob kExportStencil_frag_shaders[] = { {kExportStencil_frag_00000000, sizeof(kExportStencil_frag_00000000)}, }; constexpr CompressedShaderBlob kFullScreenTri_vert_shaders[] = { {kFullScreenTri_vert_00000000, sizeof(kFullScreenTri_vert_00000000)}, }; constexpr CompressedShaderBlob kGenerateFragmentShadingRate_comp_shaders[] = { {kGenerateFragmentShadingRate_comp_00000000, sizeof(kGenerateFragmentShadingRate_comp_00000000)}, }; constexpr CompressedShaderBlob kGenerateMipmap_comp_shaders[] = { {kGenerateMipmap_comp_00000000, sizeof(kGenerateMipmap_comp_00000000)}, {kGenerateMipmap_comp_00000001, sizeof(kGenerateMipmap_comp_00000001)}, {kGenerateMipmap_comp_00000002, sizeof(kGenerateMipmap_comp_00000002)}, {kGenerateMipmap_comp_00000003, sizeof(kGenerateMipmap_comp_00000003)}, {kGenerateMipmap_comp_00000004, sizeof(kGenerateMipmap_comp_00000004)}, {kGenerateMipmap_comp_00000005, sizeof(kGenerateMipmap_comp_00000005)}, {kGenerateMipmap_comp_00000006, sizeof(kGenerateMipmap_comp_00000006)}, {kGenerateMipmap_comp_00000007, sizeof(kGenerateMipmap_comp_00000007)}, {kGenerateMipmap_comp_00000008, sizeof(kGenerateMipmap_comp_00000008)}, {kGenerateMipmap_comp_00000009, sizeof(kGenerateMipmap_comp_00000009)}, }; constexpr CompressedShaderBlob kImageClear_frag_shaders[] = { {kImageClear_frag_00000000, sizeof(kImageClear_frag_00000000)}, {kImageClear_frag_00000001, sizeof(kImageClear_frag_00000001)}, {kImageClear_frag_00000002, sizeof(kImageClear_frag_00000002)}, {kImageClear_frag_00000003, sizeof(kImageClear_frag_00000003)}, {kImageClear_frag_00000004, sizeof(kImageClear_frag_00000004)}, {kImageClear_frag_00000005, sizeof(kImageClear_frag_00000005)}, {kImageClear_frag_00000006, sizeof(kImageClear_frag_00000006)}, {kImageClear_frag_00000007, sizeof(kImageClear_frag_00000007)}, {kImageClear_frag_00000008, sizeof(kImageClear_frag_00000008)}, {kImageClear_frag_00000009, sizeof(kImageClear_frag_00000009)}, {kImageClear_frag_0000000A, sizeof(kImageClear_frag_0000000A)}, {kImageClear_frag_0000000B, sizeof(kImageClear_frag_0000000B)}, {kImageClear_frag_0000000C, sizeof(kImageClear_frag_0000000C)}, {kImageClear_frag_0000000D, sizeof(kImageClear_frag_0000000D)}, {kImageClear_frag_0000000E, sizeof(kImageClear_frag_0000000E)}, {kImageClear_frag_0000000F, sizeof(kImageClear_frag_0000000F)}, {kImageClear_frag_00000010, sizeof(kImageClear_frag_00000010)}, {kImageClear_frag_00000011, sizeof(kImageClear_frag_00000011)}, {kImageClear_frag_00000012, sizeof(kImageClear_frag_00000012)}, {kImageClear_frag_00000013, sizeof(kImageClear_frag_00000013)}, {kImageClear_frag_00000014, sizeof(kImageClear_frag_00000014)}, {kImageClear_frag_00000015, sizeof(kImageClear_frag_00000015)}, {kImageClear_frag_00000016, sizeof(kImageClear_frag_00000016)}, {kImageClear_frag_00000017, sizeof(kImageClear_frag_00000017)}, {kImageClear_frag_00000018, sizeof(kImageClear_frag_00000018)}, {kImageClear_frag_00000019, sizeof(kImageClear_frag_00000019)}, {kImageClear_frag_0000001A, sizeof(kImageClear_frag_0000001A)}, {kImageClear_frag_0000001B, sizeof(kImageClear_frag_0000001B)}, {kImageClear_frag_0000001C, sizeof(kImageClear_frag_0000001C)}, {kImageClear_frag_0000001D, sizeof(kImageClear_frag_0000001D)}, {kImageClear_frag_0000001E, sizeof(kImageClear_frag_0000001E)}, {kImageClear_frag_0000001F, sizeof(kImageClear_frag_0000001F)}, {kImageClear_frag_00000020, sizeof(kImageClear_frag_00000020)}, {kImageClear_frag_00000021, sizeof(kImageClear_frag_00000021)}, {kImageClear_frag_00000022, sizeof(kImageClear_frag_00000022)}, {kImageClear_frag_00000023, sizeof(kImageClear_frag_00000023)}, {kImageClear_frag_00000024, sizeof(kImageClear_frag_00000024)}, {kImageClear_frag_00000025, sizeof(kImageClear_frag_00000025)}, {kImageClear_frag_00000026, sizeof(kImageClear_frag_00000026)}, {kImageClear_frag_00000027, sizeof(kImageClear_frag_00000027)}, {kImageClear_frag_00000028, sizeof(kImageClear_frag_00000028)}, {kImageClear_frag_00000029, sizeof(kImageClear_frag_00000029)}, {kImageClear_frag_0000002A, sizeof(kImageClear_frag_0000002A)}, {kImageClear_frag_0000002B, sizeof(kImageClear_frag_0000002B)}, {kImageClear_frag_0000002C, sizeof(kImageClear_frag_0000002C)}, {kImageClear_frag_0000002D, sizeof(kImageClear_frag_0000002D)}, {kImageClear_frag_0000002E, sizeof(kImageClear_frag_0000002E)}, {kImageClear_frag_0000002F, sizeof(kImageClear_frag_0000002F)}, }; constexpr CompressedShaderBlob kImageCopy_frag_shaders[] = { {kImageCopy_frag_00000000, sizeof(kImageCopy_frag_00000000)}, {kImageCopy_frag_00000001, sizeof(kImageCopy_frag_00000001)}, {kImageCopy_frag_00000002, sizeof(kImageCopy_frag_00000002)}, {nullptr, 0}, // 0x00000003 {kImageCopy_frag_00000004, sizeof(kImageCopy_frag_00000004)}, {kImageCopy_frag_00000005, sizeof(kImageCopy_frag_00000005)}, {kImageCopy_frag_00000006, sizeof(kImageCopy_frag_00000006)}, {nullptr, 0}, // 0x00000007 {kImageCopy_frag_00000008, sizeof(kImageCopy_frag_00000008)}, {kImageCopy_frag_00000009, sizeof(kImageCopy_frag_00000009)}, {kImageCopy_frag_0000000A, sizeof(kImageCopy_frag_0000000A)}, {nullptr, 0}, // 0x0000000B {nullptr, 0}, // 0x0000000C {nullptr, 0}, // 0x0000000D {nullptr, 0}, // 0x0000000E {nullptr, 0}, // 0x0000000F {kImageCopy_frag_00000010, sizeof(kImageCopy_frag_00000010)}, {kImageCopy_frag_00000011, sizeof(kImageCopy_frag_00000011)}, {kImageCopy_frag_00000012, sizeof(kImageCopy_frag_00000012)}, {nullptr, 0}, // 0x00000013 {kImageCopy_frag_00000014, sizeof(kImageCopy_frag_00000014)}, {kImageCopy_frag_00000015, sizeof(kImageCopy_frag_00000015)}, {kImageCopy_frag_00000016, sizeof(kImageCopy_frag_00000016)}, {nullptr, 0}, // 0x00000017 {kImageCopy_frag_00000018, sizeof(kImageCopy_frag_00000018)}, {kImageCopy_frag_00000019, sizeof(kImageCopy_frag_00000019)}, {kImageCopy_frag_0000001A, sizeof(kImageCopy_frag_0000001A)}, {nullptr, 0}, // 0x0000001B {nullptr, 0}, // 0x0000001C {nullptr, 0}, // 0x0000001D {nullptr, 0}, // 0x0000001E {nullptr, 0}, // 0x0000001F {kImageCopy_frag_00000020, sizeof(kImageCopy_frag_00000020)}, {kImageCopy_frag_00000021, sizeof(kImageCopy_frag_00000021)}, {kImageCopy_frag_00000022, sizeof(kImageCopy_frag_00000022)}, {nullptr, 0}, // 0x00000023 {kImageCopy_frag_00000024, sizeof(kImageCopy_frag_00000024)}, {kImageCopy_frag_00000025, sizeof(kImageCopy_frag_00000025)}, {kImageCopy_frag_00000026, sizeof(kImageCopy_frag_00000026)}, {nullptr, 0}, // 0x00000027 {kImageCopy_frag_00000028, sizeof(kImageCopy_frag_00000028)}, {kImageCopy_frag_00000029, sizeof(kImageCopy_frag_00000029)}, {kImageCopy_frag_0000002A, sizeof(kImageCopy_frag_0000002A)}, }; constexpr CompressedShaderBlob kImageCopyFloat_frag_shaders[] = { {kImageCopyFloat_frag_00000000, sizeof(kImageCopyFloat_frag_00000000)}, {kImageCopyFloat_frag_00000001, sizeof(kImageCopyFloat_frag_00000001)}, }; constexpr CompressedShaderBlob kOverlayDraw_frag_shaders[] = { {kOverlayDraw_frag_00000000, sizeof(kOverlayDraw_frag_00000000)}, }; constexpr CompressedShaderBlob kOverlayDraw_vert_shaders[] = { {kOverlayDraw_vert_00000000, sizeof(kOverlayDraw_vert_00000000)}, }; angle::Result GetShader(ErrorContext *context, ShaderModulePtr shaders[], const CompressedShaderBlob *compressedShaderBlobs, size_t shadersCount, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { ASSERT(shaderFlags < shadersCount); ShaderModulePtr &shader = shaders[shaderFlags]; if (shader) { ASSERT(shader->valid()); *shaderOut = shader; return angle::Result::Continue; } // Create shader lazily. Access will need to be locked for multi-threading. const CompressedShaderBlob &compressedShaderCode = compressedShaderBlobs[shaderFlags]; ASSERT(compressedShaderCode.code != nullptr); uLong uncompressedSize = zlib_internal::GetGzipUncompressedSize(compressedShaderCode.code, compressedShaderCode.size); std::vector shaderCode((uncompressedSize + 3) / 4, 0); // Note: we assume a little-endian environment throughout ANGLE. int zResult = zlib_internal::GzipUncompressHelper( reinterpret_cast(shaderCode.data()), &uncompressedSize, compressedShaderCode.code, compressedShaderCode.size); if (zResult != Z_OK) { ERR() << "Failure to decompressed internal shader: " << zResult << "\n"; return angle::Result::Stop; } ANGLE_TRY(InitShaderModule(context, &shader, shaderCode.data(), shaderCode.size() * 4)); ASSERT(shader); ASSERT(shader->valid()); *shaderOut = shader; return angle::Result::Continue; } } // anonymous namespace ShaderLibrary::ShaderLibrary() {} ShaderLibrary::~ShaderLibrary() {} void ShaderLibrary::destroy(VkDevice device) { } angle::Result ShaderLibrary::getBlit3DSrc_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mBlit3DSrc_frag_shaders, kBlit3DSrc_frag_shaders, ArraySize(kBlit3DSrc_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getBlitResolve_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mBlitResolve_frag_shaders, kBlitResolve_frag_shaders, ArraySize(kBlitResolve_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getBlitResolveStencilNoExport_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mBlitResolveStencilNoExport_comp_shaders, kBlitResolveStencilNoExport_comp_shaders, ArraySize(kBlitResolveStencilNoExport_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getConvertIndex_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mConvertIndex_comp_shaders, kConvertIndex_comp_shaders, ArraySize(kConvertIndex_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getConvertIndexIndirectLineLoop_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mConvertIndexIndirectLineLoop_comp_shaders, kConvertIndexIndirectLineLoop_comp_shaders, ArraySize(kConvertIndexIndirectLineLoop_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getConvertIndirectLineLoop_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mConvertIndirectLineLoop_comp_shaders, kConvertIndirectLineLoop_comp_shaders, ArraySize(kConvertIndirectLineLoop_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getConvertVertex_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mConvertVertex_comp_shaders, kConvertVertex_comp_shaders, ArraySize(kConvertVertex_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getCopyImageToBuffer_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mCopyImageToBuffer_comp_shaders, kCopyImageToBuffer_comp_shaders, ArraySize(kCopyImageToBuffer_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getEtcToBc_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mEtcToBc_comp_shaders, kEtcToBc_comp_shaders, ArraySize(kEtcToBc_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getExportStencil_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mExportStencil_frag_shaders, kExportStencil_frag_shaders, ArraySize(kExportStencil_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getFullScreenTri_vert(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mFullScreenTri_vert_shaders, kFullScreenTri_vert_shaders, ArraySize(kFullScreenTri_vert_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getGenerateFragmentShadingRate_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mGenerateFragmentShadingRate_comp_shaders, kGenerateFragmentShadingRate_comp_shaders, ArraySize(kGenerateFragmentShadingRate_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getGenerateMipmap_comp(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mGenerateMipmap_comp_shaders, kGenerateMipmap_comp_shaders, ArraySize(kGenerateMipmap_comp_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getImageClear_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mImageClear_frag_shaders, kImageClear_frag_shaders, ArraySize(kImageClear_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getImageCopy_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mImageCopy_frag_shaders, kImageCopy_frag_shaders, ArraySize(kImageCopy_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getImageCopyFloat_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mImageCopyFloat_frag_shaders, kImageCopyFloat_frag_shaders, ArraySize(kImageCopyFloat_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getOverlayDraw_frag(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mOverlayDraw_frag_shaders, kOverlayDraw_frag_shaders, ArraySize(kOverlayDraw_frag_shaders), shaderFlags, shaderOut); } angle::Result ShaderLibrary::getOverlayDraw_vert(ErrorContext *context, uint32_t shaderFlags, ShaderModulePtr *shaderOut) { return GetShader(context, mOverlayDraw_vert_shaders, kOverlayDraw_vert_shaders, ArraySize(kOverlayDraw_vert_shaders), shaderFlags, shaderOut); } } // namespace vk } // namespace rx