// 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.00000008.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

#pragma once
constexpr uint8_t kImageClear_frag_00000008[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x35,0x4f,0xbb,0x0a,0xc2,0x40,
    0x10,0xdc,0xe4,0xcc,0xe5,0x69,0x1e,0x8a,0xda,0x85,0x48,0x4a,0x21,0x58,0xa8,0x08,
    0xa2,0x60,0xa5,0x45,0x3a,0xbf,0x40,0xb0,0xb1,0xd0,0x46,0x3f,0xde,0x46,0x70,0x36,
    0x19,0x0f,0xf6,0xe6,0x76,0x76,0x76,0x67,0xcf,0xb8,0xb5,0x2f,0xe2,0x48,0x24,0x81,
    0x8c,0xa4,0x3f,0x85,0xb8,0x60,0x44,0x62,0xb1,0x1d,0x9e,0xda,0x4b,0xdb,0xbc,0xde,
    0xb7,0x66,0xb5,0x5e,0x6a,0x3d,0x15,0xd3,0xe9,0xb4,0x96,0x41,0x33,0x00,0x6a,0x3c,
    0xae,0xf7,0xa7,0xf2,0x21,0x22,0x87,0x46,0x39,0x5f,0xfb,0xf1,0x52,0xae,0xa4,0xee,
    0x2c,0x1e,0xfc,0xfa,0x53,0x13,0xff,0x9c,0x43,0x2e,0xef,0xfa,0x4c,0xc7,0xb9,0x88,
    0x31,0x6e,0xc5,0x39,0x38,0x43,0x6e,0x8a,0x97,0x05,0x56,0x88,0x19,0x26,0xab,0x97,
    0xa5,0x47,0x85,0x3b,0x00,0x1a,0xee,0xb0,0x63,0x1e,0x92,0x2b,0x91,0x47,0xac,0x59,
    0xea,0x63,0xd6,0x23,0xea,0x35,0x4f,0xc8,0x4d,0x90,0x0f,0xe9,0xa5,0x3b,0x2e,0x98,
    0xa7,0xdc,0x5f,0xfb,0x33,0x6a,0x75,0xe6,0x06,0xff,0x71,0xb9,0x8b,0xd0,0xf3,0x03,
    0xc6,0x03,0x1e,0x71,0x67,0xfc,0x63,0xc2,0x19,0x7b,0xee,0x5f,0x90,0x3f,0xa0,0x23,
    0x64,0xfe,0x85,0xe3,0x16,0xf1,0x03,0x59,0x96,0x96,0x5c,0xac,0x01,0x00,0x00
};

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