From ed5bbb9144bc4e6f6ae27e406e16db3d54661170 Mon Sep 17 00:00:00 2001 From: Andy Leiserson Date: Mon, 12 Jan 2026 11:27:04 -0800 Subject: [PATCH] Enable dual-source blending --- crates/kas-wgpu/src/draw/images.rs | 9 +++------ .../kas-wgpu/src/draw/shaders/subpixel.frag | 4 ++-- .../src/draw/shaders/subpixel.frag.spv | Bin 2848 -> 2880 bytes 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/crates/kas-wgpu/src/draw/images.rs b/crates/kas-wgpu/src/draw/images.rs index bc8167dcb..0ebaa0423 100644 --- a/crates/kas-wgpu/src/draw/images.rs +++ b/crates/kas-wgpu/src/draw/images.rs @@ -168,12 +168,9 @@ impl Images { ); let mut atlas_rgba_mask = None; - // FIXME: This is disabled because of a wgpu validation error - #[allow(clippy::overly_complex_bool_expr)] - if false - && device - .features() - .contains(wgpu::Features::DUAL_SOURCE_BLENDING) + if device + .features() + .contains(wgpu::Features::DUAL_SOURCE_BLENDING) { atlas_rgba_mask = Some(atlases::Pipeline::new( device, diff --git a/crates/kas-wgpu/src/draw/shaders/subpixel.frag b/crates/kas-wgpu/src/draw/shaders/subpixel.frag index 877ce470b..18ad6ee69 100644 --- a/crates/kas-wgpu/src/draw/shaders/subpixel.frag +++ b/crates/kas-wgpu/src/draw/shaders/subpixel.frag @@ -11,8 +11,8 @@ precision mediump float; layout(location = 0) in vec2 tex_coord; layout(location = 1) in vec4 col; -layout(location = 0) out vec4 frag_color; -layout(location = 1) out vec4 blend_color; +layout(location = 0, index = 0) out vec4 frag_color; +layout(location = 0, index = 1) out vec4 blend_color; layout(set = 1, binding = 0) uniform texture2D tex; layout(set = 1, binding = 1) uniform sampler tex_sampler; diff --git a/crates/kas-wgpu/src/draw/shaders/subpixel.frag.spv b/crates/kas-wgpu/src/draw/shaders/subpixel.frag.spv index 846e86f30483d029216cc2d22097c58429fa38bd..930a92aa0bd9df083d371cb5a98b4091c0c71ab3 100644 GIT binary patch delta 39 qcmZ1=c0g>yDJFIn1|0?l28GQBnTi>Cfh-1h1{MZ?u#h3kdo}>FAqVaN delta 17 ZcmX>gwm@vdDW=W0n6el*hp@b10{}yy2LJ#7