@flighthq/effects-wgpu 0.4.0-next.1585.bf131c8 → 0.4.0-next.1652.39f08fd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,13 +26,13 @@ export function enableWgpuRenderEffectGuards(state) {
26
26
  setWgpuRenderEffectPipelineSkipGuard(state, warnWgpuRenderEffectPipelineSkip);
27
27
  _guardedStates.add(state);
28
28
  }
29
- // WGPU effect targets are single-sample today, but 102 live scene/example callers request 4 samples.
30
- // Rejecting made every one of those module-scope callers unloadable; accepting without this observation
31
- // hid that the requested capability was absent. Warn once per requested count and continue with 1.
29
+ // WGPU effect targets support one or four coverage samples. Counts outside that set are substituted
30
+ // rather than rejected so module-scope pipeline construction remains loadable; the guard makes the
31
+ // applied count explicit. Warn once per requested count.
32
32
  function warnWgpuRenderEffectPipelineSampleCount(_state, requestedSampleCount, appliedSampleCount) {
33
- logOnce(`effects-wgpu:pipeline-sample-count-degraded:${requestedSampleCount}`, LogLevel.Warn, {
33
+ logOnce(`effects-wgpu:pipeline-sample-count-substituted:${requestedSampleCount}`, LogLevel.Warn, {
34
34
  appliedSampleCount,
35
- message: `createWgpuRenderEffectPipeline: sampleCount ${requestedSampleCount} requested, but WGPU effect targets currently support only ${appliedSampleCount} — continuing with sampleCount ${appliedSampleCount}; multisampling was NOT applied`,
35
+ message: `createWgpuRenderEffectPipeline: sampleCount ${requestedSampleCount} requested, but WGPU effect targets support 1 or 4 — continuing with sampleCount ${appliedSampleCount}`,
36
36
  requestedSampleCount,
37
37
  }, 'effects-wgpu');
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enableWgpuRenderEffectGuards.js","sourceRoot":"","sources":["../src/enableWgpuRenderEffectGuards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enableWgpuRenderEffectGuards.js","sourceRoot":"","sources":["../src/enableWgpuRenderEffectGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACL,2CAA2C,EAC3C,oCAAoC,GACrC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AAEhF,MAAM,UAAU,gCAAgC,CAAC,KAAsB;IACrE,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAsB;IAClE,mCAAmC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,2CAA2C,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzD,oCAAoC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,uGAAuG;AACvG,wGAAwG;AACxG,yGAAyG;AACzG,gFAAgF;AAChF,EAAE;AACF,oGAAoG;AACpG,0GAA0G;AAC1G,mGAAmG;AACnG,4FAA4F;AAC5F,MAAM,UAAU,4BAA4B,CAAC,KAAsB;IACjE,mCAAmC,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;IAC5E,2CAA2C,CAAC,KAAK,EAAE,uCAAuC,CAAC,CAAC;IAC5F,oCAAoC,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;IAC9E,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,oGAAoG;AACpG,mGAAmG;AACnG,yDAAyD;AACzD,SAAS,uCAAuC,CAC9C,MAAuB,EACvB,oBAA4B,EAC5B,kBAA0B;IAE1B,OAAO,CACL,kDAAkD,oBAAoB,EAAE,EACxE,QAAQ,CAAC,IAAI,EACb;QACE,kBAAkB;QAClB,OAAO,EAAE,+CAA+C,oBAAoB,oFAAoF,kBAAkB,EAAE;QACpL,oBAAoB;KACrB,EACD,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,WAA6D;IAC1G,QAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,sBAAsB;YACzB,OAAO,0CAA0C,WAAW,CAAC,iBAAiB,CAAC,MAAM,OAAO,WAAW,CAAC,cAAc,+JAA+J,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClU,KAAK,oBAAoB;YACvB,OAAO,+MAA+M,CAAC;QACzN,KAAK,mBAAmB;YACtB,OAAO,uQAAuQ,CAAC;QACjR;YACE,OAAO,0EAA0E,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,8KAA8K,CAAC;IAC5S,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAuB,EACvB,WAA6D;IAE7D,6FAA6F;IAC7F,uEAAuE;IACvE,OAAO,CACL,mCAAmC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAClG,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EAAE,qCAAqC,CAAC,WAAW,CAAC;QAC3D,eAAe,EAAE,WAAW,CAAC,eAAe;QAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;KACjD,EACD,cAAc,CACf,CAAC;AACJ,CAAC;AAED,yGAAyG;AACzG,iGAAiG;AACjG,sGAAsG;AACtG,uFAAuF;AACvF,SAAS,gCAAgC,CAAC,MAAuB,EAAE,IAAY;IAC7E,uGAAuG;IACvG,8CAA8C;IAC9C,OAAO,CACL,wCAAwC,IAAI,EAAE,EAC9C,QAAQ,CAAC,IAAI,EACb;QACE,IAAI;QACJ,OAAO,EAAE,6CAA6C,IAAI,+JAA+J,IAAI,4EAA4E;KAC1S,EACD,cAAc,CACf,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAmB,CAAC"}
@@ -39,16 +39,16 @@ fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
39
39
  let r = i32(min(f32(R), uni.u_radius));
40
40
  var means : array<vec3f, 4>;
41
41
  var vars : array<f32, 4>;
42
- var lo = array<vec2i, 4>(vec2i(-1, -1), vec2i(0, -1), vec2i(-1, 0), vec2i(0, 0));
43
42
  for (var q = 0; q < 4; q++) {
43
+ let ox = select(-r, 0, (q & 1) != 0);
44
+ let oy = select(-r, 0, (q & 2) != 0);
44
45
  var sum = vec3f(0.0);
45
46
  var sumSq = vec3f(0.0);
46
47
  var n = 0.0;
47
48
  for (var y = 0; y <= R; y++) {
48
49
  for (var x = 0; x <= R; x++) {
49
50
  if (x > r || y > r) { continue; }
50
- let d = vec2i(x, y) * sign(lo[q] + vec2i(1)) + lo[q] * r;
51
- let off = vec2f(f32(d.x), f32(d.y)) * texel;
51
+ let off = vec2f(f32(ox + x), f32(oy + y)) * texel;
52
52
  let col = textureSampleLevel(tex, smp, uv + off, 0.0).rgb;
53
53
  sum += col;
54
54
  sumSq += col * col;
@@ -62,12 +62,18 @@ fn fs_main(@location(0) uv : vec2f) -> @location(0) vec4f {
62
62
  }
63
63
  var minVar = vars[0];
64
64
  var result = means[0];
65
+ var tiedCount = 1.0;
65
66
  for (var q = 1; q < 4; q++) {
66
67
  if (vars[q] < minVar) {
67
68
  minVar = vars[q];
68
69
  result = means[q];
70
+ tiedCount = 1.0;
71
+ } else if (vars[q] == minVar) {
72
+ result += means[q];
73
+ tiedCount += 1.0;
69
74
  }
70
75
  }
76
+ result /= tiedCount;
71
77
  return vec4f(result, textureSampleLevel(tex, smp, uv, 0.0).a);
72
78
  }`;
73
79
  //# sourceMappingURL=wgpuKuwaharaEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuKuwaharaEffect.js","sourceRoot":"","sources":["../src/wgpuKuwaharaEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,kGAAkG;AAClG,sGAAsG;AACtG,wEAAwE;AACxE,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACzG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,2CAA2C;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAsB;IAC/D,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,uDAAuD;AACvD,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDxC,CAAC"}
1
+ {"version":3,"file":"wgpuKuwaharaEffect.js","sourceRoot":"","sources":["../src/wgpuKuwaharaEffect.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,kGAAkG;AAClG,sGAAsG;AACtG,wEAAwE;AACxE,MAAM,UAAU,yBAAyB,CACvC,KAAsB,EACtB,MAAkC,EAClC,IAAgC,EAChC,MAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACzG,kBAAkB,CAAC,KAAK,EAAE,MAA0B,EAAE,IAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7B,2CAA2C;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;IACrF,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAwB,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,KAAsB;IAC/D,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;AACrF,CAAC;AAED,uDAAuD;AACvD,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,iCAAiC,EACjC,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,EAClC,UAAU,GAAE,sBAA+B,GAC1C,IAAI,CAqBN;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,wBAAwB,CAyB1B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAYhH;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CA2EN;AAID,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,wCAAwC,GAAG,IAAI,GACrD,IAAI,CAGN;AAOD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,iCAAiC,GAAG,IAAI,GAC9C,IAAI,CAGN;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,IAAI,CAEN"}
1
+ {"version":3,"file":"wgpuRenderEffectPipeline.d.ts","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,wCAAwC,EACxC,iCAAiC,EACjC,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,EAClC,UAAU,GAAE,sBAA+B,GAC1C,IAAI,CAqBN;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,QAAQ,CAAC,2BAA2B,CAAM,GAClD,wBAAwB,CAiB1B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAYhH;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,aAAa,CAAC,YAAY,GAAG,UAAU,CAAC,GACnD,IAAI,CA2EN;AAID,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,wCAAwC,GAAG,IAAI,GACrD,IAAI,CAGN;AAOD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,iCAAiC,GAAG,IAAI,GAC9C,IAAI,CAGN;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,IAAI,CAEN"}
@@ -20,10 +20,10 @@ export function beginWgpuRenderEffectPipeline(state, pipeline, colorSpace = 'srg
20
20
  const h = state.canvas.height;
21
21
  const format = pipeline.options.format === 'rgba16f' ? 'rgba16float' : state.format;
22
22
  if (pipeline.sceneTarget === null) {
23
- pipeline.sceneTarget = createWgpuRenderTarget(state, w, h, format, colorSpace);
23
+ pipeline.sceneTarget = createWgpuRenderTarget(state, w, h, format, colorSpace, pipeline.options.sampleCount);
24
24
  }
25
25
  else {
26
- resizeWgpuRenderTarget(state, pipeline.sceneTarget, w, h);
26
+ resizeWgpuRenderTarget(state, pipeline.sceneTarget, w, h, pipeline.options.sampleCount);
27
27
  }
28
28
  // Declare the producer's space before the pass opens: the clear value is packed sRGB input and
29
29
  // must be decoded when the target stores linear scene color.
@@ -38,23 +38,15 @@ export function beginWgpuRenderEffectPipeline(state, pipeline, colorSpace = 'srg
38
38
  beginWgpuRenderPass(state, pipeline.sceneTarget);
39
39
  }
40
40
  export function createWgpuRenderEffectPipeline(state, options = {}) {
41
- // WebGPU effect targets are single-sample: a requested sampleCount above 1 cannot be honoured here and
42
- // is normalised away. This ACCEPTS rather than rejects, deliberately. An earlier revision threw, which
43
- // was authorised by a ruling that omitted the caller-migration constraint — 102 live call sites pass
44
- // sampleCount 4, all at module scope, so the throw made those scene modules unloadable. Rejecting an
45
- // argument a live population passes is a breaking change wearing the clothes of strictness; the fault in
46
- // accept-and-drop was that it is SILENT, not that it is permissive. Do not restore the throw until
47
- // sampleCount is genuinely forwarded or every caller has been migrated. The core reports through a
48
- // message-free seam; enableWgpuRenderEffectGuards owns the caller-facing warning and logging dependency.
49
41
  const requestedSampleCount = options.sampleCount ?? 1;
50
- const appliedSampleCount = requestedSampleCount > 1 ? 1 : requestedSampleCount;
42
+ const appliedSampleCount = requestedSampleCount > 1 ? 4 : 1;
51
43
  if (requestedSampleCount !== appliedSampleCount) {
52
44
  _sampleCountGuards.get(state)?.(state, requestedSampleCount, appliedSampleCount);
53
45
  }
54
46
  return {
55
47
  options: {
56
48
  ...options,
57
- ...(options.sampleCount === undefined ? {} : { sampleCount: appliedSampleCount }),
49
+ sampleCount: appliedSampleCount,
58
50
  },
59
51
  sceneTarget: null,
60
52
  pool: createWgpuRenderTargetPool(),
@@ -151,8 +143,8 @@ export function endWgpuRenderEffectPipeline(state, pipeline, operations) {
151
143
  if (scratchB !== null)
152
144
  releaseWgpuRenderTarget(pipeline.pool, scratchB);
153
145
  }
154
- // The diagnostics seam for accepted-but-degraded multisampling requests. Core stays free of warning
155
- // strings and @flighthq/log; the separately-importable guard module installs the reporter when wanted.
146
+ // The diagnostics seam for sample-count substitutions. Core stays free of warning strings and
147
+ // @flighthq/log; the separately-importable guard module installs the reporter when wanted.
156
148
  export function setWgpuRenderEffectPipelineSampleCountGuard(state, guard) {
157
149
  if (guard === null)
158
150
  _sampleCountGuards.delete(state);
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuRenderEffectPipeline.js","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuRenderEffectPipeline.js","sourceRoot":"","sources":["../src/wgpuRenderEffectPipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/effects-wgpu",
3
- "version": "0.4.0-next.1585.bf131c8",
3
+ "version": "0.4.0-next.1652.39f08fd",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,14 +38,14 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/adjustments": "0.4.0-next.1585.bf131c8",
42
- "@flighthq/color": "0.4.0-next.1585.bf131c8",
43
- "@flighthq/effects": "0.4.0-next.1585.bf131c8",
44
- "@flighthq/geometry": "0.4.0-next.1585.bf131c8",
45
- "@flighthq/log": "0.4.0-next.1585.bf131c8",
46
- "@flighthq/render-wgpu": "0.4.0-next.1585.bf131c8",
47
- "@flighthq/registry": "0.4.0-next.1585.bf131c8",
48
- "@flighthq/types": "0.4.0-next.1585.bf131c8"
41
+ "@flighthq/adjustments": "0.4.0-next.1652.39f08fd",
42
+ "@flighthq/color": "0.4.0-next.1652.39f08fd",
43
+ "@flighthq/effects": "0.4.0-next.1652.39f08fd",
44
+ "@flighthq/geometry": "0.4.0-next.1652.39f08fd",
45
+ "@flighthq/log": "0.4.0-next.1652.39f08fd",
46
+ "@flighthq/render-wgpu": "0.4.0-next.1652.39f08fd",
47
+ "@flighthq/registry": "0.4.0-next.1652.39f08fd",
48
+ "@flighthq/types": "0.4.0-next.1652.39f08fd"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@webgpu/types": "^0.1.70"
@@ -1,4 +1,10 @@
1
- import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log/contract';
1
+ import {
2
+ addLogSink,
3
+ clearLogOnceKeys,
4
+ createMemoryLogSink,
5
+ getMemoryLogSinkEntries,
6
+ removeLogSink,
7
+ } from '@flighthq/log/contract';
2
8
  import {
3
9
  acquireWgpuRenderTexture,
4
10
  beginWgpuFrame,
@@ -23,6 +29,7 @@ import { registerWgpuRenderEffect } from './wgpuRenderEffectRegistry';
23
29
  import { applyWgpuRenderEffectsToRenderTexture } from './wgpuRenderTextureEffect';
24
30
 
25
31
  beforeAll(() => installWgpuMock());
32
+ beforeEach(() => clearLogOnceKeys());
26
33
 
27
34
  describe('areWgpuRenderEffectGuardsEnabled', () => {
28
35
  it('reports whether diagnostics were installed for the state', async () => {
@@ -52,9 +59,8 @@ describe('disableWgpuRenderEffectGuards', () => {
52
59
  });
53
60
 
54
61
  describe('enableWgpuRenderEffectGuards', () => {
55
- // logOnce suppresses a key for the whole PROCESS, so a fired key can never fire again in a later test.
56
- // Both the fire and the silence assertions live in this one test, in order, and every test in this file
57
- // uses distinct effect kinds so no two share a key.
62
+ // logOnce suppresses a key until the next test reset. Both the fire and silence assertions still live
63
+ // in one test, in order, so the once-per-key behavior itself remains observable.
58
64
  it('WARNS that an unregistered chain returned false without writing dest, then stays quiet', async () => {
59
65
  const state = await createWgpuRenderStateForTest();
60
66
  enableWgpuRenderEffectGuards(state);
@@ -115,29 +121,32 @@ describe('enableWgpuRenderEffectGuards', () => {
115
121
  expect(again).toHaveLength(0);
116
122
  });
117
123
 
118
- it('WARNS once when a multisample request is accepted but degraded to one sample', async () => {
124
+ it('WARNS once when an unsupported sample count is substituted', async () => {
119
125
  const state = await createWgpuRenderStateForTest();
120
126
  enableWgpuRenderEffectGuards(state);
121
127
 
122
128
  let pipeline = createWgpuRenderEffectPipeline(state);
123
129
  const entries = captureLog(() => {
124
- pipeline = createWgpuRenderEffectPipeline(state, { sampleCount: 4 });
125
- createWgpuRenderEffectPipeline(state, { sampleCount: 4 });
130
+ pipeline = createWgpuRenderEffectPipeline(state, { sampleCount: 8 });
131
+ createWgpuRenderEffectPipeline(state, { sampleCount: 8 });
126
132
  });
127
133
 
128
- expect(pipeline.options.sampleCount).toBe(1);
134
+ expect(pipeline.options.sampleCount).toBe(4);
129
135
  expect(entries).toHaveLength(1);
130
- expect(messageOf(entries[0])).toContain('sampleCount 4 requested');
131
- expect(messageOf(entries[0])).toContain('multisampling was NOT applied');
132
- expect(entries[0]?.data).toMatchObject({ appliedSampleCount: 1, requestedSampleCount: 4 });
136
+ expect(messageOf(entries[0])).toContain('sampleCount 8 requested');
137
+ expect(messageOf(entries[0])).toContain('effect targets support 1 or 4');
138
+ expect(messageOf(entries[0])).toContain('continuing with sampleCount 4');
139
+ expect(messageOf(entries[0])).not.toContain('multisampling was NOT applied');
140
+ expect(entries[0]?.data).toMatchObject({ appliedSampleCount: 4, requestedSampleCount: 8 });
133
141
  });
134
142
 
135
- it('stays SILENT when the requested sample count is supported', async () => {
143
+ it('stays SILENT when the requested sample counts are supported', async () => {
136
144
  const state = await createWgpuRenderStateForTest();
137
145
  enableWgpuRenderEffectGuards(state);
138
146
 
139
147
  const entries = captureLog(() => {
140
148
  expect(createWgpuRenderEffectPipeline(state, { sampleCount: 1 }).options.sampleCount).toBe(1);
149
+ expect(createWgpuRenderEffectPipeline(state, { sampleCount: 4 }).options.sampleCount).toBe(4);
141
150
  });
142
151
 
143
152
  expect(entries).toHaveLength(0);
@@ -71,6 +71,19 @@ describe('beginWgpuRenderEffectPipeline', () => {
71
71
  expect(pipeline.sceneTarget?.clearColors).toEqual([]);
72
72
  endWgpuRenderEffectPipeline(state, pipeline, []);
73
73
  });
74
+
75
+ it('realizes a four-sample scene target at twice the canvas extent', async () => {
76
+ const state = await createWgpuRenderStateForTest();
77
+ const pipeline = createWgpuRenderEffectPipeline(state, { sampleCount: 4 });
78
+
79
+ beginWgpuFrame(state);
80
+ beginWgpuRenderEffectPipeline(state, pipeline);
81
+
82
+ expect(pipeline.sceneTarget?.width).toBe(state.canvas.width * 2);
83
+ expect(pipeline.sceneTarget?.height).toBe(state.canvas.height * 2);
84
+ expect(pipeline.sceneTarget?.sampleCount).toBe(4);
85
+ endWgpuRenderEffectPipeline(state, pipeline, []);
86
+ });
74
87
  });
75
88
 
76
89
  describe('createWgpuRenderEffectPipeline', () => {
@@ -97,31 +110,28 @@ describe('createWgpuRenderEffectPipeline', () => {
97
110
  expect(pipeline.options.format).toBe('rgba16f');
98
111
  });
99
112
 
100
- // Guards the revert: rejecting sampleCount broke 102 live module-scope callers, so the pipeline must
101
- // ACCEPT an unsupported count and normalise it. If this starts throwing again, the callers were not
102
- // migrated first.
103
- it('accepts an unsupported multisample request instead of refusing to build', async () => {
113
+ it('retains the supported four-sample request', async () => {
104
114
  const state = await createWgpuRenderStateForTest();
105
115
 
106
116
  const pipeline = createWgpuRenderEffectPipeline(state, { sampleCount: 4 });
107
117
 
108
- expect(pipeline.options.sampleCount).toBe(1);
118
+ expect(pipeline.options.sampleCount).toBe(4);
109
119
  });
110
120
 
111
121
  describe('setWgpuRenderEffectPipelineSampleCountGuard', () => {
112
122
  it('reports the requested and applied sample counts through the optional diagnostics seam', async () => {
113
123
  const state = await createWgpuRenderStateForTest();
114
- const degraded: Array<[number, number]> = [];
124
+ const substitutions: Array<[number, number]> = [];
115
125
  setWgpuRenderEffectPipelineSampleCountGuard(state, (_state, requested, applied) => {
116
- degraded.push([requested, applied]);
126
+ substitutions.push([requested, applied]);
117
127
  });
118
128
 
119
- createWgpuRenderEffectPipeline(state, { sampleCount: 4 });
120
- expect(degraded).toEqual([[4, 1]]);
129
+ createWgpuRenderEffectPipeline(state, { sampleCount: 2 });
130
+ expect(substitutions).toEqual([[2, 4]]);
121
131
 
122
132
  setWgpuRenderEffectPipelineSampleCountGuard(state, null);
123
133
  createWgpuRenderEffectPipeline(state, { sampleCount: 8 });
124
- expect(degraded).toEqual([[4, 1]]);
134
+ expect(substitutions).toEqual([[2, 4]]);
125
135
  });
126
136
  });
127
137