File size: 758 Bytes
f152ae2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { addLogEntry } from "./logEntries";

export let isWebGPUAvailable = "gpu" in navigator;
export let isF16Supported = false;

if (isWebGPUAvailable) {
  try {
    const adapter = await (
      navigator as unknown as {
        gpu: {
          requestAdapter: () => Promise<{
            features: Set<string>;
          }>;
        };
      }
    ).gpu.requestAdapter();
    if (!adapter) {
      throw Error("Couldn't request WebGPU adapter.");
    }
    isF16Supported = adapter.features.has("shader-f16");
  } catch {
    isWebGPUAvailable = false;
  }
}

addLogEntry(
  `WebGPU availability: ${isWebGPUAvailable ? "available" : "unavailable"}`,
);

addLogEntry(
  `WebGPU F16 Shader support: ${isF16Supported ? "supported" : "not supported"}`,
);