diff options
Diffstat (limited to 'src/gpu/effects')
| -rw-r--r-- | src/gpu/effects/cnn_effect.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/gpu/effects/cnn_effect.cc b/src/gpu/effects/cnn_effect.cc index cb00455..7107bea 100644 --- a/src/gpu/effects/cnn_effect.cc +++ b/src/gpu/effects/cnn_effect.cc @@ -104,7 +104,10 @@ void CNNEffect::init(MainSequence* demo) { void CNNEffect::render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) { - if (!bind_group_) return; + if (!bind_group_) { + fprintf(stderr, "CNN render: no bind_group\n"); + return; + } wgpuRenderPassEncoderSetPipeline(pass, pipeline_); wgpuRenderPassEncoderSetBindGroup(pass, 0, bind_group_, 0, nullptr); @@ -114,6 +117,16 @@ void CNNEffect::render(WGPURenderPassEncoder pass, float time, float beat, void CNNEffect::update_bind_group(WGPUTextureView input_view) { input_view_ = input_view; + // Update common uniforms (CRITICAL for UV calculation!) + const CommonPostProcessUniforms u = { + .resolution = {(float)width_, (float)height_}, + .aspect_ratio = (float)width_ / (float)height_, + .time = 0.0f, + .beat = 0.0f, + .audio_intensity = 0.0f, + }; + uniforms_.update(ctx_.queue, u); + // All layers: get captured frame (original input from layer 0) if (demo_) { original_view_ = demo_->get_auxiliary_view("captured_frame"); |
