// 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); // }