Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Mesh Shading #18

Open
1 of 13 tasks
AlexMollard opened this issue Jul 15, 2024 · 1 comment
Open
1 of 13 tasks

Implement Mesh Shading #18

AlexMollard opened this issue Jul 15, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@AlexMollard
Copy link
Collaborator

AlexMollard commented Jul 15, 2024

Implement Mesh Shading

Objective

Refactor our current rendering pipeline to use mesh shaders, replacing the traditional vertex-fragment pipeline for improved performance and flexibility in geometry processing.

Tasks

1. Update Vulkan Initialization

  • Enable Vulkan 1.2 or later
  • Add mesh shader feature requirements

2. Shader Development

  • Create a new mesh shader to replace vertex shader functionality
  • Modify existing fragment shader to work with mesh shader outputs
  • (Optional) Implement a task shader for pre-processing and culling

3. Pipeline Creation

  • Update PipelineGenerator to support mesh shader pipelines
  • Remove vertex input state and input assembly state from pipeline creation
  • Add mesh shader stage to pipeline

4. Mesh Data Handling

  • Implement Shader Storage Buffer Objects (SSBOs) for mesh data
  • Create a buffer for positions, normals, texture coordinates, etc.
  • Update C++ code to fill and bind these buffers

5. Draw Call Updates

  • Replace traditional draw calls with vkCmdDrawMeshTasksEXT
  • Implement logic to calculate appropriate group counts (X, Y, Z)

Definition of Done

  • Mesh shader pipeline is fully implemented and integrated into the engine
  • All existing models render correctly using the new pipeline
  • Performance meets or exceeds the traditional pipeline in benchmark tests
  • Code is well-documented and follows our style guidelines
  • Pull request is reviewed and approved by at least one other team member
@AlexMollard
Copy link
Collaborator Author

Maybe look into Meshlet Culling once this ticket is complete.

@AlexMollard AlexMollard added the enhancement New feature or request label Jul 15, 2024
@AlexMollard AlexMollard self-assigned this Jul 15, 2024
@ConnorY97 ConnorY97 added this to the Pre Release milestone Jul 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants