@@ -33,17 +33,24 @@ namespace {
33
33
34
34
// either returns a valid instance or panics
35
35
[[nodiscard]] wgpu::Instance createInstance () {
36
+ wgpu::DawnTogglesDescriptor dawnTogglesDescriptor{};
37
+ #if defined(FILAMENT_WEBGPU_IMMEDIATE_ERROR_HANDLING)
38
+ #if FWGPU_ENABLED(FWGPU_PRINT_SYSTEM)
39
+ FWGPU_LOGI << " setting on toggle enable_immediate_error_handling"
40
+ << utils::io::endl;
41
+ #endif
36
42
/* *
37
43
* Have the un-captured error callback invoked immediately when an error occurs, rather than
38
44
* waiting for the next Tick. This enables using the stack trace in which the un-captured error
39
45
* occurred when breaking into the un-captured error callback.
40
46
* https://crbug.com/dawn/1789
41
47
*/
42
48
static const char * toggleName = " enable_immediate_error_handling" ;
43
- wgpu::DawnTogglesDescriptor dawnTogglesDescriptor{};
44
49
dawnTogglesDescriptor.enabledToggleCount = 1 ;
45
50
dawnTogglesDescriptor.enabledToggles = &toggleName;
46
- wgpu::InstanceDescriptor instanceDescriptor{ .nextInChain = &dawnTogglesDescriptor,
51
+ #endif
52
+ wgpu::InstanceDescriptor instanceDescriptor{
53
+ .nextInChain = &dawnTogglesDescriptor,
47
54
.capabilities = {
48
55
.timedWaitAnyEnable = true // TODO consider using pure async instead
49
56
} };
@@ -65,6 +72,7 @@ wgpu::Adapter WebGPUPlatform::requestAdapter(wgpu::Surface const& surface) {
65
72
mInstance .RequestAdapter (&adaptorOptions, wgpu::CallbackMode::WaitAnyOnly,
66
73
[&adapter](wgpu::RequestAdapterStatus const status,
67
74
wgpu::Adapter const & readyAdapter, wgpu::StringView const message) {
75
+ // TODO consider more robust error handling
68
76
FILAMENT_CHECK_POSTCONDITION (status == wgpu::RequestAdapterStatus::Success)
69
77
<< " Unable to request a WebGPU adapter. Status "
70
78
<< static_cast <uint32_t >(status)
0 commit comments