diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh index c9039c1179aad7b9e45e2fda62a1e5fbd202f08f..4f6e1fa572f7501cbb35006f93cfcce6753298aa 100644 --- a/projects/mesh_shader/resources/shaders/shader.mesh +++ b/projects/mesh_shader/resources/shaders/shader.mesh @@ -7,12 +7,16 @@ layout(local_size_x=32) in; layout(triangles) out; layout(max_vertices=64, max_primitives=126) out; +layout( push_constant ) uniform constants{ + mat4 mvp; +}; + // out uint gl_PrimitiveCountNV; // out uint gl_PrimitiveIndicesNV[]; -out gl_MeshPerVertexNV { - vec4 gl_Position; -} gl_MeshVerticesNV[]; +//out gl_MeshPerVertexNV { +// vec4 gl_Position; +//} gl_MeshVerticesNV[]; void main() { if(gl_LocalInvocationID.x == 0) @@ -22,8 +26,8 @@ void main() { gl_PrimitiveIndicesNV[1] = 1; gl_PrimitiveIndicesNV[2] = 2; - gl_MeshVerticesNV[0].gl_Position = vec4(-0.5, 0.5, 0.5, 1); - gl_MeshVerticesNV[1].gl_Position = vec4( 0.5, 0.5, 0.5, 1); - gl_MeshVerticesNV[2].gl_Position = vec4( 0 , -0.5, 0.5, 1); + gl_MeshVerticesNV[0].gl_Position = mvp * vec4(-0.5, 0.5, 0.5, 1); + gl_MeshVerticesNV[1].gl_Position = mvp * vec4( 0.5, 0.5, 0.5, 1); + gl_MeshVerticesNV[2].gl_Position = mvp * vec4( 0 , -0.5, 0.5, 1); } } \ No newline at end of file diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp index 6fa6c8f65b6b584df6af398e5a56494b75cf67d9..8a42334528719b5725b9d32cab39abdc0a6d177f 100644 --- a/projects/mesh_shader/src/main.cpp +++ b/projects/mesh_shader/src/main.cpp @@ -152,7 +152,7 @@ int main(int argc, const char** argv) { cmdStream, renderPass, meshShaderPipeline, - vkcv::PushConstantData(nullptr, 0), + pushConstantData, { vkcv::MeshShaderDrawcall({}, 1) }, { swapchainInput });