chromium/third_party/angle/src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.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/ConvertVertex.comp.00000007.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

#pragma once
constexpr uint8_t kConvertVertex_comp_00000007[] =;

// Generated from:
//
// #version 450 core
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)buffer dst
// {
//     uint destData[];
// };
//
// layout(set = 0, binding = 1)buffer src
// {
//     uint srcData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
//     uint outputCount;
//
//     uint componentCount;
//
//     uint srcOffset;
//     uint dstOffset;
//
//     uint Ns;
//     uint Bs;
//     uint Ss;
//     uint Es;
//
//     uint Nd;
//     uint Bd;
//     uint Sd;
//     uint Ed;
//
//     uint srcEmulatedAlpha;
//
//     bool isSrcHDR;
//     bool isSrcA2BGR10;
// } params;
//
// uint getSourceComponentOffset(uint vertex, uint component)
// {
//     return vertex * params . Ss + component * 4 + params . srcOffset;
// }
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
//     return vertex * params . Sd + component * params . Bd + params . dstOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
// {
//
//     uint shift =(offset % 4)* 8;
//
//     return shift;
// }
//
//       float loadSourceComponent(uint cd)
// {
//
//     uint vertex = cd / params . Nd;
//     uint component = cd % params . Nd;
//
//     if(component >= params . Ns && component < 3)
//     {
//         return 0;
//     }
//
//     uint offset = getSourceComponentOffset(vertex, component);
//     uint block = srcData[offset / 4];
//
//     uint shiftBits;
//     uint valueBits;
//     uint valueMask;
//
//     if(params . isSrcHDR)
//     {
//         valueBits = component == 3 ? 2 : 10;
//         valueMask = component == 3 ? 0x03 : 0x3FF;
//         if(params . isSrcA2BGR10)
//         {
//             shiftBits = 10 * component;
//         }
//         else
//         {
//
//             shiftBits = component == 3 ? 0 :(valueBits *(2 - component)+ 2);
//         }
//     }
//     else
//     {
//         shiftBits = getShiftBits(offset, 4);
//         valueBits = 4 * 8;
//         valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
//     }
//
//     uint valueAsUint;
//
//     if(component >= params . Ns && component == 3)
//     {
//         valueAsUint = params . srcEmulatedAlpha;
//     }
//     else
//     {
//         valueAsUint =(block >> shiftBits)& valueMask;
//     }
//
//           float value = uintBitsToFloat(valueAsUint);
//
//     return value;
// }
//
//        float convertComponent(float srcValue)
// {
//
//     return srcValue;
// }
//
// uint makeDestinationComponent(uint cd, float value)
// {
//
//     uint valueAsUint;
//
//     if(params . Bd == 2)
//     {
//
//         uint shift =((cd & 1)== 0)? 0 : 16;
//         valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
//     }
//     else
//     {
//         valueAsUint = floatBitsToInt(value);
//     }
//
//     return valueAsUint;
// }
//
// void storeDestinationComponents(uint valueAsUint)
// {
//
//     destData[gl_GlobalInvocationID . x + params . dstOffset / 4]= valueAsUint;
// }
//
// void main()
// {
//     if(gl_GlobalInvocationID . x >= params . outputCount)
//         return;
//
//     uint valueOut = 0;
//     for(uint i = 0;i < params . Ed;++ i)
//     {
//         uint cd = gl_GlobalInvocationID . x * params . Ed + i;
//         if(cd >= params . componentCount)
//         {
//             break;
//         }
//
//               float srcValue = loadSourceComponent(cd);
//                float destValue = convertComponent(srcValue);
//         valueOut |= makeDestinationComponent(cd, destValue);
//     }
//
//     storeDestinationComponents(valueOut);
// }