blob: 059c9bfe70061b231c09aff09f8c6eeff1abc98b [file] [log] [blame]
// 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/ConvertVertex.comp.00000011.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000012.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000013.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000014.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000015.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000016.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000017.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000018.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000019.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001C.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001D.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001E.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000001F.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000020.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000021.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000022.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000023.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000024.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000025.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000026.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.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)},
{kConvertVertex_comp_00000011, sizeof(kConvertVertex_comp_00000011)},
{kConvertVertex_comp_00000012, sizeof(kConvertVertex_comp_00000012)},
{kConvertVertex_comp_00000013, sizeof(kConvertVertex_comp_00000013)},
{kConvertVertex_comp_00000014, sizeof(kConvertVertex_comp_00000014)},
{kConvertVertex_comp_00000015, sizeof(kConvertVertex_comp_00000015)},
{kConvertVertex_comp_00000016, sizeof(kConvertVertex_comp_00000016)},
{kConvertVertex_comp_00000017, sizeof(kConvertVertex_comp_00000017)},
{kConvertVertex_comp_00000018, sizeof(kConvertVertex_comp_00000018)},
{kConvertVertex_comp_00000019, sizeof(kConvertVertex_comp_00000019)},
{kConvertVertex_comp_0000001A, sizeof(kConvertVertex_comp_0000001A)},
{kConvertVertex_comp_0000001B, sizeof(kConvertVertex_comp_0000001B)},
{kConvertVertex_comp_0000001C, sizeof(kConvertVertex_comp_0000001C)},
{kConvertVertex_comp_0000001D, sizeof(kConvertVertex_comp_0000001D)},
{kConvertVertex_comp_0000001E, sizeof(kConvertVertex_comp_0000001E)},
{kConvertVertex_comp_0000001F, sizeof(kConvertVertex_comp_0000001F)},
{kConvertVertex_comp_00000020, sizeof(kConvertVertex_comp_00000020)},
{kConvertVertex_comp_00000021, sizeof(kConvertVertex_comp_00000021)},
{kConvertVertex_comp_00000022, sizeof(kConvertVertex_comp_00000022)},
{kConvertVertex_comp_00000023, sizeof(kConvertVertex_comp_00000023)},
{kConvertVertex_comp_00000024, sizeof(kConvertVertex_comp_00000024)},
{kConvertVertex_comp_00000025, sizeof(kConvertVertex_comp_00000025)},
{kConvertVertex_comp_00000026, sizeof(kConvertVertex_comp_00000026)},
{kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)},
{kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)},
{kConvertVertex_comp_00000029, sizeof(kConvertVertex_comp_00000029)},
};
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