Skip to content

Commit

Permalink
Update some of the documentation to reflect the new structure.
Browse files Browse the repository at this point in the history
  • Loading branch information
xStrom committed May 30, 2024
1 parent fa78b50 commit ab0c5a2
Show file tree
Hide file tree
Showing 5 changed files with 322 additions and 27 deletions.
4 changes: 2 additions & 2 deletions .github/copyright.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# -g "!src/special_directory"

# Check all the standard Rust source files
output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT$\n\n" --files-without-match --multiline -g "*.rs" -g "!{shader,crates/shaders/src/cpu}" .)
output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT$\n\n" --files-without-match --multiline -g "*.rs" -g "!vello_shaders/{shader,src/cpu}" .)

if [ -n "$output" ]; then
echo -e "The following files lack the correct copyright header:\n"
Expand All @@ -20,7 +20,7 @@ if [ -n "$output" ]; then
fi

# Check all the shaders, both WGSL and CPU shaders in Rust, as they also have Unlicense
output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT OR Unlicense$\n\n" --files-without-match --multiline -g "{shader,crates/shaders/src/cpu}/**/*.{rs,wgsl}" .)
output=$(rg "^// Copyright (19|20)[\d]{2} (.+ and )?the Vello Authors( and .+)?$\n^// SPDX-License-Identifier: Apache-2\.0 OR MIT OR Unlicense$\n\n" --files-without-match --multiline -g "vello_shaders/{shader,src/cpu}/**/*.{rs,wgsl}" .)

if [ -n "$output" ]; then
echo -e "The following shader files lack the correct copyright header:\n"
Expand Down
26 changes: 13 additions & 13 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"wgsl-analyzer.customImports": {
"bbox": "${workspaceFolder}/shader/shared/bbox.wgsl",
"blend": "${workspaceFolder}/shader/shared/blend.wgsl",
"bump": "${workspaceFolder}/shader/shared/bump.wgsl",
"clip": "${workspaceFolder}/shader/shared/clip.wgsl",
"config": "${workspaceFolder}/shader/shared/config.wgsl",
"cubic": "${workspaceFolder}/shader/shared/cubic.wgsl",
"drawtag": "${workspaceFolder}/shader/shared/drawtag.wgsl",
"pathtag": "${workspaceFolder}/shader/shared/pathtag.wgsl",
"ptcl": "${workspaceFolder}/shader/shared/ptcl.wgsl",
"segment": "${workspaceFolder}/shader/shared/segment.wgsl",
"tile": "${workspaceFolder}/shader/shared/tile.wgsl",
"transform": "${workspaceFolder}/shader/shared/transform.wgsl",
"util": "${workspaceFolder}/shader/shared/util.wgsl"
"bbox": "${workspaceFolder}/vello_shaders/shader/shared/bbox.wgsl",
"blend": "${workspaceFolder}/vello_shaders/shader/shared/blend.wgsl",
"bump": "${workspaceFolder}/vello_shaders/shader/shared/bump.wgsl",
"clip": "${workspaceFolder}/vello_shaders/shader/shared/clip.wgsl",
"config": "${workspaceFolder}/vello_shaders/shader/shared/config.wgsl",
"cubic": "${workspaceFolder}/vello_shaders/shader/shared/cubic.wgsl",
"drawtag": "${workspaceFolder}/vello_shaders/shader/shared/drawtag.wgsl",
"pathtag": "${workspaceFolder}/vello_shaders/shader/shared/pathtag.wgsl",
"ptcl": "${workspaceFolder}/vello_shaders/shader/shared/ptcl.wgsl",
"segment": "${workspaceFolder}/vello_shaders/shader/shared/segment.wgsl",
"tile": "${workspaceFolder}/vello_shaders/shader/shared/tile.wgsl",
"transform": "${workspaceFolder}/vello_shaders/shader/shared/transform.wgsl",
"util": "${workspaceFolder}/vello_shaders/shader/shared/util.wgsl"
},
"wgsl-analyzer.diagnostics.nagaVersion": "main",
"wgsl-analyzer.preprocessor.shaderDefs": [
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,9 +274,9 @@ Licensed under either of

at your option.

In addition, all files in the [`shader`](https://github.com/linebender/vello/tree/main/shader) and [`src/cpu_shader`](https://github.com/linebender/vello/tree/main/src/cpu_shader)
In addition, all files in the [`vello_shaders/shader`](https://github.com/linebender/vello/tree/main/vello_shaders/shader) and [`vello_shaders/src/cpu`](https://github.com/linebender/vello/tree/main/vello_shaders/src/cpu)
directories and subdirectories thereof are alternatively licensed under
the Unlicense ([shader/UNLICENSE](https://github.com/linebender/vello/tree/main/shader/UNLICENSE) or <http://unlicense.org/>).
the Unlicense ([shader/UNLICENSE](https://github.com/linebender/vello/tree/main/vello_shaders/shader/UNLICENSE) or <http://unlicense.org/>).
For clarity, these files are also licensed under either of the above licenses.
The intent is for this research to be used in as broad a context as possible.

Expand Down
19 changes: 9 additions & 10 deletions doc/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,15 @@ Our current priority is to fill in missing features and to fix rendering artifac

The repository is structured as such:

- `crates/`
- `encoding/` - Types that represent the data that needs to be rendered.
- `shaders/` - Infrastructure to preprocess and cross-compile shaders at compile time; see "Shader templating".
- `cpu/` - Functions that perform the same work as their equivalently-named WGSL shaders for the CPU fallbacks. The name is a bit loose; they're "shaders" in the sense that they work on resource bindings with the exact same layout as actual GPU shaders.
- `tests/` - Helper code for writing tests; current has a single smoke test and not much else.
- `doc/` - Various documents detailing the vision for Vello as it was developed. This directory should probably be refactored away; adding to it not recommended.
- `examples/` - Example projects using Vello. Each example is its own crate, with its own dependencies. The simplest example is the `shapes` one.
- `shader/` - This is where the magic happens. WGSL shaders that define the compute operations (often variations of prefix sum) that Vello does to render a scene.
- `shared/` - Shared types, functions and constants included in other shaders through non-standard `#import` preprocessor directives (see "Shader templating").
- `src/` - Code for the main `vello` crate.
- `examples/` - Example projects using Vello. Each example is its own crate, with its own dependencies. The simplest example is called `simple`.
- `vello/` - Code for the main `vello` crate.
- `vello_encoding/` - Types that represent the data that needs to be rendered.
- `vello_shaders/` - Infrastructure to preprocess and cross-compile shaders at compile time; see "Shader templating".
- `shader/` - This is where the magic happens. WGSL shaders that define the compute operations (often variations of prefix sum) that Vello does to render a scene.
- `shared/` - Shared types, functions and constants included in other shaders through non-standard `#import` preprocessor directives (see "Shader templating").
- `cpu/` - Functions that perform the same work as their equivalently-named WGSL shaders for the CPU fallbacks. The name is a bit loose; they're "shaders" in the sense that they work on resource bindings with the exact same layout as actual GPU shaders.
- `vello_tests/` - Helper code for writing tests; current has a single smoke test and not much else.


## Shader templating
Expand Down Expand Up @@ -81,7 +80,7 @@ In principle, other backends could consume a `Recording`, but for now the only i

### CPU rendering

The code in `cpu_shader/*.rs` and `cpu_dispatch.rs` provides *some* support for CPU-side rendering. It's in an awkward place right now:
The code in `vello_shaders/src/cpu/*.rs` and `vello_shaders/src/cpu.rs` provides *some* support for CPU-side rendering. It's in an awkward place right now:

- It's called through WgpuEngine, so the dependency on wgpu is still there.
- Fine rasterization (the part at the end that puts pixels on screen) doesn't work in CPU yet (see [#386]).
Expand Down
Loading

0 comments on commit ab0c5a2

Please sign in to comment.