| // GENERATED FILE - DO NOT EDIT. |
| // Generated by gen_vk_internal_shaders.py using data from shaders/src/* |
| // |
| // Copyright 2019 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" |
| |
| namespace rx |
| { |
| namespace vk |
| { |
| namespace |
| { |
| #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/BufferUtils.comp.00000000.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000001.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000002.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000003.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000004.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000005.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000006.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000007.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000008.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.00000009.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000A.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.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/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/ConvertVertex.comp.00000008.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000009.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000A.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000B.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000C.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000D.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000E.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000000F.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000010.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.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/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.00000003.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.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.0000000B.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000C.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/ImageCopy.frag.0000000D.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.00000013.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/OverlayCull.comp.00000000.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000001.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000002.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000003.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000004.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayCull.comp.00000005.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.comp.00000000.inc" |
| #include "libANGLE/renderer/vulkan/shaders/gen/OverlayDraw.comp.00000001.inc" |
| |
| // This is SPIR-V binary blob and the size. |
| struct ShaderBlob |
| { |
| const uint32_t *code; |
| size_t codeSize; |
| }; |
| |
| constexpr ShaderBlob 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 ShaderBlob 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 ShaderBlob kBufferUtils_comp_shaders[] = { |
| {kBufferUtils_comp_00000000, sizeof(kBufferUtils_comp_00000000)}, |
| {kBufferUtils_comp_00000001, sizeof(kBufferUtils_comp_00000001)}, |
| {kBufferUtils_comp_00000002, sizeof(kBufferUtils_comp_00000002)}, |
| {kBufferUtils_comp_00000003, sizeof(kBufferUtils_comp_00000003)}, |
| {kBufferUtils_comp_00000004, sizeof(kBufferUtils_comp_00000004)}, |
| {kBufferUtils_comp_00000005, sizeof(kBufferUtils_comp_00000005)}, |
| {kBufferUtils_comp_00000006, sizeof(kBufferUtils_comp_00000006)}, |
| {kBufferUtils_comp_00000007, sizeof(kBufferUtils_comp_00000007)}, |
| {kBufferUtils_comp_00000008, sizeof(kBufferUtils_comp_00000008)}, |
| {kBufferUtils_comp_00000009, sizeof(kBufferUtils_comp_00000009)}, |
| {kBufferUtils_comp_0000000A, sizeof(kBufferUtils_comp_0000000A)}, |
| {kBufferUtils_comp_0000000B, sizeof(kBufferUtils_comp_0000000B)}, |
| }; |
| constexpr ShaderBlob 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 ShaderBlob kConvertIndexIndirectLineLoop_comp_shaders[] = { |
| {kConvertIndexIndirectLineLoop_comp_00000000, |
| sizeof(kConvertIndexIndirectLineLoop_comp_00000000)}, |
| {kConvertIndexIndirectLineLoop_comp_00000001, |
| sizeof(kConvertIndexIndirectLineLoop_comp_00000001)}, |
| }; |
| constexpr ShaderBlob kConvertIndirectLineLoop_comp_shaders[] = { |
| {kConvertIndirectLineLoop_comp_00000000, sizeof(kConvertIndirectLineLoop_comp_00000000)}, |
| }; |
| constexpr ShaderBlob 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)}, |
| {kConvertVertex_comp_00000008, sizeof(kConvertVertex_comp_00000008)}, |
| {kConvertVertex_comp_00000009, sizeof(kConvertVertex_comp_00000009)}, |
| {kConvertVertex_comp_0000000A, sizeof(kConvertVertex_comp_0000000A)}, |
| {kConvertVertex_comp_0000000B, sizeof(kConvertVertex_comp_0000000B)}, |
| {kConvertVertex_comp_0000000C, sizeof(kConvertVertex_comp_0000000C)}, |
| {kConvertVertex_comp_0000000D, sizeof(kConvertVertex_comp_0000000D)}, |
| {kConvertVertex_comp_0000000E, sizeof(kConvertVertex_comp_0000000E)}, |
| {kConvertVertex_comp_0000000F, sizeof(kConvertVertex_comp_0000000F)}, |
| {kConvertVertex_comp_00000010, sizeof(kConvertVertex_comp_00000010)}, |
| }; |
| constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = { |
| {kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)}, |
| }; |
| constexpr ShaderBlob 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)}, |
| }; |
| constexpr ShaderBlob kImageCopy_frag_shaders[] = { |
| {kImageCopy_frag_00000000, sizeof(kImageCopy_frag_00000000)}, |
| {kImageCopy_frag_00000001, sizeof(kImageCopy_frag_00000001)}, |
| {kImageCopy_frag_00000002, sizeof(kImageCopy_frag_00000002)}, |
| {kImageCopy_frag_00000003, sizeof(kImageCopy_frag_00000003)}, |
| {kImageCopy_frag_00000004, sizeof(kImageCopy_frag_00000004)}, |
| {kImageCopy_frag_00000005, sizeof(kImageCopy_frag_00000005)}, |
| {nullptr, 0}, // 0x00000006 |
| {nullptr, 0}, // 0x00000007 |
| {kImageCopy_frag_00000008, sizeof(kImageCopy_frag_00000008)}, |
| {kImageCopy_frag_00000009, sizeof(kImageCopy_frag_00000009)}, |
| {kImageCopy_frag_0000000A, sizeof(kImageCopy_frag_0000000A)}, |
| {kImageCopy_frag_0000000B, sizeof(kImageCopy_frag_0000000B)}, |
| {kImageCopy_frag_0000000C, sizeof(kImageCopy_frag_0000000C)}, |
| {kImageCopy_frag_0000000D, sizeof(kImageCopy_frag_0000000D)}, |
| {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)}, |
| {kImageCopy_frag_00000013, sizeof(kImageCopy_frag_00000013)}, |
| {kImageCopy_frag_00000014, sizeof(kImageCopy_frag_00000014)}, |
| {kImageCopy_frag_00000015, sizeof(kImageCopy_frag_00000015)}, |
| }; |
| constexpr ShaderBlob kOverlayCull_comp_shaders[] = { |
| {kOverlayCull_comp_00000000, sizeof(kOverlayCull_comp_00000000)}, |
| {kOverlayCull_comp_00000001, sizeof(kOverlayCull_comp_00000001)}, |
| {kOverlayCull_comp_00000002, sizeof(kOverlayCull_comp_00000002)}, |
| {kOverlayCull_comp_00000003, sizeof(kOverlayCull_comp_00000003)}, |
| {kOverlayCull_comp_00000004, sizeof(kOverlayCull_comp_00000004)}, |
| {kOverlayCull_comp_00000005, sizeof(kOverlayCull_comp_00000005)}, |
| }; |
| constexpr ShaderBlob kOverlayDraw_comp_shaders[] = { |
| {kOverlayDraw_comp_00000000, sizeof(kOverlayDraw_comp_00000000)}, |
| {kOverlayDraw_comp_00000001, sizeof(kOverlayDraw_comp_00000001)}, |
| }; |
| |
| angle::Result GetShader(Context *context, |
| RefCounted<ShaderAndSerial> *shaders, |
| const ShaderBlob *shaderBlobs, |
| size_t shadersCount, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| ASSERT(shaderFlags < shadersCount); |
| RefCounted<ShaderAndSerial> &shader = shaders[shaderFlags]; |
| *shaderOut = &shader; |
| |
| if (shader.get().valid()) |
| { |
| return angle::Result::Continue; |
| } |
| |
| // Create shader lazily. Access will need to be locked for multi-threading. |
| const ShaderBlob &shaderCode = shaderBlobs[shaderFlags]; |
| ASSERT(shaderCode.code != nullptr); |
| |
| return InitShaderAndSerial(context, &shader.get(), shaderCode.code, shaderCode.codeSize); |
| } |
| } // anonymous namespace |
| |
| ShaderLibrary::ShaderLibrary() {} |
| |
| ShaderLibrary::~ShaderLibrary() {} |
| |
| void ShaderLibrary::destroy(VkDevice device) |
| { |
| for (RefCounted<ShaderAndSerial> &shader : mBlitResolve_frag_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mBlitResolveStencilNoExport_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mBufferUtils_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mConvertIndex_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mConvertIndexIndirectLineLoop_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mConvertIndirectLineLoop_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mConvertVertex_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mFullScreenQuad_vert_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mImageClear_frag_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mImageCopy_frag_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mOverlayCull_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| for (RefCounted<ShaderAndSerial> &shader : mOverlayDraw_comp_shaders) |
| { |
| shader.get().destroy(device); |
| } |
| } |
| |
| angle::Result ShaderLibrary::getBlitResolve_frag(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mBlitResolve_frag_shaders, kBlitResolve_frag_shaders, |
| ArraySize(kBlitResolve_frag_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getBlitResolveStencilNoExport_comp( |
| Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mBlitResolveStencilNoExport_comp_shaders, |
| kBlitResolveStencilNoExport_comp_shaders, |
| ArraySize(kBlitResolveStencilNoExport_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getBufferUtils_comp(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mBufferUtils_comp_shaders, kBufferUtils_comp_shaders, |
| ArraySize(kBufferUtils_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getConvertIndex_comp(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mConvertIndex_comp_shaders, kConvertIndex_comp_shaders, |
| ArraySize(kConvertIndex_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getConvertIndexIndirectLineLoop_comp( |
| Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mConvertIndexIndirectLineLoop_comp_shaders, |
| kConvertIndexIndirectLineLoop_comp_shaders, |
| ArraySize(kConvertIndexIndirectLineLoop_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getConvertIndirectLineLoop_comp( |
| Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mConvertIndirectLineLoop_comp_shaders, |
| kConvertIndirectLineLoop_comp_shaders, |
| ArraySize(kConvertIndirectLineLoop_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getConvertVertex_comp(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mConvertVertex_comp_shaders, kConvertVertex_comp_shaders, |
| ArraySize(kConvertVertex_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getFullScreenQuad_vert(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mFullScreenQuad_vert_shaders, kFullScreenQuad_vert_shaders, |
| ArraySize(kFullScreenQuad_vert_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getImageClear_frag(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mImageClear_frag_shaders, kImageClear_frag_shaders, |
| ArraySize(kImageClear_frag_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getImageCopy_frag(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mImageCopy_frag_shaders, kImageCopy_frag_shaders, |
| ArraySize(kImageCopy_frag_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getOverlayCull_comp(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mOverlayCull_comp_shaders, kOverlayCull_comp_shaders, |
| ArraySize(kOverlayCull_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| angle::Result ShaderLibrary::getOverlayDraw_comp(Context *context, |
| uint32_t shaderFlags, |
| RefCounted<ShaderAndSerial> **shaderOut) |
| { |
| return GetShader(context, mOverlayDraw_comp_shaders, kOverlayDraw_comp_shaders, |
| ArraySize(kOverlayDraw_comp_shaders), shaderFlags, shaderOut); |
| } |
| |
| } // namespace vk |
| } // namespace rx |