// More Geo + World
#version 450
 #extension GL_EXT_multiview : enable
#define VIEW gl_ViewIndex

struct _96
{
    vec4 _m0;
    vec4 _m1;
    vec4 _m2;
    vec4 _m3;
};


// Vk3DVision (http://3dsurroundgaming.com/) - Stereo Injection
struct Vk3DStereo
{
	vec4 stereo;
	vec4 custom_params;
};
layout(set = 0, binding = 10, std140) uniform Vk3DParams
{
	Vk3DStereo vk3d_params[2];
};

layout(set = 0, binding = 1, std430) restrict readonly buffer _98_100
{
    _96 _m0[];
} _100;

layout(set = 1, binding = 0, std140) uniform _173_175
{
    vec4 _m0;
    vec4 _m1;
    vec4 _m2;
    vec4 _m3;
    vec4 _m4;
    vec4 _m5;
    vec4 _m6;
    vec4 _m7;
    vec4 _m8;
    vec4 _m9;
    vec4 _m10;
    vec4 _m11;
    vec4 _m12;
    vec4 _m13;
    vec4 _m14;
    vec4 _m15;
    vec4 _m16;
    vec4 _m17;
    vec4 _m18;
    vec4 _m19;
    vec4 _m20;
    vec4 _m21;
} _175;

layout(set = 2, binding = 0, std140) uniform _176_178
{
    vec4 _m0;
    vec4 _m1;
    vec4 _m2;
    vec4 _m3;
    vec4 _m4;
    vec4 _m5;
    vec4 _m6;
    vec4 _m7;
    vec4 _m8;
    vec4 _m9;
    vec4 _m10;
} _178;

layout(push_constant, std430) uniform _103_105
{
    int _m0;
    int _m1;
} _105;

layout(set = 0, binding = 2) uniform sampler _166;
layout(set = 0, binding = 3) uniform sampler _167;
layout(set = 0, binding = 4) uniform sampler _168;
layout(set = 0, binding = 5) uniform sampler _169;
layout(set = 0, binding = 6) uniform sampler _170;
layout(set = 0, binding = 7) uniform sampler _171;
layout(set = 0, binding = 8) uniform sampler _172;

layout(location = 15) out vec4 _35;
layout(location = 14) flat out uvec3 _43;
layout(location = 2) out vec4 _50;
layout(location = 1) in vec2 _53;
layout(location = 12) in vec2 _56;
layout(location = 0) in vec4 _61;
layout(location = 2) in vec4 _70;
layout(location = 9) in vec4 _77;

float _12(vec4 _10, vec4 _11)
{
    return dot(_10, _11);
}

void main()
{
    vec4 _19 = vec4(0.0);
    vec3 _24 = vec3(0.0);
    uvec2 _29 = uvec2(0u);
    uint _33 = 0u;
    _35 = vec4(_24, 0.0);
    _43 = uvec3(_29.x, _29.y, 0u);
    _50 = _53.xyxy;
    _50 = vec4(_50.x, _50.y, _56.x, _56.y);
    _19 = vec4(_61.xyz, 1.0);
    vec4 _69 = (_70 * 2.0) - vec4(1.0);
    vec4 _76 = (_77 * 2.0) - vec4(1.0);
    _76.w = (floor((_77.w * 255.100006103515625) / 128.0) * 2.0) - 1.0;
    vec4 _95 = _100._m0[_105._m1]._m0;
    vec4 _113 = _100._m0[_105._m1]._m1;
    vec4 _118 = _100._m0[_105._m1]._m2;
    vec4 _124 = _100._m0[_105._m1]._m3;
    vec4 _134 = _19;
    vec4 _136 = _95;
    gl_Position.x = _12(_134, _136);
    vec4 _141 = _19;
    vec4 _143 = _113;
    gl_Position.y = _12(_141, _143);
    vec4 _147 = _19;
    vec4 _149 = _118;
    gl_Position.z = _12(_147, _149);
    vec4 _154 = _19;
    vec4 _156 = _124;
    gl_Position.w = _12(_154, _156);
    gl_Position.y = -gl_Position.y;

gl_Position.x += vk3d_params[VIEW].stereo.x * (gl_Position.w - vk3d_params[VIEW].stereo.y); 
}



