You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -44,9 +44,9 @@ This document enumerates the primary Cargo features exposed by the workspace rel
44
44
## Render Validation
45
45
46
46
Umbrella features (crate: `lambda-rs`)
47
-
-`render-validation`: enables common builder/pipeline validation logs (MSAA counts, depth clear advisories, stencil format upgrades).
48
-
-`render-validation-strict`: includes `render-validation` and enables per-draw SetPipeline-time compatibility checks.
49
-
-`render-validation-all`: superset of `render-validation-strict` and enables device-probing advisories.
47
+
-`render-validation`: enables common builder/pipeline validation logs (MSAA counts, depth clear advisories, stencil format upgrades) by composing granular validation features.
48
+
-`render-validation-strict`: includes `render-validation` and enables per-draw SetPipeline-time compatibility checks by composing additional granular encoder features.
49
+
-`render-validation-all`: superset of `render-validation-strict` and enables device-probing advisories and instancing validation. This umbrella includes all granular render-validation flags, including `render-validation-instancing`.
-`render-instancing-validation`: instance-range and per-instance buffer binding validation for `RenderCommand::Draw` and `RenderCommand::DrawIndexed`. Behavior:
60
+
-`render-validation-instancing`: instance-range and per-instance buffer binding validation for `RenderCommand::Draw` and `RenderCommand::DrawIndexed`. Behavior:
61
61
- Validates that `instances.start <= instances.end` and treats `start == end` as a no-op (draw is skipped).
62
62
- Ensures that all vertex buffer slots marked as per-instance on the active pipeline have been bound in the current render pass.
63
63
- Adds per-draw checks proportional to the number of instanced draws and per-instance slots; SHOULD be enabled only when diagnosing instancing issues.
-`cargo run -p lambda-rs --features render-validation-strict`
79
+
- Enable all validations, including device advisories and instancing validation, in release:
80
+
-`cargo test -p lambda-rs --features render-validation-all`
79
81
- Enable only MSAA validation in release:
80
82
-`cargo test -p lambda-rs --features render-validation-msaa`
81
83
82
84
## Changelog
85
+
- 0.1.3 (2025-11-25): Rename the instancing validation feature to `render-validation-instancing`, clarify umbrella composition, and update metadata.
86
+
- 0.1.2 (2025-11-25): Clarify umbrella versus granular validation features, record that `render-validation-all` includes `render-instancing-validation`, and update metadata.
83
87
- 0.1.1 (2025-11-25): Document `render-instancing-validation` behavior and update metadata.
84
88
- 0.1.0 (2025-11-17): Initial document introducing validation features and behavior by build type.
- The `lambda-rs` crate MUST treat `instances = 0..1` as the default
169
169
single-instance behavior used by existing rendering paths.
170
170
- Feature flags (`lambda-rs`)
171
-
-`render-instancing-validation`
171
+
-`render-validation-instancing`
172
172
- Owning crate: `lambda-rs`.
173
173
- Default: disabled in release builds; MAY be enabled in debug builds or
174
174
by opt-in.
@@ -211,15 +211,19 @@ App Code
211
211
and instance) before issuing `Draw` or `DrawIndexed` commands that rely on
212
212
those slots.
213
213
- Validation behavior
214
-
- When `render-instancing-validation` and `render-validation-encoder` are
215
-
enabled, the `lambda-rs` crate SHOULD:
214
+
- When `render-validation-instancing` is enabled (or when `debug_assertions`
215
+
are active), the `lambda-rs` crate SHOULD:
216
216
- Verify that all buffer slots used by per-instance attributes are bound
217
217
before a draw that uses those attributes.
218
218
- Emit a clear error when a draw is issued with an `instances` range whose
219
219
upper bound exceeds expectations for the instance buffer size, when this
220
220
information is available.
221
221
- Check that `instances.start <= instances.end` and treat negative-length
222
222
ranges as configuration errors.
223
+
- Umbrella features such as `render-validation-all` MAY include
224
+
`render-validation-instancing` for convenience, but code and tests MUST
225
+
gate instancing behavior on the granular `render-validation-instancing`
226
+
feature (plus `debug_assertions`), not on umbrella feature names.
223
227
224
228
### Validation and Errors
225
229
@@ -233,7 +237,7 @@ App Code
233
237
-`BindVertexBuffer` MUST reference a buffer created with `BufferType::Vertex`
234
238
and a slot index that is less than the number of vertex buffer layouts
235
239
declared on the pipeline.
236
-
- When `render-instancing-validation` is enabled, the `lambda-rs` crate SHOULD:
240
+
- When `render-validation-instancing` is enabled, the `lambda-rs` crate SHOULD:
237
241
- Verify that the set of bound buffers covers all pipeline slots that
238
242
declare per-instance attributes before a draw is issued.
239
243
- Log an error if a draw is issued with a per-instance attribute whose slot
@@ -369,6 +373,8 @@ relevant code and tests, for example in the pull request description.
369
373
370
374
## Changelog
371
375
376
+
- 2025-11-25 (v0.1.5) — Rename the granular instancing validation feature to `render-validation-instancing`, clarify naming in feature documentation, and update metadata.
377
+
- 2025-11-25 (v0.1.4) — Clarify that instancing validation is gated by the granular `render-instancing-validation` feature (and `debug_assertions`) and may be included in umbrella features such as `render-validation-all`; update metadata.
372
378
- 2025-11-25 (v0.1.3) — Mark existing draw paths as compatible with `instances = 0..1`, record the addition of an instanced rendering example, and update metadata.
373
379
- 2025-11-25 (v0.1.2) — Update terminology to reference crates by name, remove per-file implementation locations from the Requirements Checklist, and mark instancing validation features as implemented in `lambda-rs`.
374
380
- 2025-11-24 (v0.1.1) — Mark initial instancing layout and step mode support as implemented in the Requirements Checklist; metadata updated.
@@ -479,7 +479,7 @@ The commands bind both vertex buffers and the index buffer before issuing `DrawI
479
479
480
480
- Vertex attribute locations in the shaders MUST match the `VertexAttribute` configuration for both the per-vertex and per-instance buffers.
481
481
- The instance buffer MUST be bound on the same slot that `with_instance_buffer` uses; binding a different slot will lead to incorrect or undefined attribute data during rendering.
482
-
- Instance ranges for `DrawIndexed` MUST remain within the logical count of instances created for the instance buffer; validation features such as `render-instancing-validation` SHOULD be enabled when developing new instanced render paths.
482
+
- Instance ranges for `DrawIndexed` MUST remain within the logical count of instances created for the instance buffer; validation features such as `render-validation-instancing` SHOULD be enabled when developing new instanced render paths.
483
483
- Per-instance data MAY be updated each frame to animate offsets or colors; static data is sufficient for verifying buffer layouts and instance ranges.
484
484
485
485
## Conclusion <aname="conclusion"></a>
@@ -493,8 +493,9 @@ This tutorial demonstrates how the `lambda-rs` crate uses per-vertex and per-ins
493
493
- Introduce a uniform buffer that applies a global transform to all instances and combine it with per-instance offsets.
494
494
- Extend the shaders to include per-instance scale or rotation and add fields to `InstanceData` to drive those transforms.
495
495
- Add a second instanced draw call that uses the same geometry but a different instance buffer to render a second grid with an alternate color pattern.
496
-
- Experiment with validation features, such as `render-instancing-validation`, by intentionally omitting the instance buffer binding and observing how configuration errors are reported.
496
+
- Experiment with validation features, such as `render-validation-instancing`, by intentionally omitting the instance buffer binding and observing how configuration errors are reported.
497
497
498
498
## Changelog <aname="changelog"></a>
499
499
500
+
- 2025-11-25 (v0.1.1) — Align feature naming with `render-validation-instancing` and update metadata.
500
501
- 2025-11-25 (v0.1.0) — Initial instanced quads tutorial describing per-vertex and per-instance buffers and the `instanced_quads` example.
0 commit comments