Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions sample/a-buffer/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { mat4, vec3 } from 'wgpu-matrix';
import { GUI } from 'dat.gui';

import { quitIfWebGPUNotAvailable, quitIfLimitLessThan } from '../util';
import {
quitIfWebGPUNotAvailableOrMissingFeatures,
quitIfLimitLessThan,
} from '../util';
import { mesh } from '../../meshes/teapot';

import opaqueWGSL from './opaque.wgsl';
Expand All @@ -21,7 +24,7 @@ quitIfLimitLessThan(adapter, 'maxStorageBuffersInFragmentStage', 2, limits);
const device = await adapter?.requestDevice({
requiredLimits: limits,
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');
const presentationFormat = navigator.gpu.getPreferredCanvasFormat();
Expand Down
4 changes: 2 additions & 2 deletions sample/animometer/main.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { GUI } from 'dat.gui';
import animometerWGSL from './animometer.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const perfDisplayContainer = document.createElement('div');
perfDisplayContainer.style.color = 'white';
Expand Down
4 changes: 2 additions & 2 deletions sample/bitonicSort/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type { GUI } from 'dat.gui';
import fullscreenTexturedQuad from '../../shaders/fullscreenTexturedQuad.wgsl';
import {
quitIfAdapterNotAvailable,
quitIfWebGPUNotAvailable,
quitIfWebGPUNotAvailableOrMissingFeatures,
quitIfLimitLessThan,
} from '../util';

Expand Down Expand Up @@ -131,7 +131,7 @@ export const SampleInitFactoryWebGPU = async (
requiredFeatures: features,
requiredLimits: limits,
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');
const devicePixelRatio = window.devicePixelRatio;
Expand Down
4 changes: 2 additions & 2 deletions sample/blending/main.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { mat4 } from 'wgpu-matrix';
import { GUI } from 'dat.gui';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';
import texturedQuadWGSL from './texturedQuad.wgsl';

const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

// creates a CSS hsl string from 3 normalized numbers (0 to 1)
const hsl = (hue: number, saturation: number, lightness: number) =>
Expand Down
4 changes: 2 additions & 2 deletions sample/cameras/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
import cubeWGSL from './cube.wgsl';
import { ArcballCamera, WASDCamera } from './camera';
import { createInputHandler } from './input';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;

Expand Down Expand Up @@ -44,7 +44,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);
const context = canvas.getContext('webgpu');

const devicePixelRatio = window.devicePixelRatio;
Expand Down
7 changes: 5 additions & 2 deletions sample/computeBoids/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { quitIfAdapterNotAvailable, quitIfWebGPUNotAvailable } from '../util';
import {
quitIfAdapterNotAvailable,
quitIfWebGPUNotAvailableOrMissingFeatures,
} from '../util';
import spriteWGSL from './sprite.wgsl';
import updateSpritesWGSL from './updateSprites.wgsl';
import { GUI } from 'dat.gui';
Expand All @@ -13,7 +16,7 @@ const hasTimestampQuery = adapter.features.has('timestamp-query');
const device = await adapter.requestDevice({
requiredFeatures: hasTimestampQuery ? ['timestamp-query'] : [],
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const perfDisplayContainer = document.createElement('div');
perfDisplayContainer.style.color = 'white';
Expand Down
4 changes: 2 additions & 2 deletions sample/cornell/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import Tonemapper from './tonemapper';
import Raytracer from './raytracer';
import {
quitIfAdapterNotAvailable,
quitIfWebGPUNotAvailable,
quitIfWebGPUNotAvailableOrMissingFeatures,
quitIfLimitLessThan,
} from '../util';

Expand Down Expand Up @@ -38,7 +38,7 @@ const device = await adapter?.requestDevice({
requiredFeatures: features,
requiredLimits: limits,
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const params: {
renderer: 'rasterizer' | 'raytracer';
Expand Down
4 changes: 2 additions & 2 deletions sample/cubemap/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import {

import basicVertWGSL from '../../shaders/basic.vert.wgsl';
import sampleCubemapWGSL from './sampleCubemap.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
7 changes: 5 additions & 2 deletions sample/deferredRendering/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ import fragmentWriteGBuffers from './fragmentWriteGBuffers.wgsl';
import vertexTextureQuad from './vertexTextureQuad.wgsl';
import fragmentGBuffersDebugView from './fragmentGBuffersDebugView.wgsl';
import fragmentDeferredRendering from './fragmentDeferredRendering.wgsl';
import { quitIfWebGPUNotAvailable, quitIfLimitLessThan } from '../util';
import {
quitIfWebGPUNotAvailableOrMissingFeatures,
quitIfLimitLessThan,
} from '../util';

const kMaxNumLights = 1024;
const lightExtentMin = vec3.fromValues(-50, -30, -50);
Expand All @@ -23,7 +26,7 @@ quitIfLimitLessThan(adapter, 'maxStorageBuffersInFragmentStage', 1, limits);
const device = await adapter?.requestDevice({
requiredLimits: limits,
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/fractalCube/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import {

import basicVertWGSL from '../../shaders/basic.vert.wgsl';
import sampleSelfWGSL from './sampleSelf.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/gameOfLife/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import { GUI } from 'dat.gui';
import computeWGSL from './compute.wgsl';
import vertWGSL from './vert.wgsl';
import fragWGSL from './frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');
const devicePixelRatio = window.devicePixelRatio;
Expand Down
4 changes: 2 additions & 2 deletions sample/generateMipmap/main.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { mat4 } from 'wgpu-matrix';
import { generateMips } from './generateMipmap';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';
import { makeCanvasImage } from './makeCanvasImage';
import {
cubeVertexArray,
Expand All @@ -23,7 +23,7 @@ const device = await adapter.requestDevice({
? ['core-features-and-limits']
: [],
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const context = canvas.getContext('webgpu');
Expand Down
4 changes: 2 additions & 2 deletions sample/helloTriangle/main.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import triangleVertWGSL from '../../shaders/triangle.vert.wgsl';
import redFragWGSL from '../../shaders/red.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/helloTriangleMSAA/main.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import triangleVertWGSL from '../../shaders/triangle.vert.wgsl';
import redFragWGSL from '../../shaders/red.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/imageBlur/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { GUI } from 'dat.gui';
import blurWGSL from './blur.wgsl';
import fullscreenTexturedQuadWGSL from '../../shaders/fullscreenTexturedQuad.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

// Contants from the blur.wgsl shader.
const tileDim = 128;
Expand All @@ -12,7 +12,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/instancedCube/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import {

import instancedVertWGSL from './instanced.vert.wgsl';
import vertexPositionColorWGSL from '../../shaders/vertexPositionColor.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/multipleCanvases/main.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { mat4, mat3 } from 'wgpu-matrix';
import { modelData } from './models';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

type TypedArrayView = Float32Array | Uint32Array;

Expand Down Expand Up @@ -50,7 +50,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const models = Object.values(modelData).map((data) =>
createVertexAndIndexBuffer(device, data)
Expand Down
4 changes: 2 additions & 2 deletions sample/normalMap/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
create3DRenderPipeline,
createTextureFromImage,
} from './utils';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const MAT4X4_BYTES = 64;
enum TextureAtlas {
Expand All @@ -22,7 +22,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);
const context = canvas.getContext('webgpu');
const devicePixelRatio = window.devicePixelRatio;
canvas.width = canvas.clientWidth * devicePixelRatio;
Expand Down
4 changes: 2 additions & 2 deletions sample/occlusionQuery/main.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { GUI } from 'dat.gui';
import { mat4 } from 'wgpu-matrix';
import solidColorLitWGSL from './solidColorLit.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const settings = {
animate: true,
Expand Down Expand Up @@ -35,7 +35,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const context = canvas.getContext('webgpu');
Expand Down
4 changes: 2 additions & 2 deletions sample/particles/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { GUI } from 'dat.gui';

import particleWGSL from './particle.wgsl';
import probabilityMapWGSL from './probabilityMap.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

const numParticles = 50000;
const particlePositionOffset = 0;
Expand All @@ -21,7 +21,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu');

Expand Down
4 changes: 2 additions & 2 deletions sample/points/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import distanceSizedPointsVertWGSL from './distance-sized-points.vert.wgsl';
import fixedSizePointsVertWGSL from './fixed-size-points.vert.wgsl';
import orangeFragWGSL from './orange.frag.wgsl';
import texturedFragWGSL from './textured.frag.wgsl';
import { quitIfWebGPUNotAvailable } from '../util';
import { quitIfWebGPUNotAvailableOrMissingFeatures } from '../util';

// See: https://www.google.com/search?q=fibonacci+sphere
function createFibonacciSphereVertices({
Expand Down Expand Up @@ -33,7 +33,7 @@ const adapter = await navigator.gpu?.requestAdapter({
featureLevel: 'compatibility',
});
const device = await adapter?.requestDevice();
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

// Get a WebGPU context from the canvas and configure it
const canvas = document.querySelector('canvas') as HTMLCanvasElement;
Expand Down
7 changes: 5 additions & 2 deletions sample/primitivePicking/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ import vertexForwardRendering from './vertexForwardRendering.wgsl';
import fragmentForwardRendering from './fragmentForwardRendering.wgsl';
import vertexTextureQuad from './vertexTextureQuad.wgsl';
import fragmentPrimitivesDebugView from './fragmentPrimitivesDebugView.wgsl';
import { quitIfWebGPUNotAvailable, quitIfFeaturesNotAvailable } from '../util';
import {
quitIfWebGPUNotAvailableOrMissingFeatures,
quitIfFeaturesNotAvailable,
} from '../util';

const canvas = document.querySelector('canvas') as HTMLCanvasElement;
const adapter = await navigator.gpu?.requestAdapter({
Expand All @@ -20,7 +23,7 @@ quitIfFeaturesNotAvailable(adapter, requiredFeatures);
const device = await adapter.requestDevice({
requiredFeatures,
});
quitIfWebGPUNotAvailable(adapter, device);
quitIfWebGPUNotAvailableOrMissingFeatures(adapter, device);

const context = canvas.getContext('webgpu') as GPUCanvasContext;

Expand Down
Loading