Skip to content

Commit 0ce1ef2

Browse files
authored
Compatibility Mode, the easy part. (#488)
Enable WebGPU Compatibility Mode for all samples that can run unmodified in that mode. * Reformat. * Add comma after last item in dictionary.
1 parent c6783d7 commit 0ce1ef2

File tree

26 files changed

+78
-26
lines changed

26 files changed

+78
-26
lines changed

sample/animometer/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import animometerWGSL from './animometer.wgsl';
33
import { quitIfWebGPUNotAvailable } from '../util';
44

55
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/blending/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import { GUI } from 'dat.gui';
33
import { quitIfWebGPUNotAvailable } from '../util';
44
import texturedQuadWGSL from './texturedQuad.wgsl';
55

6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/cameras/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ gui.add(params, 'type', ['arcball', 'WASD']).onChange(() => {
4040
oldCameraType = newCameraType;
4141
});
4242

43-
const adapter = await navigator.gpu?.requestAdapter();
43+
const adapter = await navigator.gpu?.requestAdapter({
44+
featureLevel: 'compatibility',
45+
});
4446
const device = await adapter?.requestDevice();
4547
quitIfWebGPUNotAvailable(adapter, device);
4648
const context = canvas.getContext('webgpu') as GPUCanvasContext;

sample/computeBoids/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import updateSpritesWGSL from './updateSprites.wgsl';
44
import { GUI } from 'dat.gui';
55

66
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
7-
const adapter = await navigator.gpu?.requestAdapter();
7+
const adapter = await navigator.gpu?.requestAdapter({
8+
featureLevel: 'compatibility',
9+
});
810
quitIfAdapterNotAvailable(adapter);
911

1012
const hasTimestampQuery = adapter.features.has('timestamp-query');

sample/fractalCube/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import sampleSelfWGSL from './sampleSelf.frag.wgsl';
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/gameOfLife/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import fragWGSL from './frag.wgsl';
55
import { quitIfWebGPUNotAvailable } from '../util';
66

77
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
8-
const adapter = await navigator.gpu?.requestAdapter();
8+
const adapter = await navigator.gpu?.requestAdapter({
9+
featureLevel: 'compatibility',
10+
});
911
const device = await adapter?.requestDevice();
1012
quitIfWebGPUNotAvailable(adapter, device);
1113

sample/helloTriangle/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import redFragWGSL from '../../shaders/red.frag.wgsl';
33
import { quitIfWebGPUNotAvailable } from '../util';
44

55
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/helloTriangleMSAA/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import redFragWGSL from '../../shaders/red.frag.wgsl';
33
import { quitIfWebGPUNotAvailable } from '../util';
44

55
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/imageBlur/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ const tileDim = 128;
88
const batch = [4, 4];
99

1010
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
11-
const adapter = await navigator.gpu?.requestAdapter();
11+
const adapter = await navigator.gpu?.requestAdapter({
12+
featureLevel: 'compatibility',
13+
});
1214
const device = await adapter?.requestDevice();
1315
quitIfWebGPUNotAvailable(adapter, device);
1416

sample/instancedCube/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import vertexPositionColorWGSL from '../../shaders/vertexPositionColor.frag.wgsl
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/multipleCanvases/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ function createVertexAndIndexBuffer(
4646
};
4747
}
4848

49-
const adapter = await navigator.gpu?.requestAdapter();
49+
const adapter = await navigator.gpu?.requestAdapter({
50+
featureLevel: 'compatibility',
51+
});
5052
const device = await adapter?.requestDevice();
5153
quitIfWebGPUNotAvailable(adapter, device);
5254

sample/normalMap/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ enum TextureAtlas {
1818
}
1919

2020
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
21-
const adapter = await navigator.gpu?.requestAdapter();
21+
const adapter = await navigator.gpu?.requestAdapter({
22+
featureLevel: 'compatibility',
23+
});
2224
const device = await adapter?.requestDevice();
2325
quitIfWebGPUNotAvailable(adapter, device);
2426
const context = canvas.getContext('webgpu') as GPUCanvasContext;

sample/occlusionQuery/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ export type TypedArrayConstructor =
3131

3232
const info = document.querySelector('#info');
3333

34-
const adapter = await navigator.gpu?.requestAdapter();
34+
const adapter = await navigator.gpu?.requestAdapter({
35+
featureLevel: 'compatibility',
36+
});
3537
const device = await adapter?.requestDevice();
3638
quitIfWebGPUNotAvailable(adapter, device);
3739

sample/points/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ function createFibonacciSphereVertices({
2929
return new Float32Array(vertices);
3030
}
3131

32-
const adapter = await navigator.gpu?.requestAdapter();
32+
const adapter = await navigator.gpu?.requestAdapter({
33+
featureLevel: 'compatibility',
34+
});
3335
const device = await adapter?.requestDevice();
3436
quitIfWebGPUNotAvailable(adapter, device);
3537

sample/renderBundles/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ interface Renderable {
1414
}
1515

1616
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
17-
const adapter = await navigator.gpu?.requestAdapter();
17+
const adapter = await navigator.gpu?.requestAdapter({
18+
featureLevel: 'compatibility',
19+
});
1820
const device = await adapter?.requestDevice();
1921
quitIfWebGPUNotAvailable(adapter, device);
2022

sample/resizeCanvas/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import redFragWGSL from '../../shaders/red.frag.wgsl';
33
import { quitIfWebGPUNotAvailable } from '../util';
44

55
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/resizeObserverHDDPI/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import checkerWGSL from './checker.wgsl';
33
import { quitIfWebGPUNotAvailable } from '../util';
44

55
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/rotatingCube/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import vertexPositionColorWGSL from '../../shaders/vertexPositionColor.frag.wgsl
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/shadowMapping/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import { quitIfWebGPUNotAvailable } from '../util';
99
const shadowDepthTextureSize = 1024;
1010

1111
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
12-
const adapter = await navigator.gpu?.requestAdapter();
12+
const adapter = await navigator.gpu?.requestAdapter({
13+
featureLevel: 'compatibility',
14+
});
1315
const device = await adapter?.requestDevice();
1416
quitIfWebGPUNotAvailable(adapter, device);
1517

sample/texturedCube/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import sampleTextureMixColorWGSL from './sampleTextureMixColor.frag.wgsl';
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/transparentCanvas/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import vertexPositionColorWGSL from '../../shaders/vertexPositionColor.frag.wgsl
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/twoCubes/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import vertexPositionColorWGSL from '../../shaders/vertexPositionColor.frag.wgsl
1313
import { quitIfWebGPUNotAvailable } from '../util';
1414

1515
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
16-
const adapter = await navigator.gpu?.requestAdapter();
16+
const adapter = await navigator.gpu?.requestAdapter({
17+
featureLevel: 'compatibility',
18+
});
1719
const device = await adapter?.requestDevice();
1820
quitIfWebGPUNotAvailable(adapter, device);
1921

sample/videoUploading/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import fullscreenTexturedQuadWGSL from '../../shaders/fullscreenTexturedQuad.wgs
33
import sampleExternalTextureWGSL from '../../shaders/sampleExternalTexture.frag.wgsl';
44
import { quitIfWebGPUNotAvailable } from '../util';
55

6-
const adapter = await navigator.gpu?.requestAdapter();
6+
const adapter = await navigator.gpu?.requestAdapter({
7+
featureLevel: 'compatibility',
8+
});
79
const device = await adapter?.requestDevice();
810
quitIfWebGPUNotAvailable(adapter, device);
911

sample/volumeRenderingTexture3D/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ gui.add(params, 'rotateCamera', true);
1818
gui.add(params, 'near', 2.0, 7.0);
1919
gui.add(params, 'far', 2.0, 7.0);
2020

21-
const adapter = await navigator.gpu?.requestAdapter();
21+
const adapter = await navigator.gpu?.requestAdapter({
22+
featureLevel: 'compatibility',
23+
});
2224
const device = await adapter?.requestDevice();
2325
quitIfWebGPUNotAvailable(adapter, device);
2426
const context = canvas.getContext('webgpu') as GPUCanvasContext;

sample/worker/worker.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ self.addEventListener('message', (ev) => {
3535
// to the init() method for all the other samples. The remainder of this file is largely identical
3636
// to the rotatingCube sample.
3737
async function init(canvas) {
38-
const adapter = await navigator.gpu?.requestAdapter();
38+
const adapter = await navigator.gpu?.requestAdapter({
39+
featureLevel: 'compatibility',
40+
});
3941
const device = await adapter?.requestDevice();
4042
quitIfWebGPUNotAvailable(adapter, device);
4143
const context = canvas.getContext('webgpu');

sample/workloadSimulator/index.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,9 @@ <h2><center>Web graphics workload simulator</center></h2>
586586
try {
587587
if (deviceRequested) return;
588588
deviceRequested = true;
589-
let adapter = await navigator.gpu.requestAdapter();
589+
let adapter = await navigator.gpu.requestAdapter({
590+
featureLevel: 'compatibility',
591+
});
590592
featuresAndLimits.textContent = JSON.stringify(
591593
{
592594
name: adapter.name,

0 commit comments

Comments
 (0)