diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/effects/shaders.cc | 2 | ||||
| -rw-r--r-- | src/effects/shaders.h | 2 | ||||
| -rw-r--r-- | src/gpu/demo_effects.h | 3 | ||||
| -rw-r--r-- | src/tests/gpu/test_cnn_v3_parity.cc | 6 | ||||
| -rw-r--r-- | src/tests/gpu/test_demo_effects.cc | 5 |
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; |
