summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/effects/shaders.cc2
-rw-r--r--src/effects/shaders.h2
-rw-r--r--src/gpu/demo_effects.h3
-rw-r--r--src/tests/gpu/test_cnn_v3_parity.cc6
-rw-r--r--src/tests/gpu/test_demo_effects.cc5
5 files changed, 17 insertions, 1 deletions
diff --git a/src/effects/shaders.cc b/src/effects/shaders.cc
index f64e135..a74d920 100644
--- a/src/effects/shaders.cc
+++ b/src/effects/shaders.cc
@@ -117,6 +117,8 @@ const char* ntsc_rgb_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_NTSC_RGB);
const char* ntsc_yiq_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_NTSC_YIQ);
const char* gbuf_raster_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_GBUF_RASTER);
const char* gbuf_pack_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_GBUF_PACK);
+const char* gbuf_shadow_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_GBUF_SHADOW);
+const char* gbuf_view_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_GBUF_VIEW);
const char* cnn_v3_enc0_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_CNN_V3_ENC0);
const char* cnn_v3_enc1_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_CNN_V3_ENC1);
const char* cnn_v3_bottleneck_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_CNN_V3_BOTTLENECK);
diff --git a/src/effects/shaders.h b/src/effects/shaders.h
index 4a77597..1664706 100644
--- a/src/effects/shaders.h
+++ b/src/effects/shaders.h
@@ -23,6 +23,8 @@ extern const char* ntsc_yiq_shader_wgsl;
// CNN v3 G-buffer shaders
extern const char* gbuf_raster_wgsl;
extern const char* gbuf_pack_wgsl;
+extern const char* gbuf_shadow_wgsl;
+extern const char* gbuf_view_wgsl;
// CNN v3 inference shaders
extern const char* cnn_v3_enc0_wgsl;
diff --git a/src/gpu/demo_effects.h b/src/gpu/demo_effects.h
index 66b920c..edb4a23 100644
--- a/src/gpu/demo_effects.h
+++ b/src/gpu/demo_effects.h
@@ -32,9 +32,10 @@
#include "effects/scratch_effect.h"
#include "effects/ntsc_effect.h"
-// CNN v3 G-buffer + inference
+// CNN v3 G-buffer + inference + debug view
#include "../../cnn_v3/src/gbuffer_effect.h"
#include "../../cnn_v3/src/cnn_v3_effect.h"
+#include "../../cnn_v3/src/gbuf_view_effect.h"
// TODO: Port CNN effects
// #include "../../cnn_v1/src/cnn_v1_effect.h"
diff --git a/src/tests/gpu/test_cnn_v3_parity.cc b/src/tests/gpu/test_cnn_v3_parity.cc
index 4b41c94..15fe818 100644
--- a/src/tests/gpu/test_cnn_v3_parity.cc
+++ b/src/tests/gpu/test_cnn_v3_parity.cc
@@ -188,6 +188,12 @@ static std::vector<float> run_cnn_v3(WebGPUTestFixture& fixture,
if (weights_u32) {
effect.upload_weights(ctx.queue, weights_u32, weights_bytes);
+ } else {
+ // Explicitly zero weights to override any asset-loaded defaults.
+ // kWeightsBufBytes = ((1964+1)/2)*4 = 3928
+ const uint32_t zero_size = ((1964u + 1u) / 2u) * 4u;
+ std::vector<uint8_t> zeros(zero_size, 0);
+ effect.upload_weights(ctx.queue, zeros.data(), zero_size);
}
// Run 5 compute passes
diff --git a/src/tests/gpu/test_demo_effects.cc b/src/tests/gpu/test_demo_effects.cc
index f5af5a9..d6e9c8a 100644
--- a/src/tests/gpu/test_demo_effects.cc
+++ b/src/tests/gpu/test_demo_effects.cc
@@ -89,6 +89,11 @@ static void test_effects() {
fixture.ctx(),
std::vector<std::string>{"gbuf_feat0", "gbuf_feat1"},
std::vector<std::string>{"cnn_v3_output"}, 0.0f, 1000.0f)},
+ {"GBufViewEffect",
+ std::make_shared<GBufViewEffect>(
+ fixture.ctx(),
+ std::vector<std::string>{"gbuf_feat0", "gbuf_feat1"},
+ std::vector<std::string>{"gbuf_view_out"}, 0.0f, 1000.0f)},
};
int passed = 0;