#type vertex #version 410 layout(std140) uniform Skybox { layout(row_major) mat4 u_projection; layout(row_major) mat4 u_view; } sb; layout(location = 0) in vec3 input_position; layout(location = 0) out vec3 _v0; mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; } void main() { gl_Position = ((vec4(input_position, 1.0) * spvWorkaroundRowMajor(sb.u_view)) * spvWorkaroundRowMajor(sb.u_projection)).xyww; _v0 = input_position; } #type fragment #version 410 uniform samplerCube u_Skybox; layout(location = 0) in vec3 _v0; layout(location = 0) out vec4 entryPointParam_fragmentMain; void main() { entryPointParam_fragmentMain = texture(u_Skybox, _v0); }