Bug 211364

Summary: [macOS] Trying to create a texture with either width (0), height (0) or mipLevelCount (0) causes the WebContent process to SIGABRT
Product: WebKit Reporter: gvinals
Component: WebGPUAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description gvinals 2020-05-03 17:57:16 PDT
[macOS] Trying to create a texture with either width (0), height (0) or mipLevelCount (0) causes the WebContent process to SIGABRT.

For example:

        let texDescriptor = {
            size: texSize,
            format: "rgba8unorm",
            usage: GPUTextureUsage.OUTPUT_ATTACHMENT,
            mipLevelCount: 0
        };

        const renderTarget = device.createTexture(texDescriptor);

Will cause:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff70c9d33a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x000000030c6149bc libsystem_pthread.dylib`pthread_kill + 430
    frame #2: 0x00007fff70c24808 libsystem_c.dylib`abort + 120
    frame #3: 0x00007fff70c23ac6 libsystem_c.dylib`__assert_rtn + 314
    frame #4: 0x00007fff3c11b8b9 Metal`MTLReportFailure.cold.2 + 43
    frame #5: 0x00007fff3c10f088 Metal`MTLReportFailure + 523
    frame #6: 0x00007fff3c09a632 Metal`-[MTLTextureDescriptorInternal validateWithDevice:] + 885
    frame #7: 0x00007fff2f54fda6 AppleIntelKBLGraphicsMTLDriver`validateTextureDescriptor(MTLTextureDescriptor*, id<MTLBuffer>, MTLIGAccelDevice*) + 103
    frame #8: 0x00007fff2f551879 AppleIntelKBLGraphicsMTLDriver`-[MTLIGAccelDevice newTextureWithDescriptor:] + 41
  * frame #9: 0x000000030f0e5ee1 WebCore`WebCore::GPUTexture::tryCreate(device=0x0000000338159818, descriptor=0x00007ffee9381410) at GPUTextureMetal.mm:160:26
    frame #10: 0x00000003113d52a4 WebCore`WebCore::GPUDevice::tryCreateTexture(this=0x0000000338159818, descriptor=0x00007ffee9381410) const at GPUDevice.cpp:65:12
    frame #11: 0x000000030f72db5e WebCore`WebCore::WebGPUDevice::createTexture(this=0x00000003339e7d60, descriptor=0x00007ffee9381410) const at WebGPUDevice.cpp:183:30
    frame #12: 0x000000030edbe676 WebCore`WebCore::jsWebGPUDevicePrototypeFunctionCreateTextureBody(lexicalGlobalObject=0x0000000334df6a68, callFrame=0x00007ffee9381590, castedThis=0x00000003381558d8, throwScope=0x00007ffee9381508) at JSWebGPUDevice.cpp:404:125
    frame #13: 0x000000030ed22022 WebCore`long long WebCore::IDLOperation<WebCore::JSWebGPUDevice>::call<&(lexicalGlobalObject=0x0000000334df6a68, callFrame=0x00007ffee9381590, operationName="createTexture")), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*) at JSDOMOperation.h:53:16
Comment 1 Radar WebKit Bug Importer 2020-05-03 17:57:42 PDT
<rdar://problem/62822611>