vulkan_hw_tier00[0] - Spirv Cross output
#version 450

layout(binding = 0, std140) uniform _18_20
{
    vec4 _m0[4];
    vec4 _m1[4];
    vec4 _m2;
} _20;

layout(location = 0) in vec4 _11;
layout(location = 0) out vec2 vs_TEXCOORD0;
layout(location = 2) in vec2 _86;
layout(location = 1) out vec4 _96;
layout(location = 1) in vec4 _97;
vec4 _9;
vec4 _48;

void main()
{
    _9 = _11.yyyy * _20._m0[1];
    _9 = (_20._m0[0] * _11.xxxx) + _9;
    _9 = (_20._m0[2] * _11.zzzz) + _9;
    _9 += _20._m0[3];
    _48 = _9.yyyy * _20._m1[1];
    _48 = (_20._m1[0] * _9.xxxx) + _48;
    _48 = (_20._m1[2] * _9.zzzz) + _48;
    gl_Position = (_20._m1[3] * _9.wwww) + _48;
    vs_TEXCOORD0 = (_86 * _20._m2.xy) + _20._m2.zw;
    _96 = _97;
    gl_Position.y = -gl_Position.y;
}