Blending response
webgl.blending-response
Ready · No signal has been run.
Results
Research focus
Selected evidence from this run. Cross-run stability and comparison verdicts require a session comparison.
Full evidence
| Property | Value |
|---|---|
| No results yet. No signal has been run. | |
JSON
Selected signal results for external comparison. Field statuses, controls and exact values are retained.
No run export is available.
Source
Source is not connected yet.
// Test source pending.Reference
Reference is not connected yet.
Definition
Raw RGBA8 direct and blended outputs; fractional conversion remains empirical.
Find it in the repository
- Collector source
core/signals/webgl/blending-response.ts- Export
measurementModule· Signal object- Field definitions
core/definitions/webgl/blending-response.ts- Capture membership
- Product capture ·
common/capture/product.ts - Page registration
app/signals/registry.ts- Field projection
core/results/measurement.ts
Execution contract
- Signal
webgl.blending-response- Collector
webgl.blending-response- API / surface
- core/signals/webgl/blending-response.ts
- Timeout
- 1500 ms
- Companion signals
- None
- Fixture inputs
- Declared requests (listed below)
Exact request inputs
[
{
"key": "webgl.blending-response.responses",
"inputs": {
"clear": {
"destination": [
0,
0,
0,
0
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 0,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": true,
"id": "clear",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "exact endpoints"
},
"opaque": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
1,
0,
1,
1
],
"draws": 1,
"blend": false,
"separate": false,
"dither": false,
"resolve": false,
"exact": true,
"id": "opaque",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "exact endpoints"
},
"alpha-zero": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0
],
"draws": 1,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "alpha-zero",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"alpha-half": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 1,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "alpha-half",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"alpha-one": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
1
],
"draws": 1,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "alpha-one",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"two-blends": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 2,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "two-blends",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"separate-alpha": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 1,
"blend": true,
"separate": true,
"dither": false,
"resolve": false,
"exact": false,
"id": "separate-alpha",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"ONE",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"boundary-below": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.4999607843137255,
0.4999607843137255,
0.4999607843137255,
0.4999607843137255
],
"draws": 1,
"blend": false,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "boundary-below",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"boundary-above": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.5000392156862745,
0.5000392156862745,
0.5000392156862745,
0.5000392156862745
],
"draws": 1,
"blend": false,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "boundary-above",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"boundary-above-reverse": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.5000392156862745,
0.5000392156862745,
0.5000392156862745,
0.5000392156862745
],
"draws": 1,
"blend": false,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "boundary-above-reverse",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"boundary-below-reverse": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.4999607843137255,
0.4999607843137255,
0.4999607843137255,
0.4999607843137255
],
"draws": 1,
"blend": false,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "boundary-below-reverse",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"alpha-half-repeat": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 1,
"blend": true,
"separate": false,
"dither": false,
"resolve": false,
"exact": false,
"id": "alpha-half-repeat",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"dither": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 1,
"blend": true,
"separate": false,
"dither": true,
"resolve": false,
"exact": false,
"id": "dither",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
},
"resolve": {
"destination": [
0.25,
0.5,
0.75,
0.5
],
"source": [
0.75,
0.25,
0.5,
0.5
],
"draws": 1,
"blend": true,
"separate": false,
"dither": false,
"resolve": true,
"exact": false,
"id": "resolve",
"framebuffer": [
8,
8
],
"attachment": "RGBA8",
"vertices": [
-1,
-1,
1,
-1,
-1,
1,
1,
1
],
"vertex": "attribute vec2 position;void main(){gl_Position=vec4(position,0.,1.);}",
"fragment": "precision highp float;uniform vec4 color;void main(){gl_FragColor=color;}",
"equation": "FUNC_ADD",
"rgbFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"alphaFactors": [
"SRC_ALPHA",
"ONE_MINUS_SRC_ALPHA"
],
"interpretation": "empirical conversion; no rounding oracle"
}
},
"controls": {}
}
]One collector runs per invocation. Results and JSON select this signal’s fields; any companions execute in the same collector.
Generated source manifest lists runtime files, fixture URLs and content digests for this build. The Source tab provides a copyable console sample.
Run and edit locally
From the repository root, start the Astro app, then open /signals/webgl.blending-response. Edit the collector source and reload the page to load its new build.
pnpm run dev:webIn a browser module served by this repository’s Vite graph:
import { createCollector } from "/core/collect"
import { measurementModule } from "/core/signals/webgl/blending-response"
const signal = measurementModule
const collector = createCollector()
const suite = { signals: [signal] }
const result = await collector.collect(suite)Reuse the collector owner for repeated calls so collection can enforce cleanup. This returns the collector’s raw result; app/signals/projection.ts selects the retained fields shown on this page.
rg -n 'measurementModule' core app tests
pnpm run check
pnpm run test tests/unit/app/focused-projection.test.ts| Property | Value |
|---|