// GENERATED FILE - DO NOT EDIT.
// Generated by gen_blit11helper.py.
//
// 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.
//
// Blit11Helper_autogen.inc:
//   Defines and retrieves blitshaders for the D3D11 backend.

namespace
{
// Include inline shaders in the anonymous namespace to make sure no symbols are exported
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrougha2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_4444_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2d_565_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2d_5551_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha3d11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg3di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3dui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr3di11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_4444_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb3d_565_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba3d_5551_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_3d_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlum2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughlumalpha2darray11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darrayi11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darrayi11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrg2darrayi11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayui11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughr2darrayi11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pt_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_pm_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftou_um_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgba_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pt_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_pm_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftoi_um_rgb_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_luma_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_luma_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_lumaalpha_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_lumaalpha_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_4444_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_4444_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_4444_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgb2darray_565_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgb_565_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgb_565_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/passthroughrgba2darray_5551_11ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_pm_rgba_5551_2darray_ps.h"
#include "libANGLE/renderer/d3d/d3d11/shaders/compiled/multiplyalpha_ftof_um_rgba_5551_2darray_ps.h"
} // namespace

enum Blit11::BlitShaderOperation : unsigned int
{
    RGBAF,
    BGRAF,
    RGBF,
    RGF,
    RF,
    ALPHA,
    LUMA,
    LUMAALPHA,
    RGBAUI,
    RGBAI,
    RGBUI,
    RGBI,
    RGUI,
    RGI,
    RUI,
    RI,
    RGBAF_PREMULTIPLY,
    RGBAF_UNMULTIPLY,
    RGBF_PREMULTIPLY,
    RGBF_UNMULTIPLY,
    RGBAF_TOUI,
    RGBAF_TOUI_PREMULTIPLY,
    RGBAF_TOUI_UNMULTIPLY,
    RGBF_TOUI,
    RGBF_TOUI_PREMULTIPLY,
    RGBF_TOUI_UNMULTIPLY,
    RGBAF_TOI,
    RGBAF_TOI_PREMULTIPLY,
    RGBAF_TOI_UNMULTIPLY,
    RGBF_TOI,
    RGBF_TOI_PREMULTIPLY,
    RGBF_TOI_UNMULTIPLY,
    LUMAF_PREMULTIPLY,
    LUMAF_UNMULTIPLY,
    LUMAALPHAF_PREMULTIPLY,
    LUMAALPHAF_UNMULTIPLY,
    RGBAF_4444,
    RGBAF_4444_PREMULTIPLY,
    RGBAF_4444_UNMULTIPLY,
    RGBF_565,
    RGBF_565_PREMULTIPLY,
    RGBF_565_UNMULTIPLY,
    RGBAF_5551,
    RGBAF_5551_PREMULTIPLY,
    RGBAF_5551_UNMULTIPLY,
    OPERATION_INVALID
};

enum Blit11::BlitShaderType : unsigned int
{
    BLITSHADER_2D_RGBAF,
    BLITSHADER_2D_BGRAF,
    BLITSHADER_2D_RGBF,
    BLITSHADER_2D_RGF,
    BLITSHADER_2D_RF,
    BLITSHADER_2D_ALPHA,
    BLITSHADER_2D_LUMA,
    BLITSHADER_2D_LUMAALPHA,
    BLITSHADER_2D_RGBAUI,
    BLITSHADER_2D_RGBAI,
    BLITSHADER_2D_RGBUI,
    BLITSHADER_2D_RGBI,
    BLITSHADER_2D_RGUI,
    BLITSHADER_2D_RGI,
    BLITSHADER_2D_RUI,
    BLITSHADER_2D_RI,
    BLITSHADER_2D_RGBAF_PREMULTIPLY,
    BLITSHADER_2D_RGBAF_UNMULTIPLY,
    BLITSHADER_2D_RGBF_PREMULTIPLY,
    BLITSHADER_2D_RGBF_UNMULTIPLY,
    BLITSHADER_2D_RGBAF_TOUI,
    BLITSHADER_2D_RGBAF_TOUI_PREMULTIPLY,
    BLITSHADER_2D_RGBAF_TOUI_UNMULTIPLY,
    BLITSHADER_2D_RGBF_TOUI,
    BLITSHADER_2D_RGBF_TOUI_PREMULTIPLY,
    BLITSHADER_2D_RGBF_TOUI_UNMULTIPLY,
    BLITSHADER_2D_LUMAF_PREMULTIPLY,
    BLITSHADER_2D_LUMAF_UNMULTIPLY,
    BLITSHADER_2D_LUMAALPHAF_PREMULTIPLY,
    BLITSHADER_2D_LUMAALPHAF_UNMULTIPLY,
    BLITSHADER_2D_RGBAF_4444,
    BLITSHADER_2D_RGBAF_4444_PREMULTIPLY,
    BLITSHADER_2D_RGBAF_4444_UNMULTIPLY,
    BLITSHADER_2D_RGBF_565,
    BLITSHADER_2D_RGBF_565_PREMULTIPLY,
    BLITSHADER_2D_RGBF_565_UNMULTIPLY,
    BLITSHADER_2D_RGBAF_5551,
    BLITSHADER_2D_RGBAF_5551_PREMULTIPLY,
    BLITSHADER_2D_RGBAF_5551_UNMULTIPLY,
    BLITSHADER_3D_RGBAF,
    BLITSHADER_3D_BGRAF,
    BLITSHADER_3D_RGBF,
    BLITSHADER_3D_RGF,
    BLITSHADER_3D_RF,
    BLITSHADER_3D_ALPHA,
    BLITSHADER_3D_LUMA,
    BLITSHADER_3D_LUMAALPHA,
    BLITSHADER_3D_RGBAUI,
    BLITSHADER_3D_RGBAI,
    BLITSHADER_3D_RGBUI,
    BLITSHADER_3D_RGBI,
    BLITSHADER_3D_RGUI,
    BLITSHADER_3D_RGI,
    BLITSHADER_3D_RUI,
    BLITSHADER_3D_RI,
    BLITSHADER_3D_RGBAF_PREMULTIPLY,
    BLITSHADER_3D_RGBAF_UNMULTIPLY,
    BLITSHADER_3D_RGBF_PREMULTIPLY,
    BLITSHADER_3D_RGBF_UNMULTIPLY,
    BLITSHADER_3D_RGBAF_TOUI,
    BLITSHADER_3D_RGBAF_TOUI_PREMULTIPLY,
    BLITSHADER_3D_RGBAF_TOUI_UNMULTIPLY,
    BLITSHADER_3D_RGBF_TOUI,
    BLITSHADER_3D_RGBF_TOUI_PREMULTIPLY,
    BLITSHADER_3D_RGBF_TOUI_UNMULTIPLY,
    BLITSHADER_3D_RGBAF_TOI,
    BLITSHADER_3D_RGBAF_TOI_PREMULTIPLY,
    BLITSHADER_3D_RGBAF_TOI_UNMULTIPLY,
    BLITSHADER_3D_RGBF_TOI,
    BLITSHADER_3D_RGBF_TOI_PREMULTIPLY,
    BLITSHADER_3D_RGBF_TOI_UNMULTIPLY,
    BLITSHADER_3D_LUMAF_PREMULTIPLY,
    BLITSHADER_3D_LUMAF_UNMULTIPLY,
    BLITSHADER_3D_LUMAALPHAF_PREMULTIPLY,
    BLITSHADER_3D_LUMAALPHAF_UNMULTIPLY,
    BLITSHADER_3D_RGBAF_4444,
    BLITSHADER_3D_RGBAF_4444_PREMULTIPLY,
    BLITSHADER_3D_RGBAF_4444_UNMULTIPLY,
    BLITSHADER_3D_RGBF_565,
    BLITSHADER_3D_RGBF_565_PREMULTIPLY,
    BLITSHADER_3D_RGBF_565_UNMULTIPLY,
    BLITSHADER_3D_RGBAF_5551,
    BLITSHADER_3D_RGBAF_5551_PREMULTIPLY,
    BLITSHADER_3D_RGBAF_5551_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF,
    BLITSHADER_2DARRAY_BGRAF,
    BLITSHADER_2DARRAY_RGBF,
    BLITSHADER_2DARRAY_RGF,
    BLITSHADER_2DARRAY_RF,
    BLITSHADER_2DARRAY_ALPHA,
    BLITSHADER_2DARRAY_LUMA,
    BLITSHADER_2DARRAY_LUMAALPHA,
    BLITSHADER_2DARRAY_RGBAUI,
    BLITSHADER_2DARRAY_RGBAI,
    BLITSHADER_2DARRAY_RGBUI,
    BLITSHADER_2DARRAY_RGBI,
    BLITSHADER_2DARRAY_RGUI,
    BLITSHADER_2DARRAY_RGI,
    BLITSHADER_2DARRAY_RUI,
    BLITSHADER_2DARRAY_RI,
    BLITSHADER_2DARRAY_RGBAF_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_TOUI,
    BLITSHADER_2DARRAY_RGBAF_TOUI_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_TOUI_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_TOUI,
    BLITSHADER_2DARRAY_RGBF_TOUI_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_TOUI_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_TOI,
    BLITSHADER_2DARRAY_RGBAF_TOI_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_TOI_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_TOI,
    BLITSHADER_2DARRAY_RGBF_TOI_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_TOI_UNMULTIPLY,
    BLITSHADER_2DARRAY_LUMAF_PREMULTIPLY,
    BLITSHADER_2DARRAY_LUMAF_UNMULTIPLY,
    BLITSHADER_2DARRAY_LUMAALPHAF_PREMULTIPLY,
    BLITSHADER_2DARRAY_LUMAALPHAF_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_4444,
    BLITSHADER_2DARRAY_RGBAF_4444_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_4444_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_565,
    BLITSHADER_2DARRAY_RGBF_565_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBF_565_UNMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_5551,
    BLITSHADER_2DARRAY_RGBAF_5551_PREMULTIPLY,
    BLITSHADER_2DARRAY_RGBAF_5551_UNMULTIPLY,
    BLITSHADER_INVALID
};

Blit11::BlitShaderType Blit11::getBlitShaderType(BlitShaderOperation operation, ShaderDimension dimension)
{
    switch(operation)
    {
        case RGBAF:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case BGRAF:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_BGRAF;
                case SHADER_3D:
                    return BLITSHADER_3D_BGRAF;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_BGRAF;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGF:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGF;
                case SHADER_3D:
                    return BLITSHADER_3D_RGF;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGF;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RF:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RF;
                case SHADER_3D:
                    return BLITSHADER_3D_RF;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RF;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case ALPHA:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_ALPHA;
                case SHADER_3D:
                    return BLITSHADER_3D_ALPHA;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_ALPHA;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMA:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMA;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMA;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMA;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMAALPHA:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMAALPHA;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMAALPHA;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMAALPHA;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RI;
                case SHADER_3D:
                    return BLITSHADER_3D_RI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_TOUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOUI_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_TOUI_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOUI_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOUI_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOUI_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_TOUI_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOUI_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOUI_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOUI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_TOUI;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOUI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOUI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOUI_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_TOUI_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOUI_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOUI_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOUI_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_TOUI_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOUI_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOUI_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOI_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOI_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOI_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_TOI_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_TOI_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_TOI_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOI:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOI;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOI;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOI_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOI_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOI_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_TOI_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_INVALID;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_TOI_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_TOI_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMAF_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMAF_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMAF_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMAF_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMAF_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMAF_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMAF_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMAF_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMAALPHAF_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMAALPHAF_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMAALPHAF_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMAALPHAF_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case LUMAALPHAF_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_LUMAALPHAF_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_LUMAALPHAF_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_LUMAALPHAF_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_4444:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_4444;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_4444;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_4444;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_4444_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_4444_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_4444_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_4444_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_4444_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_4444_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_4444_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_4444_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_565:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_565;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_565;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_565;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_565_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_565_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_565_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_565_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBF_565_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBF_565_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBF_565_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBF_565_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_5551:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_5551;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_5551;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_5551;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_5551_PREMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_5551_PREMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_5551_PREMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_5551_PREMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        case RGBAF_5551_UNMULTIPLY:
            switch (dimension)
            {
                case SHADER_2D:
                    return BLITSHADER_2D_RGBAF_5551_UNMULTIPLY;
                case SHADER_3D:
                    return BLITSHADER_3D_RGBAF_5551_UNMULTIPLY;
                case SHADER_2DARRAY:
                    return BLITSHADER_2DARRAY_RGBAF_5551_UNMULTIPLY;
                default:
                    UNREACHABLE();
                    return BLITSHADER_INVALID;
            }
        default:
            UNREACHABLE();
            return BLITSHADER_INVALID;
    }
};

angle::Result Blit11::mapBlitShader(const gl::Context *context,
                                    BlitShaderType blitShaderType)
{
    switch(blitShaderType)
    {
        case BLITSHADER_2D_RGBAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2D),
                                         "Blit11 2D PassthroughRGBA2D pixel shader"));
            break;
        case BLITSHADER_2D_BGRAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2D),
                                         "Blit11 2D PassthroughRGBA2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGB2D),
                                         "Blit11 2D PassthroughRGB2D pixel shader"));
            break;
        case BLITSHADER_2D_RGF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRG2D),
                                         "Blit11 2D PassthroughRG2D pixel shader"));
            break;
        case BLITSHADER_2D_RF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughR2D),
                                         "Blit11 2D PassthroughR2D pixel shader"));
            break;
        case BLITSHADER_2D_ALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughA2D),
                                         "Blit11 2D PassthroughA2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughLum2D),
                                         "Blit11 2D PassthroughLum2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMAALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughLumAlpha2D),
                                         "Blit11 2D PassthroughLumAlpha2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2DUI),
                                         "Blit11 2D PassthroughRGBA2DUI pixel shader"));
            break;
        case BLITSHADER_2D_RGBAI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2DI),
                                         "Blit11 2D PassthroughRGBA2DI pixel shader"));
            break;
        case BLITSHADER_2D_RGBUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGB2DUI),
                                         "Blit11 2D PassthroughRGB2DUI pixel shader"));
            break;
        case BLITSHADER_2D_RGBI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGB2DI),
                                         "Blit11 2D PassthroughRGB2DI pixel shader"));
            break;
        case BLITSHADER_2D_RGUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRG2DUI),
                                         "Blit11 2D PassthroughRG2DUI pixel shader"));
            break;
        case BLITSHADER_2D_RGI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRG2DI),
                                         "Blit11 2D PassthroughRG2DI pixel shader"));
            break;
        case BLITSHADER_2D_RUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughR2DUI),
                                         "Blit11 2D PassthroughR2DUI pixel shader"));
            break;
        case BLITSHADER_2D_RI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughR2DI),
                                         "Blit11 2D PassthroughR2DI pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_2D),
                                         "Blit11 2D FtoF PM RGBA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_2D),
                                         "Blit11 2D FtoF UM RGBA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_RGB_2D),
                                         "Blit11 2D FtoF PM RGB 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_RGB_2D),
                                         "Blit11 2D FtoF UM RGB 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_PT_RGBA_2D),
                                         "Blit11 2D FtoU PT RGBA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_PM_RGBA_2D),
                                         "Blit11 2D FtoU PM RGBA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_UM_RGBA_2D),
                                         "Blit11 2D FtoU UM RGBA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_PT_RGB_2D),
                                         "Blit11 2D FtoU PT RGB 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_PM_RGB_2D),
                                         "Blit11 2D FtoU PM RGB 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoU_UM_RGB_2D),
                                         "Blit11 2D FtoU UM RGB 2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_LUMA_2D),
                                         "Blit11 2D FtoF PM LUMA 2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_LUMA_2D),
                                         "Blit11 2D FtoF UM LUMA 2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMAALPHAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_LUMAALPHA_2D),
                                         "Blit11 2D FtoF PM LUMAALPHA 2D pixel shader"));
            break;
        case BLITSHADER_2D_LUMAALPHAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_LUMAALPHA_2D),
                                         "Blit11 2D FtoF UM LUMAALPHA 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_4444:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2D_4444),
                                         "Blit11 2D PassthroughRGBA2D 4444 pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_4444_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_4444_2D),
                                         "Blit11 2D FtoF PM RGBA 4444 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_4444_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_4444_2D),
                                         "Blit11 2D FtoF UM RGBA 4444 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_565:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGB2D_565),
                                         "Blit11 2D PassthroughRGB2D 565 pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_565_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_RGB_565_2D),
                                         "Blit11 2D FtoF PM RGB 565 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBF_565_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_RGB_565_2D),
                                         "Blit11 2D FtoF UM RGB 565 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_5551:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_PassthroughRGBA2D_5551),
                                         "Blit11 2D PassthroughRGBA2D 5551 pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_5551_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_5551_2D),
                                         "Blit11 2D FtoF PM RGBA 5551 2D pixel shader"));
            break;
        case BLITSHADER_2D_RGBAF_5551_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_5551_2D),
                                         "Blit11 2D FtoF UM RGBA 5551 2D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3D),
                                         "Blit11 3D PassthroughRGBA3D pixel shader"));
            break;
        case BLITSHADER_3D_BGRAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3D),
                                         "Blit11 3D PassthroughRGBA3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGB3D),
                                         "Blit11 3D PassthroughRGB3D pixel shader"));
            break;
        case BLITSHADER_3D_RGF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRG3D),
                                         "Blit11 3D PassthroughRG3D pixel shader"));
            break;
        case BLITSHADER_3D_RF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughR3D),
                                         "Blit11 3D PassthroughR3D pixel shader"));
            break;
        case BLITSHADER_3D_ALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3D),
                                         "Blit11 3D PassthroughRGBA3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughLum3D),
                                         "Blit11 3D PassthroughLum3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMAALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughLumAlpha3D),
                                         "Blit11 3D PassthroughLumAlpha3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3DUI),
                                         "Blit11 3D PassthroughRGBA3DUI pixel shader"));
            break;
        case BLITSHADER_3D_RGBAI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3DI),
                                         "Blit11 3D PassthroughRGBA3DI pixel shader"));
            break;
        case BLITSHADER_3D_RGBUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGB3DUI),
                                         "Blit11 3D PassthroughRGB3DUI pixel shader"));
            break;
        case BLITSHADER_3D_RGBI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGB3DI),
                                         "Blit11 3D PassthroughRGB3DI pixel shader"));
            break;
        case BLITSHADER_3D_RGUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRG3DUI),
                                         "Blit11 3D PassthroughRG3DUI pixel shader"));
            break;
        case BLITSHADER_3D_RGI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRG3DI),
                                         "Blit11 3D PassthroughRG3DI pixel shader"));
            break;
        case BLITSHADER_3D_RUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughR3DUI),
                                         "Blit11 3D PassthroughR3DUI pixel shader"));
            break;
        case BLITSHADER_3D_RI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughR3DI),
                                         "Blit11 3D PassthroughR3DI pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_3D),
                                         "Blit11 3D FtoF PM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_3D),
                                         "Blit11 3D FtoF UM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_RGB_3D),
                                         "Blit11 3D FtoF PM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_RGB_3D),
                                         "Blit11 3D FtoF UM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_PT_RGBA_3D),
                                         "Blit11 3D FtoU PT RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_PM_RGBA_3D),
                                         "Blit11 3D FtoU PM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_UM_RGBA_3D),
                                         "Blit11 3D FtoU UM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_PT_RGB_3D),
                                         "Blit11 3D FtoU PT RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_PM_RGB_3D),
                                         "Blit11 3D FtoU PM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoU_UM_RGB_3D),
                                         "Blit11 3D FtoU UM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_PT_RGBA_3D),
                                         "Blit11 3D FtoI PT RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_PM_RGBA_3D),
                                         "Blit11 3D FtoI PM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_TOI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_UM_RGBA_3D),
                                         "Blit11 3D FtoI UM RGBA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_PT_RGB_3D),
                                         "Blit11 3D FtoI PT RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_PM_RGB_3D),
                                         "Blit11 3D FtoI PM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_TOI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoI_UM_RGB_3D),
                                         "Blit11 3D FtoI UM RGB 3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_LUMA_3D),
                                         "Blit11 3D FtoF PM LUMA 3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_LUMA_3D),
                                         "Blit11 3D FtoF UM LUMA 3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMAALPHAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_LUMAALPHA_3D),
                                         "Blit11 3D FtoF PM LUMAALPHA 3D pixel shader"));
            break;
        case BLITSHADER_3D_LUMAALPHAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_LUMAALPHA_3D),
                                         "Blit11 3D FtoF UM LUMAALPHA 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_4444:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3D_4444),
                                         "Blit11 3D PassthroughRGBA3D 4444 pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_4444_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_4444_3D),
                                         "Blit11 3D FtoF PM RGBA 4444 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_4444_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_4444_3D),
                                         "Blit11 3D FtoF UM RGBA 4444 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_565:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGB3D_565),
                                         "Blit11 3D PassthroughRGB3D 565 pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_565_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_RGB_565_3D),
                                         "Blit11 3D FtoF PM RGB 565 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBF_565_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_RGB_565_3D),
                                         "Blit11 3D FtoF UM RGB 565 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_5551:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_PassthroughRGBA3D_5551),
                                         "Blit11 3D PassthroughRGBA3D 5551 pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_5551_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_PM_RGBA_5551_3D),
                                         "Blit11 3D FtoF PM RGBA 5551 3D pixel shader"));
            break;
        case BLITSHADER_3D_RGBAF_5551_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_3D,
                                         ShaderData(g_PS_FtoF_UM_RGBA_5551_3D),
                                         "Blit11 3D FtoF UM RGBA 5551 3D pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArray),
                                         "Blit11 2DArray PassthroughRGBA2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_BGRAF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArray),
                                         "Blit11 2DArray PassthroughRGBA2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGB2DArray),
                                         "Blit11 2DArray PassthroughRGB2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRG2DArray),
                                         "Blit11 2DArray PassthroughRG2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RF:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughR2DArray),
                                         "Blit11 2DArray PassthroughR2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_ALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArray),
                                         "Blit11 2DArray PassthroughRGBA2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughLum2DArray),
                                         "Blit11 2DArray PassthroughLum2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMAALPHA:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughLumAlpha2DArray),
                                         "Blit11 2DArray PassthroughLumAlpha2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArrayUI),
                                         "Blit11 2DArray PassthroughRGBA2DArrayUI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArrayI),
                                         "Blit11 2DArray PassthroughRGBA2DArrayI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGB2DArrayUI),
                                         "Blit11 2DArray PassthroughRGB2DArrayUI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGB2DArrayI),
                                         "Blit11 2DArray PassthroughRGB2DArrayI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRG2DArrayUI),
                                         "Blit11 2DArray PassthroughRG2DArrayUI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRG2DArrayI),
                                         "Blit11 2DArray PassthroughRG2DArrayI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughR2DArrayUI),
                                         "Blit11 2DArray PassthroughR2DArrayUI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughR2DArrayI),
                                         "Blit11 2DArray PassthroughR2DArrayI pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_RGBA_2DArray),
                                         "Blit11 2DArray FtoF PM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_RGBA_2DArray),
                                         "Blit11 2DArray FtoF UM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_RGB_2DArray),
                                         "Blit11 2DArray FtoF PM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_RGB_2DArray),
                                         "Blit11 2DArray FtoF UM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_PT_RGBA_2DArray),
                                         "Blit11 2DArray FtoU PT RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_PM_RGBA_2DArray),
                                         "Blit11 2DArray FtoU PM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_UM_RGBA_2DArray),
                                         "Blit11 2DArray FtoU UM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOUI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_PT_RGB_2DArray),
                                         "Blit11 2DArray FtoU PT RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOUI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_PM_RGB_2DArray),
                                         "Blit11 2DArray FtoU PM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOUI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoU_UM_RGB_2DArray),
                                         "Blit11 2DArray FtoU UM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_PT_RGBA_2DArray),
                                         "Blit11 2DArray FtoI PT RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_PM_RGBA_2DArray),
                                         "Blit11 2DArray FtoI PM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_TOI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_UM_RGBA_2DArray),
                                         "Blit11 2DArray FtoI UM RGBA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOI:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_PT_RGB_2DArray),
                                         "Blit11 2DArray FtoI PT RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOI_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_PM_RGB_2DArray),
                                         "Blit11 2DArray FtoI PM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_TOI_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoI_UM_RGB_2DArray),
                                         "Blit11 2DArray FtoI UM RGB 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_LUMA_2DArray),
                                         "Blit11 2DArray FtoF PM LUMA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_LUMA_2DArray),
                                         "Blit11 2DArray FtoF UM LUMA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMAALPHAF_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_LUMAALPHA_2DArray),
                                         "Blit11 2DArray FtoF PM LUMAALPHA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_LUMAALPHAF_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_LUMAALPHA_2DArray),
                                         "Blit11 2DArray FtoF UM LUMAALPHA 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_4444:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArray_4444),
                                         "Blit11 2DArray PassthroughRGBA2DArray 4444 pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_4444_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_RGBA_4444_2DArray),
                                         "Blit11 2DArray FtoF PM RGBA 4444 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_4444_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_RGBA_4444_2DArray),
                                         "Blit11 2DArray FtoF UM RGBA 4444 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_565:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGB2DArray_565),
                                         "Blit11 2DArray PassthroughRGB2DArray 565 pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_565_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_RGB_565_2DArray),
                                         "Blit11 2DArray FtoF PM RGB 565 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBF_565_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_RGB_565_2DArray),
                                         "Blit11 2DArray FtoF UM RGB 565 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_5551:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_PassthroughRGBA2DArray_5551),
                                         "Blit11 2DArray PassthroughRGBA2DArray 5551 pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_5551_PREMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_PM_RGBA_5551_2DArray),
                                         "Blit11 2DArray FtoF PM RGBA 5551 2DArray pixel shader"));
            break;
        case BLITSHADER_2DARRAY_RGBAF_5551_UNMULTIPLY:
            ANGLE_TRY(addBlitShaderToMap(context, blitShaderType, SHADER_2DARRAY,
                                         ShaderData(g_PS_FtoF_UM_RGBA_5551_2DArray),
                                         "Blit11 2DArray FtoF UM RGBA 5551 2DArray pixel shader"));
            break;
        default:
            ANGLE_HR_UNREACHABLE(GetImplAs<Context11>(context));
    }

    return angle::Result::Continue;
}

