Skip to content

Commit

Permalink
Fix incorrect use of textureSample
Browse files Browse the repository at this point in the history
  • Loading branch information
bbazukun123 committed Jan 4, 2024
1 parent 1fda986 commit 529d5f4
Show file tree
Hide file tree
Showing 38 changed files with 136 additions and 99 deletions.
5 changes: 3 additions & 2 deletions filters/adjustment/src/adjustment.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@ struct AdjustmentUniforms {
uColor: vec4<f32>,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> adjustmentUniforms : AdjustmentUniforms;

@fragment
fn mainFragment(
@location(0) uv: vec2<f32>,
@builtin(position) position: vec4<f32>
) -> @location(0) vec4<f32> {
var sample = textureSample(uSampler, uSampler, uv);
var sample = textureSample(uTexture, uSampler, uv);
let color = adjustmentUniforms.uColor;

if (sample.a > 0.0)
Expand Down
5 changes: 3 additions & 2 deletions filters/advanced-bloom/src/advanced-bloom.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ struct AdvancedBloomUniforms {
uBrightness: f32,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> advancedBloomUniforms : AdvancedBloomUniforms;
@group(1) @binding(1) var uMapTexture: texture_2d<f32>;

Expand All @@ -12,7 +13,7 @@ fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
var color = textureSample(uSampler, uSampler, uv);
var color = textureSample(uTexture, uSampler, uv);
color = vec4<f32>(color.rgb * advancedBloomUniforms.uBrightness, color.a);

var bloomColor = vec4<f32>(textureSample(uMapTexture, iSampler, uv).rgb, 0.0);
Expand Down
5 changes: 3 additions & 2 deletions filters/advanced-bloom/src/extract-brightness.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ struct ExtractBrightnessUniforms {
uThreshold: f32,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> extractBrightnessUniforms : ExtractBrightnessUniforms;

@fragment
fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
let color: vec4<f32> = textureSample(uSampler, uSampler, uv);
let color: vec4<f32> = textureSample(uTexture, uSampler, uv);

// A simple & fast algorithm for getting brightness.
// It's inaccurate, but good enough for this feature.
Expand Down
5 changes: 3 additions & 2 deletions filters/ascii/src/ascii.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> asciiUniforms : AsciiUniforms;

@fragment
Expand All @@ -30,7 +31,7 @@ fn mainFragment(
var pixCoord: vec2<f32> = pixelate(coord, vec2<f32>(pixelSize));
pixCoord = unmapCoord(pixCoord);

var color = textureSample(uSampler, uSampler, pixCoord);
var color = textureSample(uTexture, uSampler, pixCoord);

// determine the character to use
let gray: f32 = 0.3 * color.r + 0.59 * color.g + 0.11 * color.b;
Expand Down
9 changes: 5 additions & 4 deletions filters/bevel/src/bevel.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> bevelUniforms : BevelUniforms;

@fragment
Expand All @@ -26,9 +27,9 @@ fn mainFragment(
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
let transform = vec2<f32>(1.0 / gfu.uInputSize.xy) * vec2<f32>(bevelUniforms.uTransform.x, bevelUniforms.uTransform.y);
var color: vec4<f32> = textureSample(uSampler, uSampler, uv);
let lightSample: f32 = textureSample(uSampler, uSampler, uv - transform).a;
let shadowSample: f32 = textureSample(uSampler, uSampler, uv + transform).a;
var color: vec4<f32> = textureSample(uTexture, uSampler, uv);
let lightSample: f32 = textureSample(uTexture, uSampler, uv - transform).a;
let shadowSample: f32 = textureSample(uTexture, uSampler, uv + transform).a;

let light = vec4<f32>(bevelUniforms.uLightColor, bevelUniforms.uLightAlpha);
let shadow = vec4<f32>(bevelUniforms.uShadowColor, bevelUniforms.uShadowAlpha);
Expand Down
5 changes: 3 additions & 2 deletions filters/bulge-pinch/src/bulge-pinch.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> bulgePinchUniforms : BulgePinchUniforms;

@fragment
Expand Down Expand Up @@ -44,7 +45,7 @@ fn mainFragment(
coord /= gfu.uInputSize.xy;

let clampedCoord: vec2<f32> = clamp(coord, gfu.uInputClamp.xy, gfu.uInputClamp.zw);
var color: vec4<f32> = textureSample(uSampler, uSampler, clampedCoord);
var color: vec4<f32> = textureSample(uTexture, uSampler, clampedCoord);
if (coord.x != clampedCoord.x && coord.y != clampedCoord.y) {
color *= max(0.0, 1.0 - length(coord - clampedCoord));
}
Expand Down
5 changes: 3 additions & 2 deletions filters/color-gradient/src/color-gradient.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> colorGradientUniforms : ColorGradientUniforms;

struct VSOutput {
Expand Down Expand Up @@ -118,7 +119,7 @@ fn mainFragment(
@location(1) coord : vec2<f32>
) -> @location(0) vec4<f32> {
// current/original color
var currentColor: vec4<f32> = textureSample(uSampler, uSampler, uv);
var currentColor: vec4<f32> = textureSample(uTexture, uSampler, uv);

// skip calculations if gradient alpha is 0
if (uAlpha == 0.0) { return currentColor; }
Expand Down
5 changes: 3 additions & 2 deletions filters/color-map/src/color-map.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ struct ColorMapUniforms {
uSliceInnerSize: f32,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> colorMapUniforms : ColorMapUniforms;
@group(1) @binding(1) var uMapTexture: texture_2d<f32>;

Expand All @@ -15,7 +16,7 @@ fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
var color:vec4<f32> = textureSample(uSampler, uSampler, uv);
var color:vec4<f32> = textureSample(uTexture, uSampler, uv);

var adjusted: vec4<f32>;

Expand Down
5 changes: 3 additions & 2 deletions filters/color-overlay/src/color-overlay.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ struct ColorOverlayUniforms {
uAlpha: f32,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> colorOverlayUniforms : ColorOverlayUniforms;

@fragment
fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
let c = textureSample(uSampler, uSampler, vTextureCoord);
let c = textureSample(uTexture, uSampler, vTextureCoord);
return vec4<f32>(mix(c.rgb, colorOverlayUniforms.uColor.rgb, c.a * colorOverlayUniforms.uAlpha), c.a);
}
5 changes: 3 additions & 2 deletions filters/color-replace/src/color-replace.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ struct ColorReplaceUniforms {
uTolerance: f32,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> colorReplaceUniforms : ColorReplaceUniforms;

@fragment
fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
let sample: vec4<f32> = textureSample(uSampler, uSampler, uv);
let sample: vec4<f32> = textureSample(uTexture, uSampler, uv);

let colorDiff: vec3<f32> = colorReplaceUniforms.uOriginalColor - (sample.rgb / max(sample.a, 0.0000000001));
let colorDistance: f32 = length(colorDiff);
Expand Down
21 changes: 11 additions & 10 deletions filters/convolution/src/convolution.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ struct ConvolutionUniforms {
uTexelSize: vec2<f32>,
};

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> convolutionUniforms : ConvolutionUniforms;

@fragment
Expand All @@ -14,17 +15,17 @@ fn mainFragment(
let texelSize = convolutionUniforms.uTexelSize;
let matrix = convolutionUniforms.uMatrix;

let c11: vec4<f32> = textureSample(uSampler, uSampler, uv - texelSize); // top left
let c12: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x, uv.y - texelSize.y)); // top center
let c13: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x + texelSize.x, uv.y - texelSize.y)); // top right
let c11: vec4<f32> = textureSample(uTexture, uSampler, uv - texelSize); // top left
let c12: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x, uv.y - texelSize.y)); // top center
let c13: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x + texelSize.x, uv.y - texelSize.y)); // top right

let c21: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x - texelSize.x, uv.y)); // mid left
let c22: vec4<f32> = textureSample(uSampler, uSampler, uv); // mid center
let c23: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x + texelSize.x, uv.y)); // mid right
let c21: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x - texelSize.x, uv.y)); // mid left
let c22: vec4<f32> = textureSample(uTexture, uSampler, uv); // mid center
let c23: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x + texelSize.x, uv.y)); // mid right

let c31: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x - texelSize.x, uv.y + texelSize.y)); // bottom left
let c32: vec4<f32> = textureSample(uSampler, uSampler, vec2<f32>(uv.x, uv.y + texelSize.y)); // bottom center
let c33: vec4<f32> = textureSample(uSampler, uSampler, uv + texelSize); // bottom right
let c31: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x - texelSize.x, uv.y + texelSize.y)); // bottom left
let c32: vec4<f32> = textureSample(uTexture, uSampler, vec2<f32>(uv.x, uv.y + texelSize.y)); // bottom center
let c33: vec4<f32> = textureSample(uTexture, uSampler, uv + texelSize); // bottom right

var finalColor: vec4<f32> = vec4<f32>(
c11 * matrix[0][0] + c12 * matrix[0][1] + c13 * matrix[0][2] +
Expand Down
5 changes: 3 additions & 2 deletions filters/cross-hatch/src/crosshatch.wgsl
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;

@fragment
fn mainFragment(
@location(0) uv: vec2<f32>,
@builtin(position) position: vec4<f32>
) -> @location(0) vec4<f32> {
let lum: f32 = length(textureSample(uSampler, uSampler, uv).rgb);
let lum: f32 = length(textureSample(uTexture, uSampler, uv).rgb);

if (lum < 1.00)
{
Expand Down
5 changes: 3 additions & 2 deletions filters/crt/src/crt.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> crtUniforms : CRTUniforms;

@fragment
Expand All @@ -27,7 +28,7 @@ fn mainFragment(
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {

var color: vec4<f32> = textureSample(uSampler, uSampler, uv);
var color: vec4<f32> = textureSample(uTexture, uSampler, uv);
let coord: vec2<f32> = uv * gfu.uInputSize.xy / crtUniforms.uDimensions;

let uNoise = crtUniforms.uNoise;
Expand Down
5 changes: 3 additions & 2 deletions filters/dot/src/dot.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> dotUniforms : DotUniforms;

@fragment
fn mainFragment(
@location(0) uv: vec2<f32>,
@builtin(position) position: vec4<f32>
) -> @location(0) vec4<f32> {
let color: vec4<f32> = textureSample(uSampler, uSampler, uv);
let color: vec4<f32> = textureSample(uTexture, uSampler, uv);
let grey: vec3<f32> = vec3<f32>(dot(color.rgb, vec3<f32>(0.299, 0.587, 0.114)));
// dotUniforms.uGreyScale == 1 doesn't ever pass so it is converted to a float and compared to 0.5 instead
let finalColor: vec3<f32> = select(color.rgb, grey, f32(dotUniforms.uGreyScale) >= 0.5);
Expand Down
5 changes: 3 additions & 2 deletions filters/drop-shadow/src/DropShadowFilter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,13 +145,14 @@ export class DropShadowFilter extends Filter
},
fragment: {
source: `
@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@fragment
fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
return textureSample(uSampler, uSampler, uv);
return textureSample(uTexture, uSampler, uv);
}
`,
entryPoint: 'mainFragment',
Expand Down
5 changes: 3 additions & 2 deletions filters/drop-shadow/src/drop-shadow.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> dropShadowUniforms : DropShadowUniforms;

@fragment
fn mainFragment(
@builtin(position) position: vec4<f32>,
@location(0) uv : vec2<f32>
) -> @location(0) vec4<f32> {
var color: vec4<f32> = textureSample(uSampler, uSampler, uv - dropShadowUniforms.uOffset * gfu.uInputSize.zw);
var color: vec4<f32> = textureSample(uTexture, uSampler, uv - dropShadowUniforms.uOffset * gfu.uInputSize.zw);

// Premultiply alpha
color = vec4<f32>(vec3<f32>(dropShadowUniforms.uColor.rgb * color.a), color.a);
Expand Down
9 changes: 5 additions & 4 deletions filters/emboss/src/emboss.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(2) @binding(0) var<uniform> embossUniforms : EmbossUniforms;

@fragment
Expand All @@ -24,12 +25,12 @@ fn mainFragment(
let onePixel: vec2<f32> = vec2<f32>(1.0 / gfu.uInputSize.xy);
var color: vec3<f32> = vec3<f32>(0.5);

color -= (textureSample(uSampler, uSampler, uv - onePixel) * embossUniforms.uStrength).rgb;
color += (textureSample(uSampler, uSampler, uv + onePixel) * embossUniforms.uStrength).rgb;
color -= (textureSample(uTexture, uSampler, uv - onePixel) * embossUniforms.uStrength).rgb;
color += (textureSample(uTexture, uSampler, uv + onePixel) * embossUniforms.uStrength).rgb;

color = vec3<f32>((color.r + color.g + color.b) / 3.0);

let blendColor: vec4<f32> = textureSample(uSampler, uSampler, uv);
let blendColor: vec4<f32> = textureSample(uTexture, uSampler, uv);

return vec4<f32>(color.rgb * blendColor.a, blendColor.a);
}
3 changes: 2 additions & 1 deletion filters/glitch/src/glitch.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> glitchUniforms : GlitchUniforms;

@fragment
Expand Down
3 changes: 2 additions & 1 deletion filters/glow/src/glow.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> glowUniforms : GlowUniforms;

@fragment
Expand Down
5 changes: 3 additions & 2 deletions filters/godray/src/god-ray.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ struct GlobalFilterUniforms {

@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;

@group(0) @binding(1) var uSampler: texture_2d<f32>;
@group(0) @binding(1) var uTexture: texture_2d<f32>;
@group(0) @binding(2) var uSampler: sampler;
@group(1) @binding(0) var<uniform> godrayUniforms : GodrayUniforms;

@fragment
Expand Down Expand Up @@ -61,7 +62,7 @@ fn mainFragment(
mist.a = 1.0;
// apply user alpha
mist *= alpha;
return textureSample(uSampler, uSampler, uv) + mist;
return textureSample(uTexture, uSampler, uv) + mist;
}

${PERLIN}
Loading

0 comments on commit 529d5f4

Please sign in to comment.