chromium/third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/CopyImageToBuffer.comp.00000001.inc

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

#pragma once
constexpr uint8_t kCopyImageToBuffer_comp_00000001[] =;

// Generated from:
//
// #version 450 core
//
// #extension GL_EXT_samplerless_texture_functions : require
//
// layout(local_size_x = 8, local_size_y = 8, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)uniform texture3D src;
//
// layout(set = 0, binding = 1)buffer dst
// {
//     uint destData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
//     uvec2 srcOffset;
//     int srcDepth;
//
//     bool reverseRowOrder;
//
//     uvec2 size;
//
//     uint outputOffset;
//
//     uint outputPitch;
//
//     bool isDstSnorm;
// } params;
//
//       vec4 getSourceValue()
// {
//     uvec2 coord = gl_GlobalInvocationID . xy;
//     if(params . reverseRowOrder)
//     {
//         coord . y = params . size . y - coord . y - 1;
//     }
//     coord += params . srcOffset;
//
//           vec4 srcValue = texelFetch(src, ivec3(coord, params . srcDepth), 0);
//
//     return srcValue;
// }
//
// uint convertToDestValue(vec4 srcValue)
// {
//
//     uvec4 normalized;
//     if(params . isDstSnorm)
//     {
//         ivec4 scaled = ivec4(srcValue * 127.0);
//         normalized = uvec4(scaled);
//     }
//     else
//     {
//         normalized = uvec4(clamp(srcValue, 0.0, 1.0)* 255.0);
//     }
//
//     normalized &= 0xFF;
//
//     return normalized . r | normalized . g << 8 | normalized . b << 16 | normalized . a << 24;
//
// }
//
// void outputDestValue(uint destValue)
// {
//     uint offset = params . outputOffset + params . outputPitch * gl_GlobalInvocationID . y + gl_GlobalInvocationID . x;
//     destData[offset]= destValue;
// }
//
// void main()
// {
//     if(any(greaterThanEqual(gl_GlobalInvocationID . xy, params . size)))
//         return;
//
//           vec4 srcValue = getSourceValue();
//     uint destValue = convertToDestValue(srcValue);
//     outputDestValue(destValue);
// }