Bug 275010
| Summary: | [WGSL] api,operation,compute_pipeline,overrides:computed:* does not pass | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Mike Wyrzykowski <mwyrzykowski> |
| Component: | WebGPU | Assignee: | Tadeu Zagallo <tzagallo> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | mwyrzykowski, tzagallo, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Mike Wyrzykowski
This test was added two days ago to the CTS. It triggers a RELEASE_ASSERT(is<Target>(source)); in downcast
https://gpuweb.github.io/cts/standalone/?q=webgpu:api,operation,compute_pipeline,overrides:computed:*
WGSL source is this:
override c0: f32 = 0.;
override c1: f32 = 0.;
override c2: f32 = c0 * c1;
struct Buf {
data : array<u32, 3>,
}
@group(0) @binding(0) var<storage, read_write> buf : Buf;
@compute @workgroup_size(1) fn main() {
buf.data[0] = u32(c0);
buf.data[1] = u32(c1);
buf.data[2] = u32(c2);
}
Backtrace:
(lldb) bt
frame #0: 0x000000010a924d54 WebGPU`WTFCrashWithInfo(line=96, file="/Volumes/Data/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/TypeCasts.h", function="match_constness_t<Source, Target> &WTF::downcast(Source &) [Target = const WGSL::AST::IdentifierExpression, Source = const WGSL::AST::Expression]", counter=2) at Assertions.h:818:5
frame #1: 0x000000010ad5a988 WebGPU`_ZN3WTF8downcastIKN4WGSL3AST20IdentifierExpressionEKNS2_10ExpressionEEERNSt3__111conditionalIXsr3stdE10is_const_vIT0_EENS7_9add_constIT_E4typeEu14__remove_constISB_EE4typeERS9_(source=0x000000015e060408) at TypeCasts.h:96:5
* frame #2: 0x000000010ad5a76c WebGPU`WGSL::evaluate(expression=0x000000015e060408, constants=0x000000016e7b9b48) at WGSL.cpp:149:40
frame #3: 0x000000010a9d1710 WebGPU`_ZN6WebGPU13createLibraryEPU19objcproto9MTLDevice11objc_objectRKNS_12ShaderModuleEPNS_14PipelineLayoutERKN3WTF6StringEP8NSStringjPK17WGPUConstantEntryRNS7_7HashMapIjNSG_IjyNS7_11DefaultHashIjEENS7_29UnsignedWithZeroKeyHashTraitsIjEENS7_10HashTraitsIyEENS7_15HashTableTraitsEEESI_SK_NSL_ISO_EESN_EEPU15__autoreleasingP7NSError(device=0x0000000112d1ffd0, shaderModule=0x00000001060ec4e0, pipelineLayout=0x00000001060bc0e0, untransformedEntryPoint=0x000000016e7b9f38, label="", constantCount=2, constants=0x0000000106088720, mininumBufferSizes=0x000000016e7b9f08, error=0x000000016e7b9e70) at Pipeline.mm:75:30
frame #4: 0x000000010a99fd6c WebGPU`WebGPU::Device::createComputePipeline(this=0x00000001060ac580, descriptor=0x000000016e7ba198, isAsync=true) at ComputePipeline.mm:88:34
frame #5: 0x000000010a9a1588 WebGPU`WebGPU::Device::createComputePipelineAsync(this=0x00000001060ac580, descriptor=0x000000016e7ba198, callback=0x000000016e7ba080) at ComputePipeline.mm:129:29
frame #6: 0x000000010a9b25b8 WebGPU`wgpuDeviceCreateComputePipelineAsync(device=0x00000001060ac580, descriptor=0x000000016e7ba198, callback=(actual=0x000000032dc4b448 WebCore`WebCore::WebGPU::createComputePipelineAsyncCallback(WGPUCreatePipelineAsyncStatus, WGPUComputePipelineImpl*, WTF::String&&, void*) at WebGPUDeviceImpl.cpp:573), userdata=0x0000000168c3c5e0) at Device.mm:898:29
frame #7: 0x000000032dc4b0b0 WebCore`WebCore::WebGPU::DeviceImpl::createComputePipelineAsync(WebCore::WebGPU::ComputePipelineDescriptor const&, WTF::CompletionHandler<void (WTF::RefPtr<WebCore::WebGPU::ComputePipeline, WTF::RawPtrTraits<WebCore::WebGPU::ComputePipeline>, WTF::DefaultRefDerefTraits<WebCore::WebGPU::ComputePipeline>>&&, WTF::String&&)>&&)::$_7::operator()(this=0x000000016e7ba2a8, backingDescriptor=0x000000016e7ba198) at WebGPUDeviceImpl.cpp:588:9
frame #8: 0x000000032dc3da10 WebCore`auto WebCore::WebGPU::convertToBacking<WebCore::WebGPU::DeviceImpl::createComputePipelineAsync(WebCore::WebGPU::ComputePipelineDescriptor const&, WTF::CompletionHandler<void (WTF::RefPtr<WebCore::WebGPU::ComputePipeline, WTF::RawPtrTraits<WebCore::WebGPU::ComputePipeline>, WTF::DefaultRefDerefTraits<WebCore::WebGPU::ComputePipeline>>&&, WTF::String&&)>&&)::$_7>(descriptor=0x000000016e7ba3a0, convertToBackingContext=0x00000001060b8100, callback=0x000000016e7ba2a8) at WebGPUDeviceImpl.cpp:364:12
frame #9: 0x000000032dc3d760 WebCore`WebCore::WebGPU::DeviceImpl::createComputePipelineAsync(this=0x0000000106128100, descriptor=0x000000016e7ba3a0, callback=0x000000016e7ba370) at WebGPUDeviceImpl.cpp:581:5
frame #10: 0x0000000122a66eec WebKit`WebKit::RemoteDevice::createComputePipelineAsync(this=0x00000001061000c0, descriptor=0x000000016e7ba640, identifier=WebKit::WebGPUIdentifier @ 0x000000016e7ba408, callback=0x000000016e7ba618) at RemoteDevice.cpp:286:16
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/129090786>
Mike Wyrzykowski
This no longer crashes, but the test does not pass
Tadeu Zagallo
Pull request: https://github.com/WebKit/WebKit/pull/57042
EWS
Committed 306328@main (98bebfefcf92): <https://commits.webkit.org/306328@main>
Reviewed commits have been landed. Closing PR #57042 and removing active labels.