Skip to content

feat(lambda-rs): Add instanced rendering - #75

Merged
vmarcella merged 10 commits into
mainfrom
vmarcella/instanced-rendering
Nov 25, 2025
Merged

feat(lambda-rs): Add instanced rendering#75
vmarcella merged 10 commits into
mainfrom
vmarcella/instanced-rendering

Conversation

@vmarcella

Copy link
Copy Markdown
Member

No description provided.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces instanced rendering as a first-class feature in the lambda-rs engine, enabling efficient drawing of multiple copies of shared geometry with per-instance data. The implementation maintains backward compatibility while adding new APIs for instance-rate vertex buffers.

Key changes:

  • Added VertexStepMode enum and VertexBufferLayout struct to support per-instance vertex attributes
  • Introduced with_instance_buffer and with_buffer_step_mode methods on RenderPipelineBuilder
  • Added render-instancing-validation feature flag for validating instance ranges and buffer bindings
  • Created comprehensive tutorial and specification documentation with a working instanced quads example

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
docs/tutorials/instanced-quads.mdNew tutorial demonstrating instanced rendering with a grid of colored quads
docs/tutorials/README.mdUpdated index to include new instanced rendering tutorial
docs/specs/instanced-rendering.mdDetailed specification for instanced rendering architecture and API design
docs/features.mdDocumentation for the new render-instancing-validation feature flag
crates/lambda-rs/src/render/vertex.rsAdded VertexStepMode enum and VertexBufferLayout struct
crates/lambda-rs/src/render/validation.rsAdded validation functions for instance ranges and buffer bindings with tests
crates/lambda-rs/src/render/pipeline.rsExtended RenderPipelineBuilder with instance buffer support and step mode tracking
crates/lambda-rs/src/render/mod.rsIntegrated instance validation into render command processing
crates/lambda-rs/examples/instanced_quads.rsComplete working example rendering a 10x10 grid of instanced quads
crates/lambda-rs/Cargo.tomlAdded render-instancing-validation feature flag
crates/lambda-rs-platform/src/wgpu/vertex.rsPlatform-level VertexStepMode mapping to wgpu types
crates/lambda-rs-platform/src/wgpu/pipeline.rsUpdated pipeline builder to support step modes with wgpu integration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment threadcrates/lambda-rs/src/render/mod.rs
Comment threadcrates/lambda-rs/src/render/mod.rs
Comment threaddocs/tutorials/README.md Outdated
Comment threaddocs/tutorials/instanced-quads.md
Comment threadcrates/lambda-rs/src/render/mod.rs
Comment threadcrates/lambda-rs/src/render/mod.rs

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vmarcella
vmarcella merged commit 1cca6eb into mainNov 25, 2025
5 checks passed
@vmarcella
vmarcella deleted the vmarcella/instanced-rendering branch November 25, 2025 21:31
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@vmarcella