#version 450 core #extension GL_EXT_buffer_reference : enable layout(buffer_reference, std430) buffer MeshVertexPositions { float data[]; }; struct Mesh { MeshVertexPositions positions; }; layout(set = 0, binding = 0) readonly buffer PerPass_meshes { Mesh data[]; } perPass_meshes; layout(location = 0) out vec4 out_fragColor; layout(location = 0) in flat uint tri_idx0; void main() { Mesh meshData = perPass_meshes.data[tri_idx0]; vec3 vertex_pos0 = vec3(meshData.positions.data[3 * tri_idx0], meshData.positions.data[3 * tri_idx0 + 1], meshData.positions.data[3 * tri_idx0 + 2]); out_fragColor = vec4(vertex_pos0, 1.0); }