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

Migrate the repository to a virtual workspace. #590

Merged
merged 14 commits into from
Jun 3, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update some of the documentation to reflect the new structure.
xStrom committed May 30, 2024
commit e8c2cfda9687f71f075fe98b240b2a262e72e731
4 changes: 2 additions & 2 deletions .github/copyright.sh
Original file line number Diff line number Diff line change
@@ -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"
@@ -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"
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": [
4 changes: 2 additions & 2 deletions README.md
Copy link
Member

Choose a reason for hiding this comment

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

I'd add a big comment at the top that this is "temporarily" duplicated in the vello folder, and updates should be preferred there.

Original file line number Diff line number Diff line change
@@ -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.

19 changes: 9 additions & 10 deletions doc/ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -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
@@ -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]).
Loading