Fix some WebGPU demos
[WebKit-https.git] / Websites / webkit.org / demos / webgpu / textured-cube.html
index e762978..274b66e 100644 (file)
@@ -35,9 +35,13 @@ p {
         Safari, first make sure the Developer Menu is visible (Preferences >
         Advanced), then Develop > Experimental Features > WebGPU.
     </p>
+    <p>
+        In addition, you must be using Safari Technology Preview 92 or above.
+        You can get the latest STP <a href="https://developer.apple.com/safari/download/">here</a>.
+    </p>
 </div>
 <script>
-if (!navigator.gpu)
+if (!navigator.gpu || GPUBufferUsage.COPY_SRC === undefined)
     document.body.className = 'error';
 
 const positionAttributeNum  = 0;
@@ -76,6 +80,8 @@ fragment float4 fragment_main(
 }
 `;
 
+//console.log(`Shader is: ${shader}`);
+
 let device, swapChain, verticesBuffer, bindGroupLayout, pipeline, renderPassDescriptor, queue, textureViewBinding, samplerBinding;
 let projectionMatrix = mat4.create();
 
@@ -130,6 +136,10 @@ async function init() {
     const adapter = await navigator.gpu.requestAdapter();
     device = await adapter.requestDevice();
 
+    device.onuncapturederror = function (e) {
+        console.log(`ERROR:`, e);
+    };
+
     const canvas = document.querySelector('canvas');
 
     const aspect = Math.abs(canvas.width / canvas.height);
@@ -200,7 +210,7 @@ async function init() {
         sampleCount: 1,
         dimension: "2d",
         format: "rgba8unorm",
-        usage: GPUTextureUsage.TRANSFER_DST | GPUTextureUsage.SAMPLED
+        usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.SAMPLED
     };
     const texture = device.createTexture(textureDescriptor);