// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.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.
//
// shaders/gen/ImageClear.frag.00000016.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

#pragma once
constexpr uint8_t kImageClear_frag_00000016[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x35,0x8f,0x3b,0x0b,0xc2,0x50,
    0x0c,0x85,0xd3,0x5e,0xfb,0xb6,0x2f,0x45,0xdd,0x4a,0xa5,0xa3,0x50,0x1c,0x54,0x04,
    0x51,0x70,0xd2,0xa1,0x9b,0xbf,0x40,0x70,0x71,0xd0,0x45,0x7f,0xbc,0x8b,0xe0,0xc9,
    0xed,0xb1,0x90,0xa4,0xf9,0x92,0x93,0xe4,0x1a,0xb7,0x09,0x44,0x1c,0x89,0x25,0x94,
    0x91,0xf4,0x5f,0x29,0x2e,0x88,0x48,0x22,0xbe,0x8d,0xa7,0xee,0xd2,0xb5,0xaf,0xf7,
    0xad,0x5d,0xad,0x97,0x5a,0xcf,0xc4,0xd8,0x3e,0xad,0xe5,0xe8,0x19,0x20,0xaa,0x3d,
    0xae,0xf7,0xa7,0xf2,0x08,0x56,0xa0,0x47,0x59,0xa0,0x7a,0xfc,0x29,0xab,0x60,0xaa,
    0x3c,0x8b,0x87,0xd9,0xfd,0xd7,0x30,0xfe,0x99,0x43,0x56,0x58,0x9d,0xb1,0xcc,0x85,
    0x8d,0xe1,0x35,0xce,0xc1,0x0c,0xd9,0x04,0x73,0x7d,0xc4,0x9a,0xba,0x19,0x72,0xdd,
    0xe7,0xf3,0x9e,0x1a,0x3e,0xe4,0x4e,0xe5,0x3b,0xe6,0x11,0xd9,0x14,0x3e,0xa6,0xbe,
    0x42,0x2d,0x61,0x5f,0x4c,0xed,0x90,0xbd,0x09,0xb5,0x9a,0xa7,0x64,0x0b,0xee,0xce,
    0x78,0xbf,0xf6,0xe7,0xac,0xe9,0x8c,0x0d,0xde,0xe3,0xf2,0x0e,0xe1,0xbe,0x0f,0x88,
    0x87,0x78,0x84,0xcf,0xf9,0xc6,0x94,0x33,0xf6,0xbc,0xbd,0x24,0x3f,0x40,0x11,0x31,
    0xff,0xe2,0x75,0x5b,0xd8,0x0f,0xb2,0xd5,0x9b,0xce,0xac,0x01,0x00,0x00
};

// Generated from:
//
// #version 450 core
//
// layout(push_constant)uniform PushConstants {
//        ivec4 clearColor;
//     float clearDepth;
// } params;
//
// layout(location = 3)out ivec4 colorOut;
//
// void main()
// {
//     colorOut = params . clearColor;
//
// }
