Multi pass
This commit is contained in:
@@ -152,10 +152,23 @@ Pass fields:
|
||||
- `id`: required pass identifier. It must be a valid shader identifier and unique inside the package.
|
||||
- `source`: required Slang source path relative to the package directory.
|
||||
- `entryPoint`: optional Slang function for this pass. Defaults to the package-level `entryPoint`.
|
||||
- `inputs`: optional list of named inputs. Current reserved names include `layerInput` and future pass output names.
|
||||
- `inputs`: optional list of named inputs. The first input is used as the pass input texture.
|
||||
- `output`: optional output name. Use `layerOutput` for the final visible layer result.
|
||||
|
||||
Current runtime note: pass manifests are parsed and every declared pass is Slang-validated/compiled, but execution still uses the first pass until multipass render-target routing is enabled. Existing single-pass shaders are unaffected.
|
||||
Pass input names:
|
||||
|
||||
- `layerInput`: the input to this layer, before any of its passes run.
|
||||
- `previousPass`: the previous pass output in this layer. If there is no previous pass, this falls back to `layerInput`.
|
||||
- Any earlier pass `id` or `output` name from the same layer.
|
||||
|
||||
If `inputs` is omitted, the first pass samples `layerInput` and later passes sample `previousPass`.
|
||||
|
||||
Pass output names:
|
||||
|
||||
- `layerOutput`: the final visible output of this layer.
|
||||
- Any other name creates an intermediate 16-bit float render target that later passes may sample.
|
||||
|
||||
If the final declared pass does not explicitly output `layerOutput`, the runtime still treats that final pass as the visible layer output. Existing single-pass shaders are unaffected.
|
||||
|
||||
## Slang Entry Point
|
||||
|
||||
|
||||
Reference in New Issue
Block a user