diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-15 18:44:17 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-15 18:44:17 +0100 |
| commit | 161a59fa50bb92e3664c389fa03b95aefe349b3f (patch) | |
| tree | 71548f64b2bdea958388f9063b74137659d70306 | |
| parent | 9c3b72c710bf1ffa7e18f7c7390a425d57487eba (diff) | |
refactor(cnn): isolate CNN v2 to cnn_v2/ subdirectory
Move all CNN v2 files to dedicated cnn_v2/ directory to prepare for CNN v3 development. Zero functional changes.
Structure:
- cnn_v2/src/ - C++ effect implementation
- cnn_v2/shaders/ - WGSL shaders (6 files)
- cnn_v2/weights/ - Binary weights (3 files)
- cnn_v2/training/ - Python training scripts (4 files)
- cnn_v2/scripts/ - Shell scripts (train_cnn_v2_full.sh)
- cnn_v2/tools/ - Validation tools (HTML)
- cnn_v2/docs/ - Documentation (4 markdown files)
Changes:
- Update CMake source list to cnn_v2/src/cnn_v2_effect.cc
- Update assets.txt with relative paths to cnn_v2/
- Update includes to ../../cnn_v2/src/cnn_v2_effect.h
- Add PROJECT_ROOT resolution to Python/shell scripts
- Update doc references in HOWTO.md, TODO.md
- Add cnn_v2/README.md
Verification: 34/34 tests passing, demo runs correctly.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
| -rw-r--r-- | TODO.md | 2 | ||||
| -rw-r--r-- | cmake/DemoSourceLists.cmake | 2 | ||||
| -rw-r--r-- | cnn_v2/README.md | 60 | ||||
| -rw-r--r-- | cnn_v2/docs/CNN_V2.md (renamed from doc/CNN_V2.md) | 0 | ||||
| -rw-r--r-- | cnn_v2/docs/CNN_V2_BINARY_FORMAT.md (renamed from doc/CNN_V2_BINARY_FORMAT.md) | 0 | ||||
| -rw-r--r-- | cnn_v2/docs/CNN_V2_DEBUG_TOOLS.md (renamed from doc/CNN_V2_DEBUG_TOOLS.md) | 0 | ||||
| -rw-r--r-- | cnn_v2/docs/CNN_V2_WEB_TOOL.md (renamed from doc/CNN_V2_WEB_TOOL.md) | 0 | ||||
| -rwxr-xr-x | cnn_v2/scripts/train_cnn_v2_full.sh (renamed from scripts/train_cnn_v2_full.sh) | 10 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_compute.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_compute.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_layer_0.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_layer_0.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_layer_1.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_layer_1.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_layer_2.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_layer_2.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_layer_template.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_layer_template.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/shaders/cnn_v2_static.wgsl (renamed from workspaces/main/shaders/cnn_v2/cnn_v2_static.wgsl) | 0 | ||||
| -rw-r--r-- | cnn_v2/src/cnn_v2_effect.cc (renamed from src/effects/cnn_v2_effect.cc) | 2 | ||||
| -rw-r--r-- | cnn_v2/src/cnn_v2_effect.h (renamed from src/effects/cnn_v2_effect.h) | 0 | ||||
| -rw-r--r-- | cnn_v2/tools/cnn_v2_test/README.md (renamed from tools/cnn_v2_test/README.md) | 0 | ||||
| -rw-r--r-- | cnn_v2/tools/cnn_v2_test/index.html (renamed from tools/cnn_v2_test/index.html) | 0 | ||||
| -rwxr-xr-x | cnn_v2/training/export_cnn_v2_shader.py (renamed from training/export_cnn_v2_shader.py) | 6 | ||||
| -rwxr-xr-x | cnn_v2/training/export_cnn_v2_weights.py (renamed from training/export_cnn_v2_weights.py) | 8 | ||||
| -rwxr-xr-x | cnn_v2/training/gen_identity_weights.py (renamed from training/gen_identity_weights.py) | 6 | ||||
| -rwxr-xr-x | cnn_v2/training/train_cnn_v2.py (renamed from training/train_cnn_v2.py) | 0 | ||||
| -rw-r--r-- | doc/HOWTO.md | 32 | ||||
| -rw-r--r-- | src/app/test_demo.cc | 2 | ||||
| -rw-r--r-- | src/gpu/demo_effects.h | 2 | ||||
| -rw-r--r-- | workspaces/main/assets.txt | 6 |
26 files changed, 107 insertions, 31 deletions
@@ -28,7 +28,7 @@ Self-contained workspaces for parallel demo development. Enhanced CNN post-processing with multi-dimensional feature inputs. -**Design:** `doc/CNN_V2.md` +**Design:** `cnn_v2/docs/CNN_V2.md` **Status:** - ✅ Full implementation complete and validated diff --git a/cmake/DemoSourceLists.cmake b/cmake/DemoSourceLists.cmake index dac7a09..1345ed4 100644 --- a/cmake/DemoSourceLists.cmake +++ b/cmake/DemoSourceLists.cmake @@ -40,7 +40,7 @@ set(COMMON_GPU_EFFECTS src/effects/chroma_aberration_effect.cc src/effects/vignette_effect.cc src/effects/cnn_effect.cc - src/effects/cnn_v2_effect.cc + cnn_v2/src/cnn_v2_effect.cc src/gpu/post_process_helper.cc src/gpu/shaders.cc src/effects/hybrid_3d_effect.cc diff --git a/cnn_v2/README.md b/cnn_v2/README.md new file mode 100644 index 0000000..ef0cf44 --- /dev/null +++ b/cnn_v2/README.md @@ -0,0 +1,60 @@ +# CNN v2: Parametric Post-Processing Neural Network + +**Architecture:** 3-layer compute, storage buffer (~3.2 KB) +**Features:** 7D static (RGBD + UV + sin + bias), sigmoid activation + +## Quick Start + +```bash +./cnn_v2/scripts/train_cnn_v2_full.sh +``` + +## Documentation + +- [CNN_V2.md](docs/CNN_V2.md) - Architecture and implementation details +- [CNN_V2_BINARY_FORMAT.md](docs/CNN_V2_BINARY_FORMAT.md) - Weight format specification +- [CNN_V2_WEB_TOOL.md](docs/CNN_V2_WEB_TOOL.md) - Validation tool documentation +- [CNN_V2_DEBUG_TOOLS.md](docs/CNN_V2_DEBUG_TOOLS.md) - Debugging and analysis tools + +## Integration + +- **C++:** `cnn_v2/src/cnn_v2_effect.{h,cc}` +- **Assets:** `workspaces/main/assets.txt` (lines 47-49) +- **Test:** `src/tests/gpu/test_demo_effects.cc` (line 93) + +## Directory Structure + +``` +cnn_v2/ +├── README.md # This file +├── src/ +│ ├── cnn_v2_effect.h # Effect header +│ └── cnn_v2_effect.cc # Effect implementation +├── shaders/ # WGSL shaders (6 files) +├── weights/ # Binary weights (3 files) +├── training/ # Python training scripts (4 files) +├── scripts/ # Shell scripts (train_cnn_v2_full.sh) +├── tools/ # Validation tools (HTML) +└── docs/ # Documentation (4 markdown files) +``` + +## Training Pipeline + +1. **Train model:** `./cnn_v2/scripts/train_cnn_v2_full.sh` +2. **Export weights:** Automatic (binary format, ~3.2 KB) +3. **Validate:** HTML tool at `cnn_v2/tools/cnn_v2_test/index.html` + +For detailed training options: `./cnn_v2/scripts/train_cnn_v2_full.sh --help` + +## Key Features + +- **Parametric static features:** 7D input (RGBD + UV + sin encoding + bias) +- **Storage buffer architecture:** Dynamic layer count, compact binary format +- **Sigmoid activation:** Smooth gradients, prevents training collapse +- **Patch-based training:** Sample-efficient, focuses on salient regions +- **Sub-10KB target:** Achieved with 3-layer model (~3.2 KB) + +## Next Steps + +- **8-bit quantization:** 2× size reduction (~1.6 KB) via quantization-aware training (QAT) +- **CNN v3:** U-Net architecture for enhanced quality (separate directory) diff --git a/doc/CNN_V2.md b/cnn_v2/docs/CNN_V2.md index b7fd6f8..b7fd6f8 100644 --- a/doc/CNN_V2.md +++ b/cnn_v2/docs/CNN_V2.md diff --git a/doc/CNN_V2_BINARY_FORMAT.md b/cnn_v2/docs/CNN_V2_BINARY_FORMAT.md index 59c859d..59c859d 100644 --- a/doc/CNN_V2_BINARY_FORMAT.md +++ b/cnn_v2/docs/CNN_V2_BINARY_FORMAT.md diff --git a/doc/CNN_V2_DEBUG_TOOLS.md b/cnn_v2/docs/CNN_V2_DEBUG_TOOLS.md index 8d1289a..8d1289a 100644 --- a/doc/CNN_V2_DEBUG_TOOLS.md +++ b/cnn_v2/docs/CNN_V2_DEBUG_TOOLS.md diff --git a/doc/CNN_V2_WEB_TOOL.md b/cnn_v2/docs/CNN_V2_WEB_TOOL.md index b6f5b0b..b6f5b0b 100644 --- a/doc/CNN_V2_WEB_TOOL.md +++ b/cnn_v2/docs/CNN_V2_WEB_TOOL.md diff --git a/scripts/train_cnn_v2_full.sh b/cnn_v2/scripts/train_cnn_v2_full.sh index 078ea28..a21c1ac 100755 --- a/scripts/train_cnn_v2_full.sh +++ b/cnn_v2/scripts/train_cnn_v2_full.sh @@ -53,7 +53,7 @@ cd "$PROJECT_ROOT" # Helper functions export_weights() { - python3 training/export_cnn_v2_weights.py "$1" --output-weights "$2" --quiet + python3 "$SCRIPT_DIR/../training/export_cnn_v2_weights.py" "$1" --output-weights "$2" --quiet } find_latest_checkpoint() { @@ -64,6 +64,10 @@ build_target() { cmake --build build -j4 --target "$1" > /dev/null 2>&1 } +# Path resolution for running from any directory +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" + # Default configuration INPUT_DIR="training/input" TARGET_DIR="training/target_1" @@ -82,7 +86,7 @@ MIP_LEVEL=0 GRAYSCALE_LOSS=false FULL_IMAGE_MODE=false IMAGE_SIZE=256 -OUTPUT_WEIGHTS="workspaces/main/weights/cnn_v2_weights.bin" +OUTPUT_WEIGHTS="${PROJECT_ROOT}/workspaces/main/weights/cnn_v2_weights.bin" # Parse arguments VALIDATE_ONLY=false @@ -306,7 +310,7 @@ if [ "$VALIDATE_ONLY" = false ]; then # Step 1: Train model echo "[1/4] Training CNN v2 model..." -python3 training/train_cnn_v2.py \ +python3 "$SCRIPT_DIR/../training/train_cnn_v2.py" \ --input "$INPUT_DIR" \ --target "$TARGET_DIR" \ $TRAINING_MODE_ARGS \ diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_compute.wgsl b/cnn_v2/shaders/cnn_v2_compute.wgsl index cdbfd74..cdbfd74 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_compute.wgsl +++ b/cnn_v2/shaders/cnn_v2_compute.wgsl diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_0.wgsl b/cnn_v2/shaders/cnn_v2_layer_0.wgsl index 8e14957..8e14957 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_0.wgsl +++ b/cnn_v2/shaders/cnn_v2_layer_0.wgsl diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_1.wgsl b/cnn_v2/shaders/cnn_v2_layer_1.wgsl index f490d13..f490d13 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_1.wgsl +++ b/cnn_v2/shaders/cnn_v2_layer_1.wgsl diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_2.wgsl b/cnn_v2/shaders/cnn_v2_layer_2.wgsl index 2f9836a..2f9836a 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_2.wgsl +++ b/cnn_v2/shaders/cnn_v2_layer_2.wgsl diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_template.wgsl b/cnn_v2/shaders/cnn_v2_layer_template.wgsl index 1bf6819..1bf6819 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_layer_template.wgsl +++ b/cnn_v2/shaders/cnn_v2_layer_template.wgsl diff --git a/workspaces/main/shaders/cnn_v2/cnn_v2_static.wgsl b/cnn_v2/shaders/cnn_v2_static.wgsl index 309e832..309e832 100644 --- a/workspaces/main/shaders/cnn_v2/cnn_v2_static.wgsl +++ b/cnn_v2/shaders/cnn_v2_static.wgsl diff --git a/src/effects/cnn_v2_effect.cc b/cnn_v2/src/cnn_v2_effect.cc index 7127aae..60538d4 100644 --- a/src/effects/cnn_v2_effect.cc +++ b/cnn_v2/src/cnn_v2_effect.cc @@ -1,6 +1,6 @@ // CNN v2 Effect Implementation -#include "effects/cnn_v2_effect.h" +#include "cnn_v2_effect.h" #if defined(USE_TEST_ASSETS) #include "test_assets.h" diff --git a/src/effects/cnn_v2_effect.h b/cnn_v2/src/cnn_v2_effect.h index 7960b4f..7960b4f 100644 --- a/src/effects/cnn_v2_effect.h +++ b/cnn_v2/src/cnn_v2_effect.h diff --git a/tools/cnn_v2_test/README.md b/cnn_v2/tools/cnn_v2_test/README.md index d41a00f..d41a00f 100644 --- a/tools/cnn_v2_test/README.md +++ b/cnn_v2/tools/cnn_v2_test/README.md diff --git a/tools/cnn_v2_test/index.html b/cnn_v2/tools/cnn_v2_test/index.html index 84702d5..84702d5 100644 --- a/tools/cnn_v2_test/index.html +++ b/cnn_v2/tools/cnn_v2_test/index.html diff --git a/training/export_cnn_v2_shader.py b/cnn_v2/training/export_cnn_v2_shader.py index 1c74ad0..8692a62 100755 --- a/training/export_cnn_v2_shader.py +++ b/cnn_v2/training/export_cnn_v2_shader.py @@ -13,6 +13,10 @@ import numpy as np import torch from pathlib import Path +# Path resolution for running from any directory +SCRIPT_DIR = Path(__file__).parent +PROJECT_ROOT = SCRIPT_DIR.parent.parent + def export_layer_shader(layer_idx, weights, kernel_size, output_dir, mip_level=0, is_output_layer=False): """Generate WGSL compute shader for a single CNN layer. @@ -203,7 +207,7 @@ def export_checkpoint(checkpoint_path, output_dir): def main(): parser = argparse.ArgumentParser(description='Export CNN v2 checkpoint to WGSL shaders') parser.add_argument('checkpoint', type=str, help='Path to checkpoint .pth file') - parser.add_argument('--output-dir', type=str, default='workspaces/main/shaders', + parser.add_argument('--output-dir', type=str, default=str(PROJECT_ROOT / 'workspaces/main/shaders'), help='Output directory for shaders') args = parser.parse_args() diff --git a/training/export_cnn_v2_weights.py b/cnn_v2/training/export_cnn_v2_weights.py index f64bd8d..d66b980 100755 --- a/training/export_cnn_v2_weights.py +++ b/cnn_v2/training/export_cnn_v2_weights.py @@ -11,6 +11,10 @@ import torch import struct from pathlib import Path +# Path resolution for running from any directory +SCRIPT_DIR = Path(__file__).parent +PROJECT_ROOT = SCRIPT_DIR.parent.parent + def export_weights_binary(checkpoint_path, output_path, quiet=False): """Export CNN v2 weights to binary format. @@ -261,9 +265,9 @@ fn main(@builtin(global_invocation_id) id: vec3<u32>) { def main(): parser = argparse.ArgumentParser(description='Export CNN v2 weights to binary format') parser.add_argument('checkpoint', type=str, help='Path to checkpoint .pth file') - parser.add_argument('--output-weights', type=str, default='workspaces/main/weights/cnn_v2_weights.bin', + parser.add_argument('--output-weights', type=str, default=str(PROJECT_ROOT / 'workspaces/main/weights/cnn_v2_weights.bin'), help='Output binary weights file') - parser.add_argument('--output-shader', type=str, default='workspaces/main/shaders', + parser.add_argument('--output-shader', type=str, default=str(PROJECT_ROOT / 'workspaces/main/shaders'), help='Output directory for shader template') parser.add_argument('--quiet', action='store_true', help='Suppress detailed output') diff --git a/training/gen_identity_weights.py b/cnn_v2/training/gen_identity_weights.py index 7865d68..08eecc6 100755 --- a/training/gen_identity_weights.py +++ b/cnn_v2/training/gen_identity_weights.py @@ -21,6 +21,10 @@ import numpy as np import struct from pathlib import Path +# Path resolution for running from any directory +SCRIPT_DIR = Path(__file__).parent +PROJECT_ROOT = SCRIPT_DIR.parent.parent + def generate_identity_weights(output_path, kernel_size=1, mip_level=0, mix=False, p47=False): """Generate identity weights: output = input (ignores static features). @@ -149,7 +153,7 @@ def generate_identity_weights(output_path, kernel_size=1, mip_level=0, mix=False def main(): parser = argparse.ArgumentParser(description='Generate identity CNN v2 weights') parser.add_argument('output', type=str, nargs='?', - default='workspaces/main/weights/cnn_v2_identity.bin', + default=str(PROJECT_ROOT / 'workspaces/main/weights/cnn_v2_identity.bin'), help='Output .bin file path') parser.add_argument('--kernel-size', type=int, default=1, help='Kernel size (default: 1×1)') diff --git a/training/train_cnn_v2.py b/cnn_v2/training/train_cnn_v2.py index 9e5df2f..9e5df2f 100755 --- a/training/train_cnn_v2.py +++ b/cnn_v2/training/train_cnn_v2.py diff --git a/doc/HOWTO.md b/doc/HOWTO.md index 0dc9ec7..a309b27 100644 --- a/doc/HOWTO.md +++ b/doc/HOWTO.md @@ -145,31 +145,31 @@ Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding **Complete Pipeline** (recommended): ```bash # Train → Export → Build → Validate (default config) -./scripts/train_cnn_v2_full.sh +./cnn_v2/scripts/train_cnn_v2_full.sh # Rapid debug (1 layer, 3×3, 5 epochs) -./scripts/train_cnn_v2_full.sh --num-layers 1 --kernel-sizes 3 --epochs 5 --output-weights test.bin +./cnn_v2/scripts/train_cnn_v2_full.sh --num-layers 1 --kernel-sizes 3 --epochs 5 --output-weights test.bin # Custom training parameters -./scripts/train_cnn_v2_full.sh --epochs 500 --batch-size 32 --checkpoint-every 100 +./cnn_v2/scripts/train_cnn_v2_full.sh --epochs 500 --batch-size 32 --checkpoint-every 100 # Custom architecture -./scripts/train_cnn_v2_full.sh --kernel-sizes 3,5,3 --num-layers 3 --mip-level 1 +./cnn_v2/scripts/train_cnn_v2_full.sh --kernel-sizes 3,5,3 --num-layers 3 --mip-level 1 # Custom output path -./scripts/train_cnn_v2_full.sh --output-weights workspaces/test/cnn_weights.bin +./cnn_v2/scripts/train_cnn_v2_full.sh --output-weights workspaces/test/cnn_weights.bin # Grayscale loss (compute loss on luminance instead of RGBA) -./scripts/train_cnn_v2_full.sh --grayscale-loss +./cnn_v2/scripts/train_cnn_v2_full.sh --grayscale-loss # Custom directories -./scripts/train_cnn_v2_full.sh --input training/input --target training/target_2 +./cnn_v2/scripts/train_cnn_v2_full.sh --input training/input --target training/target_2 # Full-image mode (instead of patch-based) -./scripts/train_cnn_v2_full.sh --full-image --image-size 256 +./cnn_v2/scripts/train_cnn_v2_full.sh --full-image --image-size 256 # See all options -./scripts/train_cnn_v2_full.sh --help +./cnn_v2/scripts/train_cnn_v2_full.sh --help ``` **Defaults:** 200 epochs, 3×3 kernels, 8→4→4 channels, batch-size 16, patch-based (8×8, harris detector). @@ -184,33 +184,33 @@ Enhanced CNN with parametric static features (7D input: RGBD + UV + sin encoding **Validation Only** (skip training): ```bash # Use latest checkpoint -./scripts/train_cnn_v2_full.sh --validate +./cnn_v2/scripts/train_cnn_v2_full.sh --validate # Use specific checkpoint -./scripts/train_cnn_v2_full.sh --validate checkpoints/checkpoint_epoch_50.pth +./cnn_v2/scripts/train_cnn_v2_full.sh --validate checkpoints/checkpoint_epoch_50.pth ``` **Manual Training:** ```bash # Default config -./training/train_cnn_v2.py \ +./cnn_v2/training/train_cnn_v2.py \ --input training/input/ --target training/target_2/ \ --epochs 100 --batch-size 16 --checkpoint-every 5 # Custom architecture (per-layer kernel sizes) -./training/train_cnn_v2.py \ +./cnn_v2/training/train_cnn_v2.py \ --input training/input/ --target training/target_2/ \ --kernel-sizes 1,3,5 \ --epochs 5000 --batch-size 16 # Mip-level for p0-p3 features (0=original, 1=half, 2=quarter, 3=eighth) -./training/train_cnn_v2.py \ +./cnn_v2/training/train_cnn_v2.py \ --input training/input/ --target training/target_2/ \ --mip-level 1 \ --epochs 100 --batch-size 16 # Grayscale loss (compute loss on luminance Y = 0.299*R + 0.587*G + 0.114*B) -./training/train_cnn_v2.py \ +./cnn_v2/training/train_cnn_v2.py \ --input training/input/ --target training/target_2/ \ --grayscale-loss \ --epochs 100 --batch-size 16 @@ -236,7 +236,7 @@ Use `--quiet` for streamlined output in scripts (used automatically by train_cnn ``` -**Validation:** Use HTML tool (`tools/cnn_v2_test/index.html`) for CNN v2 validation. See `doc/CNN_V2_WEB_TOOL.md`. +**Validation:** Use HTML tool (`cnn_v2/tools/cnn_v2_test/index.html`) for CNN v2 validation. See `cnn_v2/docs/CNN_V2_WEB_TOOL.md`. --- diff --git a/src/app/test_demo.cc b/src/app/test_demo.cc index 5775e74..f512a5f 100644 --- a/src/app/test_demo.cc +++ b/src/app/test_demo.cc @@ -21,7 +21,7 @@ extern void LoadTimeline(MainSequence& main_seq, const GpuContext& ctx); // Inline peak meter effect for debugging audio-visual sync #include "effects/cnn_effect.h" -#include "effects/cnn_v2_effect.h" +#include "../../cnn_v2/src/cnn_v2_effect.h" #include "gpu/post_process_helper.h" #include "gpu/shader_composer.h" diff --git a/src/gpu/demo_effects.h b/src/gpu/demo_effects.h index d4df20b..60ca581 100644 --- a/src/gpu/demo_effects.h +++ b/src/gpu/demo_effects.h @@ -19,7 +19,7 @@ #include "effects/chroma_aberration_effect.h" #include "effects/circle_mask_effect.h" #include "effects/cnn_effect.h" -#include "effects/cnn_v2_effect.h" +#include "../../cnn_v2/src/cnn_v2_effect.h" #include "effects/distort_effect.h" #include "effects/fade_effect.h" #include "effects/flash_cube_effect.h" diff --git a/workspaces/main/assets.txt b/workspaces/main/assets.txt index 972cc8b..e1cf2bc 100644 --- a/workspaces/main/assets.txt +++ b/workspaces/main/assets.txt @@ -44,9 +44,9 @@ SHADER_CNN_CONV5X5, NONE, shaders/cnn/cnn_conv5x5.wgsl, "CNN 5x5 Convolution" SHADER_CNN_CONV7X7, NONE, shaders/cnn/cnn_conv7x7.wgsl, "CNN 7x7 Convolution" SHADER_CNN_WEIGHTS, NONE, shaders/cnn/cnn_weights_generated.wgsl, "CNN Weights (Generated)" SHADER_CNN_LAYER, NONE, shaders/cnn/cnn_layer.wgsl, "CNN Layer Shader" -SHADER_CNN_V2_STATIC, NONE, shaders/cnn_v2/cnn_v2_static.wgsl, "CNN v2 Static Features" -SHADER_CNN_V2_COMPUTE, NONE, shaders/cnn_v2/cnn_v2_compute.wgsl, "CNN v2 Compute (Storage Buffer)" -WEIGHTS_CNN_V2, NONE, weights/cnn_v2_weights.bin, "CNN v2 Binary Weights" +SHADER_CNN_V2_STATIC, NONE, ../../cnn_v2/shaders/cnn_v2_static.wgsl, "CNN v2 Static Features" +SHADER_CNN_V2_COMPUTE, NONE, ../../cnn_v2/shaders/cnn_v2_compute.wgsl, "CNN v2 Compute (Storage Buffer)" +WEIGHTS_CNN_V2, NONE, ../../cnn_v2/weights/cnn_v2_weights.bin, "CNN v2 Binary Weights" SHADER_SOLARIZE, NONE, shaders/solarize.wgsl, "Solarize Shader" SHADER_DISTORT, NONE, shaders/distort.wgsl, "Distort Shader" SHADER_CHROMA_ABERRATION, NONE, shaders/chroma_aberration.wgsl, "Chroma Aberration Shader" |
