⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 252423 in webkit


Ignore:
Timestamp:
Nov 13, 2019, 12:16:12 PM (7 years ago)
Author:
dino@apple.com
Message:

Fix some WebGPU demos
https://bugs.webkit.org/show_bug.cgi?id=204167
Source/WebCore:

<rdar://problem/57160316>

Reviewed by Myles C. Maxfield.

Add a note referencing a bug I detected while fixing this demo.
And a drive-by typo.

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::copyBufferToTexture):

Websites/webkit.org:

Reviewed by Myles C. Maxfield.

Use COPY_ rather than TRANSFER_.

  • demos/webgpu/babylon/babylonWebGpu.max.js:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/scripts/compute-boids-utils.js:

(async.createTextureFromImage):

  • demos/webgpu/textured-cube.html:
Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r252419 r252423  
     12019-11-13  Dean Jackson  <dino@apple.com>
     2
     3        Fix some WebGPU demos
     4        https://bugs.webkit.org/show_bug.cgi?id=204167
     5        <rdar://problem/57160316>
     6
     7        Reviewed by Myles C. Maxfield.
     8
     9        Add a note referencing a bug I detected while fixing this demo.
     10        And a drive-by typo.
     11
     12        * Modules/webgpu/WebGPUBuffer.cpp:
     13        (WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):
     14        * platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:
     15        (WebCore::GPUCommandBuffer::copyBufferToTexture):
     16
    1172019-11-13  Antti Koivisto  <antti@apple.com>
    218
  • trunk/Source/WebCore/Modules/webgpu/WebGPUBuffer.cpp

    r250735 r252423  
    9292            promise.resolve(*arrayBuffer);
    9393        else {
     94            // FIXME: It's possible to hit this code path in response to an unmap call, where
     95            // the ArrayBuffer will definitely be null, and thus an out of memory error makes no sense.
     96            // https://bugs.webkit.org/show_bug.cgi?id=204166
    9497            protectedErrorScopes->generateError("", GPUErrorFilter::OutOfMemory);
    9598            promise.reject();
  • trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm

    r249601 r252423  
    136136{
    137137    if (isEncodingPass() || !srcBuffer.buffer->isCopySource() || !dstTexture.texture->isCopyDestination()) {
    138         LOG(WebGPU, "GPUComandBuffer::copyBufferToTexture(): Invalid operation!");
     138        LOG(WebGPU, "GPUCommandBuffer::copyBufferToTexture(): Invalid operation!");
    139139        return;
    140140    }
  • trunk/Websites/webkit.org/ChangeLog

    r252395 r252423  
     12019-11-13  Dean Jackson  <dino@apple.com>
     2
     3        Fix some WebGPU demos
     4        https://bugs.webkit.org/show_bug.cgi?id=204167
     5
     6        Reviewed by Myles C. Maxfield.
     7
     8        Use COPY_ rather than TRANSFER_.
     9
     10        * demos/webgpu/babylon/babylonWebGpu.max.js:
     11        * demos/webgpu/babylon/oneSphereWebGPU.html:
     12        * demos/webgpu/hello-cube.html:
     13        * demos/webgpu/scripts/compute-boids-compile.js:
     14        * demos/webgpu/scripts/compute-boids-utils.js:
     15        (async.createTextureFromImage):
     16        * demos/webgpu/textured-cube.html:
     17
    1182019-11-08  Ryosuke Niwa  <rniwa@webkit.org>
    219
  • trunk/Websites/webkit.org/demos/webgpu/babylon/babylonWebGpu.max.js

    r250101 r252423  
    3294632946    WebGPUConstants.GPUBufferUsage_MAP_READ = 1;
    3294732947    WebGPUConstants.GPUBufferUsage_MAP_WRITE = 2;
    32948     WebGPUConstants.GPUBufferUsage_TRANSFER_SRC = 4;
    32949     WebGPUConstants.GPUBufferUsage_TRANSFER_DST = 8;
     32948    WebGPUConstants.GPUBufferUsage_COPY_SRC = 4;
     32949    WebGPUConstants.GPUBufferUsage_COPY_DST = 8;
    3295032950    WebGPUConstants.GPUBufferUsage_INDEX = 16;
    3295132951    WebGPUConstants.GPUBufferUsage_VERTEX = 32;
     
    4229642296        var bufferDescriptor = {
    4229742297            size: byteLength,
    42298             usage: _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_MAP_WRITE | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_SRC
     42298            usage: _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_MAP_WRITE | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_SRC
    4229942299        };
    4230042300        var [tempBuffer, arr] = this._device.createBufferMapped(bufferDescriptor);
     
    4232442324            view = data;
    4232542325        }
    42326         var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_VERTEX | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42326        var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_VERTEX | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4232742327        return dataBuffer;
    4232842328    };
     
    4238042380            }
    4238142381        }
    42382         var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_INDEX | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42382        var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_INDEX | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4238342383        dataBuffer.is32Bits = is32Bits;
    4238442384        return dataBuffer;
     
    4244442444            view = elements;
    4244542445        }
    42446         var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_UNIFORM | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42446        var dataBuffer = this._createBuffer(view, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_UNIFORM | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4244742447        return dataBuffer;
    4244842448    };
     
    4266542665        var dataBuffer;
    4266642666        if (rowPitch == width * 4) {
    42667             dataBuffer = this._createBuffer(pixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42667            dataBuffer = this._createBuffer(pixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4266842668            var bufferView = {
    4266942669                buffer: dataBuffer.underlyingResource,
     
    4268742687                }
    4268842688            }
    42689             dataBuffer = this._createBuffer(alignedPixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42689            dataBuffer = this._createBuffer(alignedPixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4269042690            var bufferView = {
    4269142691                buffer: dataBuffer.underlyingResource,
     
    4276142761        var dataBuffer;
    4276242762        if (rowPitch == width * 4) {
    42763             dataBuffer = this._createBuffer(pixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42763            dataBuffer = this._createBuffer(pixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4276442764            var bufferView = {
    4276542765                buffer: dataBuffer.underlyingResource,
     
    4278342783                }
    4278442784            }
    42785             dataBuffer = this._createBuffer(alignedPixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_TRANSFER_DST);
     42785            dataBuffer = this._createBuffer(alignedPixels, _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_SRC | _WebGPU_webgpuConstants__WEBPACK_IMPORTED_MODULE_9__["WebGPUConstants"].GPUBufferUsage_COPY_DST);
    4278642786            var bufferView = {
    4278742787                buffer: dataBuffer.underlyingResource,
  • trunk/Websites/webkit.org/demos/webgpu/babylon/oneSphereWebGPU.html

    r250101 r252423  
    207207            divFps.innerHTML = engine.getFps().toFixed() + " fps";
    208208        });
     209        setTimeout(() => {
     210            engine.stopRenderLoop();
     211        }, 2000);
    209212    })();
    210213    </script>
  • trunk/Websites/webkit.org/demos/webgpu/hello-cube.html

    r250101 r252423  
    148148    const verticesBufferDescriptor = {
    149149        size: verticesArray.byteLength,
    150         usage: GPUBufferUsage.VERTEX | GPUBufferUsage.TRANSFER_DST
     150        usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST
    151151    };
    152152    let verticesArrayBuffer;
  • trunk/Websites/webkit.org/demos/webgpu/scripts/compute-boids-compile.js

    r250101 r252423  
    206206async function init() {
    207207    if (!isChrome) {
    208         GPUBufferUsage.COPY_DST = GPUBufferUsage.TRANSFER_DST;
    209         GPUBufferUsage.COPY_SRC = GPUBufferUsage.TRANSFER_SRC;
     208        GPUBufferUsage.COPY_DST = GPUBufferUsage.COPY_DST;
     209        GPUBufferUsage.COPY_SRC = GPUBufferUsage.COPY_SRC;
    210210    }
    211211
  • trunk/Websites/webkit.org/demos/webgpu/scripts/compute-boids-utils.js

    r249665 r252423  
    106106        dimension: "2d",
    107107        format: "rgba8unorm",
    108         usage: GPUTextureUsage.TRANSFER_DST | usage,
     108        usage: GPUTextureUsage.COPY_DST | usage,
    109109      });
    110110
    111111      const textureDataBuffer = device.createBuffer({
    112112        size: data.byteLength,
    113         usage: GPUBufferUsage.TRANSFER_DST | GPUBufferUsage.TRANSFER_SRC,
     113        usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,
    114114      });
    115115
  • trunk/Websites/webkit.org/demos/webgpu/textured-cube.html

    r250101 r252423  
    8181`;
    8282
     83//console.log(`Shader is: ${shader}`);
     84
    8385let device, swapChain, verticesBuffer, bindGroupLayout, pipeline, renderPassDescriptor, queue, textureViewBinding, samplerBinding;
    8486let projectionMatrix = mat4.create();
     
    135137    device = await adapter.requestDevice();
    136138
     139    device.onuncapturederror = function (e) {
     140        console.log(`ERROR:`, e);
     141    };
     142
    137143    const canvas = document.querySelector('canvas');
    138144
     
    205211        dimension: "2d",
    206212        format: "rgba8unorm",
    207         usage: GPUTextureUsage.TRANSFER_DST | GPUTextureUsage.SAMPLED
     213        usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.SAMPLED
    208214    };
    209215    const texture = device.createTexture(textureDescriptor);
Note: See TracChangeset for help on using the changeset viewer.