react-native-wgpu 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +1 -2
- package/apple/MetalView.mm +1 -1
- package/cpp/jsi/RNFHybridObject.cpp +8 -4
- package/cpp/jsi/RNFHybridObject.h +7 -2
- package/cpp/jsi/RNFJSIConverter.h +0 -47
- package/cpp/jsi/RNFJSIHelper.h +5 -3
- package/cpp/jsi/RNFRuntimeState.cpp +18 -0
- package/cpp/jsi/RNFRuntimeState.h +106 -0
- package/cpp/rnwgpu/api/GPU.h +0 -1
- package/cpp/rnwgpu/api/GPUAdapter.cpp +6 -2
- package/cpp/webgpu/webgpu.h +4827 -5
- package/cpp/webgpu/webgpu_cpp.h +10140 -5
- package/cpp/webgpu/webgpu_cpp_print.h +2687 -5
- package/package.json +1 -1
- package/cpp/dawn/dawn_proc_table.h +0 -313
- package/cpp/dawn/native/DawnNative.h +0 -361
- package/cpp/dawn/native/NullBackend.h +0 -39
- package/cpp/dawn/native/OpenGLBackend.h +0 -82
- package/cpp/dawn/native/VulkanBackend.h +0 -183
- package/cpp/dawn/native/dawn_native_export.h +0 -49
- package/cpp/dawn/webgpu.h +0 -4855
- package/cpp/dawn/webgpu_cpp.h +0 -10168
- package/cpp/dawn/webgpu_cpp_print.h +0 -2715
- package/cpp/dawn/wire/client/webgpu.h +0 -354
- package/cpp/dawn/wire/client/webgpu_cpp.h +0 -10343
- package/cpp/dawn/wire/client/webgpu_cpp_print.h +0 -2715
- package/cpp/jsi/RNFRuntimeCache.cpp +0 -57
- package/cpp/jsi/RNFRuntimeCache.h +0 -79
- package/cpp/jsi/RNFWorkletRuntimeCollector.h +0 -43
- package/cpp/jsi/RNFWorkletRuntimeRegistry.cpp +0 -12
- package/cpp/jsi/RNFWorkletRuntimeRegistry.h +0 -44
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2021 The Dawn & Tint Authors
|
|
2
2
|
//
|
|
3
3
|
// Redistribution and use in source and binary forms, with or without
|
|
4
4
|
// modification, are permitted provided that the following conditions are met:
|
|
@@ -25,9 +25,2691 @@
|
|
|
25
25
|
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
26
26
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27
27
|
|
|
28
|
-
#ifndef
|
|
29
|
-
#define
|
|
28
|
+
#ifndef WEBGPU_CPP_PRINT_H_
|
|
29
|
+
#define WEBGPU_CPP_PRINT_H_
|
|
30
30
|
|
|
31
|
-
#include "
|
|
31
|
+
#include "webgpu/webgpu_cpp.h"
|
|
32
32
|
|
|
33
|
-
#
|
|
33
|
+
#include <iomanip>
|
|
34
|
+
#include <ios>
|
|
35
|
+
#include <ostream>
|
|
36
|
+
#include <type_traits>
|
|
37
|
+
|
|
38
|
+
namespace wgpu {
|
|
39
|
+
|
|
40
|
+
template <typename CharT, typename Traits>
|
|
41
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, AdapterType value) {
|
|
42
|
+
switch (value) {
|
|
43
|
+
case AdapterType::DiscreteGPU:
|
|
44
|
+
o << "AdapterType::DiscreteGPU";
|
|
45
|
+
break;
|
|
46
|
+
case AdapterType::IntegratedGPU:
|
|
47
|
+
o << "AdapterType::IntegratedGPU";
|
|
48
|
+
break;
|
|
49
|
+
case AdapterType::CPU:
|
|
50
|
+
o << "AdapterType::CPU";
|
|
51
|
+
break;
|
|
52
|
+
case AdapterType::Unknown:
|
|
53
|
+
o << "AdapterType::Unknown";
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
o << "AdapterType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<AdapterType>::type>(value);
|
|
57
|
+
}
|
|
58
|
+
return o;
|
|
59
|
+
}
|
|
60
|
+
template <typename CharT, typename Traits>
|
|
61
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, AddressMode value) {
|
|
62
|
+
switch (value) {
|
|
63
|
+
case AddressMode::Undefined:
|
|
64
|
+
o << "AddressMode::Undefined";
|
|
65
|
+
break;
|
|
66
|
+
case AddressMode::ClampToEdge:
|
|
67
|
+
o << "AddressMode::ClampToEdge";
|
|
68
|
+
break;
|
|
69
|
+
case AddressMode::Repeat:
|
|
70
|
+
o << "AddressMode::Repeat";
|
|
71
|
+
break;
|
|
72
|
+
case AddressMode::MirrorRepeat:
|
|
73
|
+
o << "AddressMode::MirrorRepeat";
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
o << "AddressMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<AddressMode>::type>(value);
|
|
77
|
+
}
|
|
78
|
+
return o;
|
|
79
|
+
}
|
|
80
|
+
template <typename CharT, typename Traits>
|
|
81
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, AlphaMode value) {
|
|
82
|
+
switch (value) {
|
|
83
|
+
case AlphaMode::Opaque:
|
|
84
|
+
o << "AlphaMode::Opaque";
|
|
85
|
+
break;
|
|
86
|
+
case AlphaMode::Premultiplied:
|
|
87
|
+
o << "AlphaMode::Premultiplied";
|
|
88
|
+
break;
|
|
89
|
+
case AlphaMode::Unpremultiplied:
|
|
90
|
+
o << "AlphaMode::Unpremultiplied";
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
o << "AlphaMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<AlphaMode>::type>(value);
|
|
94
|
+
}
|
|
95
|
+
return o;
|
|
96
|
+
}
|
|
97
|
+
template <typename CharT, typename Traits>
|
|
98
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BackendType value) {
|
|
99
|
+
switch (value) {
|
|
100
|
+
case BackendType::Undefined:
|
|
101
|
+
o << "BackendType::Undefined";
|
|
102
|
+
break;
|
|
103
|
+
case BackendType::Null:
|
|
104
|
+
o << "BackendType::Null";
|
|
105
|
+
break;
|
|
106
|
+
case BackendType::WebGPU:
|
|
107
|
+
o << "BackendType::WebGPU";
|
|
108
|
+
break;
|
|
109
|
+
case BackendType::D3D11:
|
|
110
|
+
o << "BackendType::D3D11";
|
|
111
|
+
break;
|
|
112
|
+
case BackendType::D3D12:
|
|
113
|
+
o << "BackendType::D3D12";
|
|
114
|
+
break;
|
|
115
|
+
case BackendType::Metal:
|
|
116
|
+
o << "BackendType::Metal";
|
|
117
|
+
break;
|
|
118
|
+
case BackendType::Vulkan:
|
|
119
|
+
o << "BackendType::Vulkan";
|
|
120
|
+
break;
|
|
121
|
+
case BackendType::OpenGL:
|
|
122
|
+
o << "BackendType::OpenGL";
|
|
123
|
+
break;
|
|
124
|
+
case BackendType::OpenGLES:
|
|
125
|
+
o << "BackendType::OpenGLES";
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
o << "BackendType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BackendType>::type>(value);
|
|
129
|
+
}
|
|
130
|
+
return o;
|
|
131
|
+
}
|
|
132
|
+
template <typename CharT, typename Traits>
|
|
133
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BlendFactor value) {
|
|
134
|
+
switch (value) {
|
|
135
|
+
case BlendFactor::Undefined:
|
|
136
|
+
o << "BlendFactor::Undefined";
|
|
137
|
+
break;
|
|
138
|
+
case BlendFactor::Zero:
|
|
139
|
+
o << "BlendFactor::Zero";
|
|
140
|
+
break;
|
|
141
|
+
case BlendFactor::One:
|
|
142
|
+
o << "BlendFactor::One";
|
|
143
|
+
break;
|
|
144
|
+
case BlendFactor::Src:
|
|
145
|
+
o << "BlendFactor::Src";
|
|
146
|
+
break;
|
|
147
|
+
case BlendFactor::OneMinusSrc:
|
|
148
|
+
o << "BlendFactor::OneMinusSrc";
|
|
149
|
+
break;
|
|
150
|
+
case BlendFactor::SrcAlpha:
|
|
151
|
+
o << "BlendFactor::SrcAlpha";
|
|
152
|
+
break;
|
|
153
|
+
case BlendFactor::OneMinusSrcAlpha:
|
|
154
|
+
o << "BlendFactor::OneMinusSrcAlpha";
|
|
155
|
+
break;
|
|
156
|
+
case BlendFactor::Dst:
|
|
157
|
+
o << "BlendFactor::Dst";
|
|
158
|
+
break;
|
|
159
|
+
case BlendFactor::OneMinusDst:
|
|
160
|
+
o << "BlendFactor::OneMinusDst";
|
|
161
|
+
break;
|
|
162
|
+
case BlendFactor::DstAlpha:
|
|
163
|
+
o << "BlendFactor::DstAlpha";
|
|
164
|
+
break;
|
|
165
|
+
case BlendFactor::OneMinusDstAlpha:
|
|
166
|
+
o << "BlendFactor::OneMinusDstAlpha";
|
|
167
|
+
break;
|
|
168
|
+
case BlendFactor::SrcAlphaSaturated:
|
|
169
|
+
o << "BlendFactor::SrcAlphaSaturated";
|
|
170
|
+
break;
|
|
171
|
+
case BlendFactor::Constant:
|
|
172
|
+
o << "BlendFactor::Constant";
|
|
173
|
+
break;
|
|
174
|
+
case BlendFactor::OneMinusConstant:
|
|
175
|
+
o << "BlendFactor::OneMinusConstant";
|
|
176
|
+
break;
|
|
177
|
+
case BlendFactor::Src1:
|
|
178
|
+
o << "BlendFactor::Src1";
|
|
179
|
+
break;
|
|
180
|
+
case BlendFactor::OneMinusSrc1:
|
|
181
|
+
o << "BlendFactor::OneMinusSrc1";
|
|
182
|
+
break;
|
|
183
|
+
case BlendFactor::Src1Alpha:
|
|
184
|
+
o << "BlendFactor::Src1Alpha";
|
|
185
|
+
break;
|
|
186
|
+
case BlendFactor::OneMinusSrc1Alpha:
|
|
187
|
+
o << "BlendFactor::OneMinusSrc1Alpha";
|
|
188
|
+
break;
|
|
189
|
+
default:
|
|
190
|
+
o << "BlendFactor::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BlendFactor>::type>(value);
|
|
191
|
+
}
|
|
192
|
+
return o;
|
|
193
|
+
}
|
|
194
|
+
template <typename CharT, typename Traits>
|
|
195
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BlendOperation value) {
|
|
196
|
+
switch (value) {
|
|
197
|
+
case BlendOperation::Undefined:
|
|
198
|
+
o << "BlendOperation::Undefined";
|
|
199
|
+
break;
|
|
200
|
+
case BlendOperation::Add:
|
|
201
|
+
o << "BlendOperation::Add";
|
|
202
|
+
break;
|
|
203
|
+
case BlendOperation::Subtract:
|
|
204
|
+
o << "BlendOperation::Subtract";
|
|
205
|
+
break;
|
|
206
|
+
case BlendOperation::ReverseSubtract:
|
|
207
|
+
o << "BlendOperation::ReverseSubtract";
|
|
208
|
+
break;
|
|
209
|
+
case BlendOperation::Min:
|
|
210
|
+
o << "BlendOperation::Min";
|
|
211
|
+
break;
|
|
212
|
+
case BlendOperation::Max:
|
|
213
|
+
o << "BlendOperation::Max";
|
|
214
|
+
break;
|
|
215
|
+
default:
|
|
216
|
+
o << "BlendOperation::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BlendOperation>::type>(value);
|
|
217
|
+
}
|
|
218
|
+
return o;
|
|
219
|
+
}
|
|
220
|
+
template <typename CharT, typename Traits>
|
|
221
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BufferBindingType value) {
|
|
222
|
+
switch (value) {
|
|
223
|
+
case BufferBindingType::BindingNotUsed:
|
|
224
|
+
o << "BufferBindingType::BindingNotUsed";
|
|
225
|
+
break;
|
|
226
|
+
case BufferBindingType::Undefined:
|
|
227
|
+
o << "BufferBindingType::Undefined";
|
|
228
|
+
break;
|
|
229
|
+
case BufferBindingType::Uniform:
|
|
230
|
+
o << "BufferBindingType::Uniform";
|
|
231
|
+
break;
|
|
232
|
+
case BufferBindingType::Storage:
|
|
233
|
+
o << "BufferBindingType::Storage";
|
|
234
|
+
break;
|
|
235
|
+
case BufferBindingType::ReadOnlyStorage:
|
|
236
|
+
o << "BufferBindingType::ReadOnlyStorage";
|
|
237
|
+
break;
|
|
238
|
+
default:
|
|
239
|
+
o << "BufferBindingType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BufferBindingType>::type>(value);
|
|
240
|
+
}
|
|
241
|
+
return o;
|
|
242
|
+
}
|
|
243
|
+
template <typename CharT, typename Traits>
|
|
244
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BufferMapState value) {
|
|
245
|
+
switch (value) {
|
|
246
|
+
case BufferMapState::Unmapped:
|
|
247
|
+
o << "BufferMapState::Unmapped";
|
|
248
|
+
break;
|
|
249
|
+
case BufferMapState::Pending:
|
|
250
|
+
o << "BufferMapState::Pending";
|
|
251
|
+
break;
|
|
252
|
+
case BufferMapState::Mapped:
|
|
253
|
+
o << "BufferMapState::Mapped";
|
|
254
|
+
break;
|
|
255
|
+
default:
|
|
256
|
+
o << "BufferMapState::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BufferMapState>::type>(value);
|
|
257
|
+
}
|
|
258
|
+
return o;
|
|
259
|
+
}
|
|
260
|
+
template <typename CharT, typename Traits>
|
|
261
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CallbackMode value) {
|
|
262
|
+
switch (value) {
|
|
263
|
+
case CallbackMode::WaitAnyOnly:
|
|
264
|
+
o << "CallbackMode::WaitAnyOnly";
|
|
265
|
+
break;
|
|
266
|
+
case CallbackMode::AllowProcessEvents:
|
|
267
|
+
o << "CallbackMode::AllowProcessEvents";
|
|
268
|
+
break;
|
|
269
|
+
case CallbackMode::AllowSpontaneous:
|
|
270
|
+
o << "CallbackMode::AllowSpontaneous";
|
|
271
|
+
break;
|
|
272
|
+
default:
|
|
273
|
+
o << "CallbackMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CallbackMode>::type>(value);
|
|
274
|
+
}
|
|
275
|
+
return o;
|
|
276
|
+
}
|
|
277
|
+
template <typename CharT, typename Traits>
|
|
278
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CompareFunction value) {
|
|
279
|
+
switch (value) {
|
|
280
|
+
case CompareFunction::Undefined:
|
|
281
|
+
o << "CompareFunction::Undefined";
|
|
282
|
+
break;
|
|
283
|
+
case CompareFunction::Never:
|
|
284
|
+
o << "CompareFunction::Never";
|
|
285
|
+
break;
|
|
286
|
+
case CompareFunction::Less:
|
|
287
|
+
o << "CompareFunction::Less";
|
|
288
|
+
break;
|
|
289
|
+
case CompareFunction::Equal:
|
|
290
|
+
o << "CompareFunction::Equal";
|
|
291
|
+
break;
|
|
292
|
+
case CompareFunction::LessEqual:
|
|
293
|
+
o << "CompareFunction::LessEqual";
|
|
294
|
+
break;
|
|
295
|
+
case CompareFunction::Greater:
|
|
296
|
+
o << "CompareFunction::Greater";
|
|
297
|
+
break;
|
|
298
|
+
case CompareFunction::NotEqual:
|
|
299
|
+
o << "CompareFunction::NotEqual";
|
|
300
|
+
break;
|
|
301
|
+
case CompareFunction::GreaterEqual:
|
|
302
|
+
o << "CompareFunction::GreaterEqual";
|
|
303
|
+
break;
|
|
304
|
+
case CompareFunction::Always:
|
|
305
|
+
o << "CompareFunction::Always";
|
|
306
|
+
break;
|
|
307
|
+
default:
|
|
308
|
+
o << "CompareFunction::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CompareFunction>::type>(value);
|
|
309
|
+
}
|
|
310
|
+
return o;
|
|
311
|
+
}
|
|
312
|
+
template <typename CharT, typename Traits>
|
|
313
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CompilationInfoRequestStatus value) {
|
|
314
|
+
switch (value) {
|
|
315
|
+
case CompilationInfoRequestStatus::Success:
|
|
316
|
+
o << "CompilationInfoRequestStatus::Success";
|
|
317
|
+
break;
|
|
318
|
+
case CompilationInfoRequestStatus::CallbackCancelled:
|
|
319
|
+
o << "CompilationInfoRequestStatus::CallbackCancelled";
|
|
320
|
+
break;
|
|
321
|
+
default:
|
|
322
|
+
o << "CompilationInfoRequestStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CompilationInfoRequestStatus>::type>(value);
|
|
323
|
+
}
|
|
324
|
+
return o;
|
|
325
|
+
}
|
|
326
|
+
template <typename CharT, typename Traits>
|
|
327
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CompilationMessageType value) {
|
|
328
|
+
switch (value) {
|
|
329
|
+
case CompilationMessageType::Error:
|
|
330
|
+
o << "CompilationMessageType::Error";
|
|
331
|
+
break;
|
|
332
|
+
case CompilationMessageType::Warning:
|
|
333
|
+
o << "CompilationMessageType::Warning";
|
|
334
|
+
break;
|
|
335
|
+
case CompilationMessageType::Info:
|
|
336
|
+
o << "CompilationMessageType::Info";
|
|
337
|
+
break;
|
|
338
|
+
default:
|
|
339
|
+
o << "CompilationMessageType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CompilationMessageType>::type>(value);
|
|
340
|
+
}
|
|
341
|
+
return o;
|
|
342
|
+
}
|
|
343
|
+
template <typename CharT, typename Traits>
|
|
344
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ComponentSwizzle value) {
|
|
345
|
+
switch (value) {
|
|
346
|
+
case ComponentSwizzle::Undefined:
|
|
347
|
+
o << "ComponentSwizzle::Undefined";
|
|
348
|
+
break;
|
|
349
|
+
case ComponentSwizzle::Zero:
|
|
350
|
+
o << "ComponentSwizzle::Zero";
|
|
351
|
+
break;
|
|
352
|
+
case ComponentSwizzle::One:
|
|
353
|
+
o << "ComponentSwizzle::One";
|
|
354
|
+
break;
|
|
355
|
+
case ComponentSwizzle::R:
|
|
356
|
+
o << "ComponentSwizzle::R";
|
|
357
|
+
break;
|
|
358
|
+
case ComponentSwizzle::G:
|
|
359
|
+
o << "ComponentSwizzle::G";
|
|
360
|
+
break;
|
|
361
|
+
case ComponentSwizzle::B:
|
|
362
|
+
o << "ComponentSwizzle::B";
|
|
363
|
+
break;
|
|
364
|
+
case ComponentSwizzle::A:
|
|
365
|
+
o << "ComponentSwizzle::A";
|
|
366
|
+
break;
|
|
367
|
+
default:
|
|
368
|
+
o << "ComponentSwizzle::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ComponentSwizzle>::type>(value);
|
|
369
|
+
}
|
|
370
|
+
return o;
|
|
371
|
+
}
|
|
372
|
+
template <typename CharT, typename Traits>
|
|
373
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CompositeAlphaMode value) {
|
|
374
|
+
switch (value) {
|
|
375
|
+
case CompositeAlphaMode::Auto:
|
|
376
|
+
o << "CompositeAlphaMode::Auto";
|
|
377
|
+
break;
|
|
378
|
+
case CompositeAlphaMode::Opaque:
|
|
379
|
+
o << "CompositeAlphaMode::Opaque";
|
|
380
|
+
break;
|
|
381
|
+
case CompositeAlphaMode::Premultiplied:
|
|
382
|
+
o << "CompositeAlphaMode::Premultiplied";
|
|
383
|
+
break;
|
|
384
|
+
case CompositeAlphaMode::Unpremultiplied:
|
|
385
|
+
o << "CompositeAlphaMode::Unpremultiplied";
|
|
386
|
+
break;
|
|
387
|
+
case CompositeAlphaMode::Inherit:
|
|
388
|
+
o << "CompositeAlphaMode::Inherit";
|
|
389
|
+
break;
|
|
390
|
+
default:
|
|
391
|
+
o << "CompositeAlphaMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CompositeAlphaMode>::type>(value);
|
|
392
|
+
}
|
|
393
|
+
return o;
|
|
394
|
+
}
|
|
395
|
+
template <typename CharT, typename Traits>
|
|
396
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CreatePipelineAsyncStatus value) {
|
|
397
|
+
switch (value) {
|
|
398
|
+
case CreatePipelineAsyncStatus::Success:
|
|
399
|
+
o << "CreatePipelineAsyncStatus::Success";
|
|
400
|
+
break;
|
|
401
|
+
case CreatePipelineAsyncStatus::CallbackCancelled:
|
|
402
|
+
o << "CreatePipelineAsyncStatus::CallbackCancelled";
|
|
403
|
+
break;
|
|
404
|
+
case CreatePipelineAsyncStatus::ValidationError:
|
|
405
|
+
o << "CreatePipelineAsyncStatus::ValidationError";
|
|
406
|
+
break;
|
|
407
|
+
case CreatePipelineAsyncStatus::InternalError:
|
|
408
|
+
o << "CreatePipelineAsyncStatus::InternalError";
|
|
409
|
+
break;
|
|
410
|
+
default:
|
|
411
|
+
o << "CreatePipelineAsyncStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CreatePipelineAsyncStatus>::type>(value);
|
|
412
|
+
}
|
|
413
|
+
return o;
|
|
414
|
+
}
|
|
415
|
+
template <typename CharT, typename Traits>
|
|
416
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, CullMode value) {
|
|
417
|
+
switch (value) {
|
|
418
|
+
case CullMode::Undefined:
|
|
419
|
+
o << "CullMode::Undefined";
|
|
420
|
+
break;
|
|
421
|
+
case CullMode::None:
|
|
422
|
+
o << "CullMode::None";
|
|
423
|
+
break;
|
|
424
|
+
case CullMode::Front:
|
|
425
|
+
o << "CullMode::Front";
|
|
426
|
+
break;
|
|
427
|
+
case CullMode::Back:
|
|
428
|
+
o << "CullMode::Back";
|
|
429
|
+
break;
|
|
430
|
+
default:
|
|
431
|
+
o << "CullMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<CullMode>::type>(value);
|
|
432
|
+
}
|
|
433
|
+
return o;
|
|
434
|
+
}
|
|
435
|
+
template <typename CharT, typename Traits>
|
|
436
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, DeviceLostReason value) {
|
|
437
|
+
switch (value) {
|
|
438
|
+
case DeviceLostReason::Unknown:
|
|
439
|
+
o << "DeviceLostReason::Unknown";
|
|
440
|
+
break;
|
|
441
|
+
case DeviceLostReason::Destroyed:
|
|
442
|
+
o << "DeviceLostReason::Destroyed";
|
|
443
|
+
break;
|
|
444
|
+
case DeviceLostReason::CallbackCancelled:
|
|
445
|
+
o << "DeviceLostReason::CallbackCancelled";
|
|
446
|
+
break;
|
|
447
|
+
case DeviceLostReason::FailedCreation:
|
|
448
|
+
o << "DeviceLostReason::FailedCreation";
|
|
449
|
+
break;
|
|
450
|
+
default:
|
|
451
|
+
o << "DeviceLostReason::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<DeviceLostReason>::type>(value);
|
|
452
|
+
}
|
|
453
|
+
return o;
|
|
454
|
+
}
|
|
455
|
+
template <typename CharT, typename Traits>
|
|
456
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, DynamicBindingKind value) {
|
|
457
|
+
switch (value) {
|
|
458
|
+
case DynamicBindingKind::Undefined:
|
|
459
|
+
o << "DynamicBindingKind::Undefined";
|
|
460
|
+
break;
|
|
461
|
+
case DynamicBindingKind::SampledTexture:
|
|
462
|
+
o << "DynamicBindingKind::SampledTexture";
|
|
463
|
+
break;
|
|
464
|
+
default:
|
|
465
|
+
o << "DynamicBindingKind::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<DynamicBindingKind>::type>(value);
|
|
466
|
+
}
|
|
467
|
+
return o;
|
|
468
|
+
}
|
|
469
|
+
template <typename CharT, typename Traits>
|
|
470
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ErrorFilter value) {
|
|
471
|
+
switch (value) {
|
|
472
|
+
case ErrorFilter::Validation:
|
|
473
|
+
o << "ErrorFilter::Validation";
|
|
474
|
+
break;
|
|
475
|
+
case ErrorFilter::OutOfMemory:
|
|
476
|
+
o << "ErrorFilter::OutOfMemory";
|
|
477
|
+
break;
|
|
478
|
+
case ErrorFilter::Internal:
|
|
479
|
+
o << "ErrorFilter::Internal";
|
|
480
|
+
break;
|
|
481
|
+
default:
|
|
482
|
+
o << "ErrorFilter::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ErrorFilter>::type>(value);
|
|
483
|
+
}
|
|
484
|
+
return o;
|
|
485
|
+
}
|
|
486
|
+
template <typename CharT, typename Traits>
|
|
487
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ErrorType value) {
|
|
488
|
+
switch (value) {
|
|
489
|
+
case ErrorType::NoError:
|
|
490
|
+
o << "ErrorType::NoError";
|
|
491
|
+
break;
|
|
492
|
+
case ErrorType::Validation:
|
|
493
|
+
o << "ErrorType::Validation";
|
|
494
|
+
break;
|
|
495
|
+
case ErrorType::OutOfMemory:
|
|
496
|
+
o << "ErrorType::OutOfMemory";
|
|
497
|
+
break;
|
|
498
|
+
case ErrorType::Internal:
|
|
499
|
+
o << "ErrorType::Internal";
|
|
500
|
+
break;
|
|
501
|
+
case ErrorType::Unknown:
|
|
502
|
+
o << "ErrorType::Unknown";
|
|
503
|
+
break;
|
|
504
|
+
default:
|
|
505
|
+
o << "ErrorType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ErrorType>::type>(value);
|
|
506
|
+
}
|
|
507
|
+
return o;
|
|
508
|
+
}
|
|
509
|
+
template <typename CharT, typename Traits>
|
|
510
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ExternalTextureRotation value) {
|
|
511
|
+
switch (value) {
|
|
512
|
+
case ExternalTextureRotation::Rotate0Degrees:
|
|
513
|
+
o << "ExternalTextureRotation::Rotate0Degrees";
|
|
514
|
+
break;
|
|
515
|
+
case ExternalTextureRotation::Rotate90Degrees:
|
|
516
|
+
o << "ExternalTextureRotation::Rotate90Degrees";
|
|
517
|
+
break;
|
|
518
|
+
case ExternalTextureRotation::Rotate180Degrees:
|
|
519
|
+
o << "ExternalTextureRotation::Rotate180Degrees";
|
|
520
|
+
break;
|
|
521
|
+
case ExternalTextureRotation::Rotate270Degrees:
|
|
522
|
+
o << "ExternalTextureRotation::Rotate270Degrees";
|
|
523
|
+
break;
|
|
524
|
+
default:
|
|
525
|
+
o << "ExternalTextureRotation::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ExternalTextureRotation>::type>(value);
|
|
526
|
+
}
|
|
527
|
+
return o;
|
|
528
|
+
}
|
|
529
|
+
template <typename CharT, typename Traits>
|
|
530
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, FeatureLevel value) {
|
|
531
|
+
switch (value) {
|
|
532
|
+
case FeatureLevel::Undefined:
|
|
533
|
+
o << "FeatureLevel::Undefined";
|
|
534
|
+
break;
|
|
535
|
+
case FeatureLevel::Compatibility:
|
|
536
|
+
o << "FeatureLevel::Compatibility";
|
|
537
|
+
break;
|
|
538
|
+
case FeatureLevel::Core:
|
|
539
|
+
o << "FeatureLevel::Core";
|
|
540
|
+
break;
|
|
541
|
+
default:
|
|
542
|
+
o << "FeatureLevel::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<FeatureLevel>::type>(value);
|
|
543
|
+
}
|
|
544
|
+
return o;
|
|
545
|
+
}
|
|
546
|
+
template <typename CharT, typename Traits>
|
|
547
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, FeatureName value) {
|
|
548
|
+
switch (value) {
|
|
549
|
+
case FeatureName::CoreFeaturesAndLimits:
|
|
550
|
+
o << "FeatureName::CoreFeaturesAndLimits";
|
|
551
|
+
break;
|
|
552
|
+
case FeatureName::DepthClipControl:
|
|
553
|
+
o << "FeatureName::DepthClipControl";
|
|
554
|
+
break;
|
|
555
|
+
case FeatureName::Depth32FloatStencil8:
|
|
556
|
+
o << "FeatureName::Depth32FloatStencil8";
|
|
557
|
+
break;
|
|
558
|
+
case FeatureName::TextureCompressionBC:
|
|
559
|
+
o << "FeatureName::TextureCompressionBC";
|
|
560
|
+
break;
|
|
561
|
+
case FeatureName::TextureCompressionBCSliced3D:
|
|
562
|
+
o << "FeatureName::TextureCompressionBCSliced3D";
|
|
563
|
+
break;
|
|
564
|
+
case FeatureName::TextureCompressionETC2:
|
|
565
|
+
o << "FeatureName::TextureCompressionETC2";
|
|
566
|
+
break;
|
|
567
|
+
case FeatureName::TextureCompressionASTC:
|
|
568
|
+
o << "FeatureName::TextureCompressionASTC";
|
|
569
|
+
break;
|
|
570
|
+
case FeatureName::TextureCompressionASTCSliced3D:
|
|
571
|
+
o << "FeatureName::TextureCompressionASTCSliced3D";
|
|
572
|
+
break;
|
|
573
|
+
case FeatureName::TimestampQuery:
|
|
574
|
+
o << "FeatureName::TimestampQuery";
|
|
575
|
+
break;
|
|
576
|
+
case FeatureName::IndirectFirstInstance:
|
|
577
|
+
o << "FeatureName::IndirectFirstInstance";
|
|
578
|
+
break;
|
|
579
|
+
case FeatureName::ShaderF16:
|
|
580
|
+
o << "FeatureName::ShaderF16";
|
|
581
|
+
break;
|
|
582
|
+
case FeatureName::RG11B10UfloatRenderable:
|
|
583
|
+
o << "FeatureName::RG11B10UfloatRenderable";
|
|
584
|
+
break;
|
|
585
|
+
case FeatureName::BGRA8UnormStorage:
|
|
586
|
+
o << "FeatureName::BGRA8UnormStorage";
|
|
587
|
+
break;
|
|
588
|
+
case FeatureName::Float32Filterable:
|
|
589
|
+
o << "FeatureName::Float32Filterable";
|
|
590
|
+
break;
|
|
591
|
+
case FeatureName::Float32Blendable:
|
|
592
|
+
o << "FeatureName::Float32Blendable";
|
|
593
|
+
break;
|
|
594
|
+
case FeatureName::ClipDistances:
|
|
595
|
+
o << "FeatureName::ClipDistances";
|
|
596
|
+
break;
|
|
597
|
+
case FeatureName::DualSourceBlending:
|
|
598
|
+
o << "FeatureName::DualSourceBlending";
|
|
599
|
+
break;
|
|
600
|
+
case FeatureName::Subgroups:
|
|
601
|
+
o << "FeatureName::Subgroups";
|
|
602
|
+
break;
|
|
603
|
+
case FeatureName::TextureFormatsTier1:
|
|
604
|
+
o << "FeatureName::TextureFormatsTier1";
|
|
605
|
+
break;
|
|
606
|
+
case FeatureName::TextureFormatsTier2:
|
|
607
|
+
o << "FeatureName::TextureFormatsTier2";
|
|
608
|
+
break;
|
|
609
|
+
case FeatureName::PrimitiveIndex:
|
|
610
|
+
o << "FeatureName::PrimitiveIndex";
|
|
611
|
+
break;
|
|
612
|
+
case FeatureName::DawnInternalUsages:
|
|
613
|
+
o << "FeatureName::DawnInternalUsages";
|
|
614
|
+
break;
|
|
615
|
+
case FeatureName::DawnMultiPlanarFormats:
|
|
616
|
+
o << "FeatureName::DawnMultiPlanarFormats";
|
|
617
|
+
break;
|
|
618
|
+
case FeatureName::DawnNative:
|
|
619
|
+
o << "FeatureName::DawnNative";
|
|
620
|
+
break;
|
|
621
|
+
case FeatureName::ChromiumExperimentalTimestampQueryInsidePasses:
|
|
622
|
+
o << "FeatureName::ChromiumExperimentalTimestampQueryInsidePasses";
|
|
623
|
+
break;
|
|
624
|
+
case FeatureName::ImplicitDeviceSynchronization:
|
|
625
|
+
o << "FeatureName::ImplicitDeviceSynchronization";
|
|
626
|
+
break;
|
|
627
|
+
case FeatureName::TransientAttachments:
|
|
628
|
+
o << "FeatureName::TransientAttachments";
|
|
629
|
+
break;
|
|
630
|
+
case FeatureName::MSAARenderToSingleSampled:
|
|
631
|
+
o << "FeatureName::MSAARenderToSingleSampled";
|
|
632
|
+
break;
|
|
633
|
+
case FeatureName::D3D11MultithreadProtected:
|
|
634
|
+
o << "FeatureName::D3D11MultithreadProtected";
|
|
635
|
+
break;
|
|
636
|
+
case FeatureName::ANGLETextureSharing:
|
|
637
|
+
o << "FeatureName::ANGLETextureSharing";
|
|
638
|
+
break;
|
|
639
|
+
case FeatureName::PixelLocalStorageCoherent:
|
|
640
|
+
o << "FeatureName::PixelLocalStorageCoherent";
|
|
641
|
+
break;
|
|
642
|
+
case FeatureName::PixelLocalStorageNonCoherent:
|
|
643
|
+
o << "FeatureName::PixelLocalStorageNonCoherent";
|
|
644
|
+
break;
|
|
645
|
+
case FeatureName::Unorm16TextureFormats:
|
|
646
|
+
o << "FeatureName::Unorm16TextureFormats";
|
|
647
|
+
break;
|
|
648
|
+
case FeatureName::Snorm16TextureFormats:
|
|
649
|
+
o << "FeatureName::Snorm16TextureFormats";
|
|
650
|
+
break;
|
|
651
|
+
case FeatureName::MultiPlanarFormatExtendedUsages:
|
|
652
|
+
o << "FeatureName::MultiPlanarFormatExtendedUsages";
|
|
653
|
+
break;
|
|
654
|
+
case FeatureName::MultiPlanarFormatP010:
|
|
655
|
+
o << "FeatureName::MultiPlanarFormatP010";
|
|
656
|
+
break;
|
|
657
|
+
case FeatureName::HostMappedPointer:
|
|
658
|
+
o << "FeatureName::HostMappedPointer";
|
|
659
|
+
break;
|
|
660
|
+
case FeatureName::MultiPlanarRenderTargets:
|
|
661
|
+
o << "FeatureName::MultiPlanarRenderTargets";
|
|
662
|
+
break;
|
|
663
|
+
case FeatureName::MultiPlanarFormatNv12a:
|
|
664
|
+
o << "FeatureName::MultiPlanarFormatNv12a";
|
|
665
|
+
break;
|
|
666
|
+
case FeatureName::FramebufferFetch:
|
|
667
|
+
o << "FeatureName::FramebufferFetch";
|
|
668
|
+
break;
|
|
669
|
+
case FeatureName::BufferMapExtendedUsages:
|
|
670
|
+
o << "FeatureName::BufferMapExtendedUsages";
|
|
671
|
+
break;
|
|
672
|
+
case FeatureName::AdapterPropertiesMemoryHeaps:
|
|
673
|
+
o << "FeatureName::AdapterPropertiesMemoryHeaps";
|
|
674
|
+
break;
|
|
675
|
+
case FeatureName::AdapterPropertiesD3D:
|
|
676
|
+
o << "FeatureName::AdapterPropertiesD3D";
|
|
677
|
+
break;
|
|
678
|
+
case FeatureName::AdapterPropertiesVk:
|
|
679
|
+
o << "FeatureName::AdapterPropertiesVk";
|
|
680
|
+
break;
|
|
681
|
+
case FeatureName::R8UnormStorage:
|
|
682
|
+
o << "FeatureName::R8UnormStorage";
|
|
683
|
+
break;
|
|
684
|
+
case FeatureName::DawnFormatCapabilities:
|
|
685
|
+
o << "FeatureName::DawnFormatCapabilities";
|
|
686
|
+
break;
|
|
687
|
+
case FeatureName::DawnDrmFormatCapabilities:
|
|
688
|
+
o << "FeatureName::DawnDrmFormatCapabilities";
|
|
689
|
+
break;
|
|
690
|
+
case FeatureName::Norm16TextureFormats:
|
|
691
|
+
o << "FeatureName::Norm16TextureFormats";
|
|
692
|
+
break;
|
|
693
|
+
case FeatureName::MultiPlanarFormatNv16:
|
|
694
|
+
o << "FeatureName::MultiPlanarFormatNv16";
|
|
695
|
+
break;
|
|
696
|
+
case FeatureName::MultiPlanarFormatNv24:
|
|
697
|
+
o << "FeatureName::MultiPlanarFormatNv24";
|
|
698
|
+
break;
|
|
699
|
+
case FeatureName::MultiPlanarFormatP210:
|
|
700
|
+
o << "FeatureName::MultiPlanarFormatP210";
|
|
701
|
+
break;
|
|
702
|
+
case FeatureName::MultiPlanarFormatP410:
|
|
703
|
+
o << "FeatureName::MultiPlanarFormatP410";
|
|
704
|
+
break;
|
|
705
|
+
case FeatureName::SharedTextureMemoryVkDedicatedAllocation:
|
|
706
|
+
o << "FeatureName::SharedTextureMemoryVkDedicatedAllocation";
|
|
707
|
+
break;
|
|
708
|
+
case FeatureName::SharedTextureMemoryAHardwareBuffer:
|
|
709
|
+
o << "FeatureName::SharedTextureMemoryAHardwareBuffer";
|
|
710
|
+
break;
|
|
711
|
+
case FeatureName::SharedTextureMemoryDmaBuf:
|
|
712
|
+
o << "FeatureName::SharedTextureMemoryDmaBuf";
|
|
713
|
+
break;
|
|
714
|
+
case FeatureName::SharedTextureMemoryOpaqueFD:
|
|
715
|
+
o << "FeatureName::SharedTextureMemoryOpaqueFD";
|
|
716
|
+
break;
|
|
717
|
+
case FeatureName::SharedTextureMemoryZirconHandle:
|
|
718
|
+
o << "FeatureName::SharedTextureMemoryZirconHandle";
|
|
719
|
+
break;
|
|
720
|
+
case FeatureName::SharedTextureMemoryDXGISharedHandle:
|
|
721
|
+
o << "FeatureName::SharedTextureMemoryDXGISharedHandle";
|
|
722
|
+
break;
|
|
723
|
+
case FeatureName::SharedTextureMemoryD3D11Texture2D:
|
|
724
|
+
o << "FeatureName::SharedTextureMemoryD3D11Texture2D";
|
|
725
|
+
break;
|
|
726
|
+
case FeatureName::SharedTextureMemoryIOSurface:
|
|
727
|
+
o << "FeatureName::SharedTextureMemoryIOSurface";
|
|
728
|
+
break;
|
|
729
|
+
case FeatureName::SharedTextureMemoryEGLImage:
|
|
730
|
+
o << "FeatureName::SharedTextureMemoryEGLImage";
|
|
731
|
+
break;
|
|
732
|
+
case FeatureName::SharedFenceVkSemaphoreOpaqueFD:
|
|
733
|
+
o << "FeatureName::SharedFenceVkSemaphoreOpaqueFD";
|
|
734
|
+
break;
|
|
735
|
+
case FeatureName::SharedFenceSyncFD:
|
|
736
|
+
o << "FeatureName::SharedFenceSyncFD";
|
|
737
|
+
break;
|
|
738
|
+
case FeatureName::SharedFenceVkSemaphoreZirconHandle:
|
|
739
|
+
o << "FeatureName::SharedFenceVkSemaphoreZirconHandle";
|
|
740
|
+
break;
|
|
741
|
+
case FeatureName::SharedFenceDXGISharedHandle:
|
|
742
|
+
o << "FeatureName::SharedFenceDXGISharedHandle";
|
|
743
|
+
break;
|
|
744
|
+
case FeatureName::SharedFenceMTLSharedEvent:
|
|
745
|
+
o << "FeatureName::SharedFenceMTLSharedEvent";
|
|
746
|
+
break;
|
|
747
|
+
case FeatureName::SharedBufferMemoryD3D12Resource:
|
|
748
|
+
o << "FeatureName::SharedBufferMemoryD3D12Resource";
|
|
749
|
+
break;
|
|
750
|
+
case FeatureName::StaticSamplers:
|
|
751
|
+
o << "FeatureName::StaticSamplers";
|
|
752
|
+
break;
|
|
753
|
+
case FeatureName::YCbCrVulkanSamplers:
|
|
754
|
+
o << "FeatureName::YCbCrVulkanSamplers";
|
|
755
|
+
break;
|
|
756
|
+
case FeatureName::ShaderModuleCompilationOptions:
|
|
757
|
+
o << "FeatureName::ShaderModuleCompilationOptions";
|
|
758
|
+
break;
|
|
759
|
+
case FeatureName::DawnLoadResolveTexture:
|
|
760
|
+
o << "FeatureName::DawnLoadResolveTexture";
|
|
761
|
+
break;
|
|
762
|
+
case FeatureName::DawnPartialLoadResolveTexture:
|
|
763
|
+
o << "FeatureName::DawnPartialLoadResolveTexture";
|
|
764
|
+
break;
|
|
765
|
+
case FeatureName::MultiDrawIndirect:
|
|
766
|
+
o << "FeatureName::MultiDrawIndirect";
|
|
767
|
+
break;
|
|
768
|
+
case FeatureName::DawnTexelCopyBufferRowAlignment:
|
|
769
|
+
o << "FeatureName::DawnTexelCopyBufferRowAlignment";
|
|
770
|
+
break;
|
|
771
|
+
case FeatureName::FlexibleTextureViews:
|
|
772
|
+
o << "FeatureName::FlexibleTextureViews";
|
|
773
|
+
break;
|
|
774
|
+
case FeatureName::ChromiumExperimentalSubgroupMatrix:
|
|
775
|
+
o << "FeatureName::ChromiumExperimentalSubgroupMatrix";
|
|
776
|
+
break;
|
|
777
|
+
case FeatureName::SharedFenceEGLSync:
|
|
778
|
+
o << "FeatureName::SharedFenceEGLSync";
|
|
779
|
+
break;
|
|
780
|
+
case FeatureName::DawnDeviceAllocatorControl:
|
|
781
|
+
o << "FeatureName::DawnDeviceAllocatorControl";
|
|
782
|
+
break;
|
|
783
|
+
case FeatureName::TextureComponentSwizzle:
|
|
784
|
+
o << "FeatureName::TextureComponentSwizzle";
|
|
785
|
+
break;
|
|
786
|
+
case FeatureName::ChromiumExperimentalBindless:
|
|
787
|
+
o << "FeatureName::ChromiumExperimentalBindless";
|
|
788
|
+
break;
|
|
789
|
+
case FeatureName::AdapterPropertiesWGPU:
|
|
790
|
+
o << "FeatureName::AdapterPropertiesWGPU";
|
|
791
|
+
break;
|
|
792
|
+
default:
|
|
793
|
+
o << "FeatureName::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<FeatureName>::type>(value);
|
|
794
|
+
}
|
|
795
|
+
return o;
|
|
796
|
+
}
|
|
797
|
+
template <typename CharT, typename Traits>
|
|
798
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, FilterMode value) {
|
|
799
|
+
switch (value) {
|
|
800
|
+
case FilterMode::Undefined:
|
|
801
|
+
o << "FilterMode::Undefined";
|
|
802
|
+
break;
|
|
803
|
+
case FilterMode::Nearest:
|
|
804
|
+
o << "FilterMode::Nearest";
|
|
805
|
+
break;
|
|
806
|
+
case FilterMode::Linear:
|
|
807
|
+
o << "FilterMode::Linear";
|
|
808
|
+
break;
|
|
809
|
+
default:
|
|
810
|
+
o << "FilterMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<FilterMode>::type>(value);
|
|
811
|
+
}
|
|
812
|
+
return o;
|
|
813
|
+
}
|
|
814
|
+
template <typename CharT, typename Traits>
|
|
815
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, FrontFace value) {
|
|
816
|
+
switch (value) {
|
|
817
|
+
case FrontFace::Undefined:
|
|
818
|
+
o << "FrontFace::Undefined";
|
|
819
|
+
break;
|
|
820
|
+
case FrontFace::CCW:
|
|
821
|
+
o << "FrontFace::CCW";
|
|
822
|
+
break;
|
|
823
|
+
case FrontFace::CW:
|
|
824
|
+
o << "FrontFace::CW";
|
|
825
|
+
break;
|
|
826
|
+
default:
|
|
827
|
+
o << "FrontFace::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<FrontFace>::type>(value);
|
|
828
|
+
}
|
|
829
|
+
return o;
|
|
830
|
+
}
|
|
831
|
+
template <typename CharT, typename Traits>
|
|
832
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, IndexFormat value) {
|
|
833
|
+
switch (value) {
|
|
834
|
+
case IndexFormat::Undefined:
|
|
835
|
+
o << "IndexFormat::Undefined";
|
|
836
|
+
break;
|
|
837
|
+
case IndexFormat::Uint16:
|
|
838
|
+
o << "IndexFormat::Uint16";
|
|
839
|
+
break;
|
|
840
|
+
case IndexFormat::Uint32:
|
|
841
|
+
o << "IndexFormat::Uint32";
|
|
842
|
+
break;
|
|
843
|
+
default:
|
|
844
|
+
o << "IndexFormat::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<IndexFormat>::type>(value);
|
|
845
|
+
}
|
|
846
|
+
return o;
|
|
847
|
+
}
|
|
848
|
+
template <typename CharT, typename Traits>
|
|
849
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, InstanceFeatureName value) {
|
|
850
|
+
switch (value) {
|
|
851
|
+
case InstanceFeatureName::TimedWaitAny:
|
|
852
|
+
o << "InstanceFeatureName::TimedWaitAny";
|
|
853
|
+
break;
|
|
854
|
+
case InstanceFeatureName::ShaderSourceSPIRV:
|
|
855
|
+
o << "InstanceFeatureName::ShaderSourceSPIRV";
|
|
856
|
+
break;
|
|
857
|
+
case InstanceFeatureName::MultipleDevicesPerAdapter:
|
|
858
|
+
o << "InstanceFeatureName::MultipleDevicesPerAdapter";
|
|
859
|
+
break;
|
|
860
|
+
default:
|
|
861
|
+
o << "InstanceFeatureName::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<InstanceFeatureName>::type>(value);
|
|
862
|
+
}
|
|
863
|
+
return o;
|
|
864
|
+
}
|
|
865
|
+
template <typename CharT, typename Traits>
|
|
866
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, LoadOp value) {
|
|
867
|
+
switch (value) {
|
|
868
|
+
case LoadOp::Undefined:
|
|
869
|
+
o << "LoadOp::Undefined";
|
|
870
|
+
break;
|
|
871
|
+
case LoadOp::Load:
|
|
872
|
+
o << "LoadOp::Load";
|
|
873
|
+
break;
|
|
874
|
+
case LoadOp::Clear:
|
|
875
|
+
o << "LoadOp::Clear";
|
|
876
|
+
break;
|
|
877
|
+
case LoadOp::ExpandResolveTexture:
|
|
878
|
+
o << "LoadOp::ExpandResolveTexture";
|
|
879
|
+
break;
|
|
880
|
+
default:
|
|
881
|
+
o << "LoadOp::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<LoadOp>::type>(value);
|
|
882
|
+
}
|
|
883
|
+
return o;
|
|
884
|
+
}
|
|
885
|
+
template <typename CharT, typename Traits>
|
|
886
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, LoggingType value) {
|
|
887
|
+
switch (value) {
|
|
888
|
+
case LoggingType::Verbose:
|
|
889
|
+
o << "LoggingType::Verbose";
|
|
890
|
+
break;
|
|
891
|
+
case LoggingType::Info:
|
|
892
|
+
o << "LoggingType::Info";
|
|
893
|
+
break;
|
|
894
|
+
case LoggingType::Warning:
|
|
895
|
+
o << "LoggingType::Warning";
|
|
896
|
+
break;
|
|
897
|
+
case LoggingType::Error:
|
|
898
|
+
o << "LoggingType::Error";
|
|
899
|
+
break;
|
|
900
|
+
default:
|
|
901
|
+
o << "LoggingType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<LoggingType>::type>(value);
|
|
902
|
+
}
|
|
903
|
+
return o;
|
|
904
|
+
}
|
|
905
|
+
template <typename CharT, typename Traits>
|
|
906
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, MapAsyncStatus value) {
|
|
907
|
+
switch (value) {
|
|
908
|
+
case MapAsyncStatus::Success:
|
|
909
|
+
o << "MapAsyncStatus::Success";
|
|
910
|
+
break;
|
|
911
|
+
case MapAsyncStatus::CallbackCancelled:
|
|
912
|
+
o << "MapAsyncStatus::CallbackCancelled";
|
|
913
|
+
break;
|
|
914
|
+
case MapAsyncStatus::Error:
|
|
915
|
+
o << "MapAsyncStatus::Error";
|
|
916
|
+
break;
|
|
917
|
+
case MapAsyncStatus::Aborted:
|
|
918
|
+
o << "MapAsyncStatus::Aborted";
|
|
919
|
+
break;
|
|
920
|
+
default:
|
|
921
|
+
o << "MapAsyncStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<MapAsyncStatus>::type>(value);
|
|
922
|
+
}
|
|
923
|
+
return o;
|
|
924
|
+
}
|
|
925
|
+
template <typename CharT, typename Traits>
|
|
926
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, MipmapFilterMode value) {
|
|
927
|
+
switch (value) {
|
|
928
|
+
case MipmapFilterMode::Undefined:
|
|
929
|
+
o << "MipmapFilterMode::Undefined";
|
|
930
|
+
break;
|
|
931
|
+
case MipmapFilterMode::Nearest:
|
|
932
|
+
o << "MipmapFilterMode::Nearest";
|
|
933
|
+
break;
|
|
934
|
+
case MipmapFilterMode::Linear:
|
|
935
|
+
o << "MipmapFilterMode::Linear";
|
|
936
|
+
break;
|
|
937
|
+
default:
|
|
938
|
+
o << "MipmapFilterMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<MipmapFilterMode>::type>(value);
|
|
939
|
+
}
|
|
940
|
+
return o;
|
|
941
|
+
}
|
|
942
|
+
template <typename CharT, typename Traits>
|
|
943
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, PopErrorScopeStatus value) {
|
|
944
|
+
switch (value) {
|
|
945
|
+
case PopErrorScopeStatus::Success:
|
|
946
|
+
o << "PopErrorScopeStatus::Success";
|
|
947
|
+
break;
|
|
948
|
+
case PopErrorScopeStatus::CallbackCancelled:
|
|
949
|
+
o << "PopErrorScopeStatus::CallbackCancelled";
|
|
950
|
+
break;
|
|
951
|
+
case PopErrorScopeStatus::Error:
|
|
952
|
+
o << "PopErrorScopeStatus::Error";
|
|
953
|
+
break;
|
|
954
|
+
default:
|
|
955
|
+
o << "PopErrorScopeStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<PopErrorScopeStatus>::type>(value);
|
|
956
|
+
}
|
|
957
|
+
return o;
|
|
958
|
+
}
|
|
959
|
+
template <typename CharT, typename Traits>
|
|
960
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, PowerPreference value) {
|
|
961
|
+
switch (value) {
|
|
962
|
+
case PowerPreference::Undefined:
|
|
963
|
+
o << "PowerPreference::Undefined";
|
|
964
|
+
break;
|
|
965
|
+
case PowerPreference::LowPower:
|
|
966
|
+
o << "PowerPreference::LowPower";
|
|
967
|
+
break;
|
|
968
|
+
case PowerPreference::HighPerformance:
|
|
969
|
+
o << "PowerPreference::HighPerformance";
|
|
970
|
+
break;
|
|
971
|
+
default:
|
|
972
|
+
o << "PowerPreference::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<PowerPreference>::type>(value);
|
|
973
|
+
}
|
|
974
|
+
return o;
|
|
975
|
+
}
|
|
976
|
+
template <typename CharT, typename Traits>
|
|
977
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, PredefinedColorSpace value) {
|
|
978
|
+
switch (value) {
|
|
979
|
+
case PredefinedColorSpace::SRGB:
|
|
980
|
+
o << "PredefinedColorSpace::SRGB";
|
|
981
|
+
break;
|
|
982
|
+
case PredefinedColorSpace::DisplayP3:
|
|
983
|
+
o << "PredefinedColorSpace::DisplayP3";
|
|
984
|
+
break;
|
|
985
|
+
default:
|
|
986
|
+
o << "PredefinedColorSpace::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<PredefinedColorSpace>::type>(value);
|
|
987
|
+
}
|
|
988
|
+
return o;
|
|
989
|
+
}
|
|
990
|
+
template <typename CharT, typename Traits>
|
|
991
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, PresentMode value) {
|
|
992
|
+
switch (value) {
|
|
993
|
+
case PresentMode::Undefined:
|
|
994
|
+
o << "PresentMode::Undefined";
|
|
995
|
+
break;
|
|
996
|
+
case PresentMode::Fifo:
|
|
997
|
+
o << "PresentMode::Fifo";
|
|
998
|
+
break;
|
|
999
|
+
case PresentMode::FifoRelaxed:
|
|
1000
|
+
o << "PresentMode::FifoRelaxed";
|
|
1001
|
+
break;
|
|
1002
|
+
case PresentMode::Immediate:
|
|
1003
|
+
o << "PresentMode::Immediate";
|
|
1004
|
+
break;
|
|
1005
|
+
case PresentMode::Mailbox:
|
|
1006
|
+
o << "PresentMode::Mailbox";
|
|
1007
|
+
break;
|
|
1008
|
+
default:
|
|
1009
|
+
o << "PresentMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<PresentMode>::type>(value);
|
|
1010
|
+
}
|
|
1011
|
+
return o;
|
|
1012
|
+
}
|
|
1013
|
+
template <typename CharT, typename Traits>
|
|
1014
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, PrimitiveTopology value) {
|
|
1015
|
+
switch (value) {
|
|
1016
|
+
case PrimitiveTopology::Undefined:
|
|
1017
|
+
o << "PrimitiveTopology::Undefined";
|
|
1018
|
+
break;
|
|
1019
|
+
case PrimitiveTopology::PointList:
|
|
1020
|
+
o << "PrimitiveTopology::PointList";
|
|
1021
|
+
break;
|
|
1022
|
+
case PrimitiveTopology::LineList:
|
|
1023
|
+
o << "PrimitiveTopology::LineList";
|
|
1024
|
+
break;
|
|
1025
|
+
case PrimitiveTopology::LineStrip:
|
|
1026
|
+
o << "PrimitiveTopology::LineStrip";
|
|
1027
|
+
break;
|
|
1028
|
+
case PrimitiveTopology::TriangleList:
|
|
1029
|
+
o << "PrimitiveTopology::TriangleList";
|
|
1030
|
+
break;
|
|
1031
|
+
case PrimitiveTopology::TriangleStrip:
|
|
1032
|
+
o << "PrimitiveTopology::TriangleStrip";
|
|
1033
|
+
break;
|
|
1034
|
+
default:
|
|
1035
|
+
o << "PrimitiveTopology::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<PrimitiveTopology>::type>(value);
|
|
1036
|
+
}
|
|
1037
|
+
return o;
|
|
1038
|
+
}
|
|
1039
|
+
template <typename CharT, typename Traits>
|
|
1040
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, QueryType value) {
|
|
1041
|
+
switch (value) {
|
|
1042
|
+
case QueryType::Occlusion:
|
|
1043
|
+
o << "QueryType::Occlusion";
|
|
1044
|
+
break;
|
|
1045
|
+
case QueryType::Timestamp:
|
|
1046
|
+
o << "QueryType::Timestamp";
|
|
1047
|
+
break;
|
|
1048
|
+
default:
|
|
1049
|
+
o << "QueryType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<QueryType>::type>(value);
|
|
1050
|
+
}
|
|
1051
|
+
return o;
|
|
1052
|
+
}
|
|
1053
|
+
template <typename CharT, typename Traits>
|
|
1054
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, QueueWorkDoneStatus value) {
|
|
1055
|
+
switch (value) {
|
|
1056
|
+
case QueueWorkDoneStatus::Success:
|
|
1057
|
+
o << "QueueWorkDoneStatus::Success";
|
|
1058
|
+
break;
|
|
1059
|
+
case QueueWorkDoneStatus::CallbackCancelled:
|
|
1060
|
+
o << "QueueWorkDoneStatus::CallbackCancelled";
|
|
1061
|
+
break;
|
|
1062
|
+
case QueueWorkDoneStatus::Error:
|
|
1063
|
+
o << "QueueWorkDoneStatus::Error";
|
|
1064
|
+
break;
|
|
1065
|
+
default:
|
|
1066
|
+
o << "QueueWorkDoneStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<QueueWorkDoneStatus>::type>(value);
|
|
1067
|
+
}
|
|
1068
|
+
return o;
|
|
1069
|
+
}
|
|
1070
|
+
template <typename CharT, typename Traits>
|
|
1071
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, RequestAdapterStatus value) {
|
|
1072
|
+
switch (value) {
|
|
1073
|
+
case RequestAdapterStatus::Success:
|
|
1074
|
+
o << "RequestAdapterStatus::Success";
|
|
1075
|
+
break;
|
|
1076
|
+
case RequestAdapterStatus::CallbackCancelled:
|
|
1077
|
+
o << "RequestAdapterStatus::CallbackCancelled";
|
|
1078
|
+
break;
|
|
1079
|
+
case RequestAdapterStatus::Unavailable:
|
|
1080
|
+
o << "RequestAdapterStatus::Unavailable";
|
|
1081
|
+
break;
|
|
1082
|
+
case RequestAdapterStatus::Error:
|
|
1083
|
+
o << "RequestAdapterStatus::Error";
|
|
1084
|
+
break;
|
|
1085
|
+
default:
|
|
1086
|
+
o << "RequestAdapterStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<RequestAdapterStatus>::type>(value);
|
|
1087
|
+
}
|
|
1088
|
+
return o;
|
|
1089
|
+
}
|
|
1090
|
+
template <typename CharT, typename Traits>
|
|
1091
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, RequestDeviceStatus value) {
|
|
1092
|
+
switch (value) {
|
|
1093
|
+
case RequestDeviceStatus::Success:
|
|
1094
|
+
o << "RequestDeviceStatus::Success";
|
|
1095
|
+
break;
|
|
1096
|
+
case RequestDeviceStatus::CallbackCancelled:
|
|
1097
|
+
o << "RequestDeviceStatus::CallbackCancelled";
|
|
1098
|
+
break;
|
|
1099
|
+
case RequestDeviceStatus::Error:
|
|
1100
|
+
o << "RequestDeviceStatus::Error";
|
|
1101
|
+
break;
|
|
1102
|
+
default:
|
|
1103
|
+
o << "RequestDeviceStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<RequestDeviceStatus>::type>(value);
|
|
1104
|
+
}
|
|
1105
|
+
return o;
|
|
1106
|
+
}
|
|
1107
|
+
template <typename CharT, typename Traits>
|
|
1108
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, SamplerBindingType value) {
|
|
1109
|
+
switch (value) {
|
|
1110
|
+
case SamplerBindingType::BindingNotUsed:
|
|
1111
|
+
o << "SamplerBindingType::BindingNotUsed";
|
|
1112
|
+
break;
|
|
1113
|
+
case SamplerBindingType::Undefined:
|
|
1114
|
+
o << "SamplerBindingType::Undefined";
|
|
1115
|
+
break;
|
|
1116
|
+
case SamplerBindingType::Filtering:
|
|
1117
|
+
o << "SamplerBindingType::Filtering";
|
|
1118
|
+
break;
|
|
1119
|
+
case SamplerBindingType::NonFiltering:
|
|
1120
|
+
o << "SamplerBindingType::NonFiltering";
|
|
1121
|
+
break;
|
|
1122
|
+
case SamplerBindingType::Comparison:
|
|
1123
|
+
o << "SamplerBindingType::Comparison";
|
|
1124
|
+
break;
|
|
1125
|
+
default:
|
|
1126
|
+
o << "SamplerBindingType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<SamplerBindingType>::type>(value);
|
|
1127
|
+
}
|
|
1128
|
+
return o;
|
|
1129
|
+
}
|
|
1130
|
+
template <typename CharT, typename Traits>
|
|
1131
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, SharedFenceType value) {
|
|
1132
|
+
switch (value) {
|
|
1133
|
+
case SharedFenceType::VkSemaphoreOpaqueFD:
|
|
1134
|
+
o << "SharedFenceType::VkSemaphoreOpaqueFD";
|
|
1135
|
+
break;
|
|
1136
|
+
case SharedFenceType::SyncFD:
|
|
1137
|
+
o << "SharedFenceType::SyncFD";
|
|
1138
|
+
break;
|
|
1139
|
+
case SharedFenceType::VkSemaphoreZirconHandle:
|
|
1140
|
+
o << "SharedFenceType::VkSemaphoreZirconHandle";
|
|
1141
|
+
break;
|
|
1142
|
+
case SharedFenceType::DXGISharedHandle:
|
|
1143
|
+
o << "SharedFenceType::DXGISharedHandle";
|
|
1144
|
+
break;
|
|
1145
|
+
case SharedFenceType::MTLSharedEvent:
|
|
1146
|
+
o << "SharedFenceType::MTLSharedEvent";
|
|
1147
|
+
break;
|
|
1148
|
+
case SharedFenceType::EGLSync:
|
|
1149
|
+
o << "SharedFenceType::EGLSync";
|
|
1150
|
+
break;
|
|
1151
|
+
default:
|
|
1152
|
+
o << "SharedFenceType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<SharedFenceType>::type>(value);
|
|
1153
|
+
}
|
|
1154
|
+
return o;
|
|
1155
|
+
}
|
|
1156
|
+
template <typename CharT, typename Traits>
|
|
1157
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, Status value) {
|
|
1158
|
+
switch (value) {
|
|
1159
|
+
case Status::Success:
|
|
1160
|
+
o << "Status::Success";
|
|
1161
|
+
break;
|
|
1162
|
+
case Status::Error:
|
|
1163
|
+
o << "Status::Error";
|
|
1164
|
+
break;
|
|
1165
|
+
default:
|
|
1166
|
+
o << "Status::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<Status>::type>(value);
|
|
1167
|
+
}
|
|
1168
|
+
return o;
|
|
1169
|
+
}
|
|
1170
|
+
template <typename CharT, typename Traits>
|
|
1171
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, StencilOperation value) {
|
|
1172
|
+
switch (value) {
|
|
1173
|
+
case StencilOperation::Undefined:
|
|
1174
|
+
o << "StencilOperation::Undefined";
|
|
1175
|
+
break;
|
|
1176
|
+
case StencilOperation::Keep:
|
|
1177
|
+
o << "StencilOperation::Keep";
|
|
1178
|
+
break;
|
|
1179
|
+
case StencilOperation::Zero:
|
|
1180
|
+
o << "StencilOperation::Zero";
|
|
1181
|
+
break;
|
|
1182
|
+
case StencilOperation::Replace:
|
|
1183
|
+
o << "StencilOperation::Replace";
|
|
1184
|
+
break;
|
|
1185
|
+
case StencilOperation::Invert:
|
|
1186
|
+
o << "StencilOperation::Invert";
|
|
1187
|
+
break;
|
|
1188
|
+
case StencilOperation::IncrementClamp:
|
|
1189
|
+
o << "StencilOperation::IncrementClamp";
|
|
1190
|
+
break;
|
|
1191
|
+
case StencilOperation::DecrementClamp:
|
|
1192
|
+
o << "StencilOperation::DecrementClamp";
|
|
1193
|
+
break;
|
|
1194
|
+
case StencilOperation::IncrementWrap:
|
|
1195
|
+
o << "StencilOperation::IncrementWrap";
|
|
1196
|
+
break;
|
|
1197
|
+
case StencilOperation::DecrementWrap:
|
|
1198
|
+
o << "StencilOperation::DecrementWrap";
|
|
1199
|
+
break;
|
|
1200
|
+
default:
|
|
1201
|
+
o << "StencilOperation::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<StencilOperation>::type>(value);
|
|
1202
|
+
}
|
|
1203
|
+
return o;
|
|
1204
|
+
}
|
|
1205
|
+
template <typename CharT, typename Traits>
|
|
1206
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, StorageTextureAccess value) {
|
|
1207
|
+
switch (value) {
|
|
1208
|
+
case StorageTextureAccess::BindingNotUsed:
|
|
1209
|
+
o << "StorageTextureAccess::BindingNotUsed";
|
|
1210
|
+
break;
|
|
1211
|
+
case StorageTextureAccess::Undefined:
|
|
1212
|
+
o << "StorageTextureAccess::Undefined";
|
|
1213
|
+
break;
|
|
1214
|
+
case StorageTextureAccess::WriteOnly:
|
|
1215
|
+
o << "StorageTextureAccess::WriteOnly";
|
|
1216
|
+
break;
|
|
1217
|
+
case StorageTextureAccess::ReadOnly:
|
|
1218
|
+
o << "StorageTextureAccess::ReadOnly";
|
|
1219
|
+
break;
|
|
1220
|
+
case StorageTextureAccess::ReadWrite:
|
|
1221
|
+
o << "StorageTextureAccess::ReadWrite";
|
|
1222
|
+
break;
|
|
1223
|
+
default:
|
|
1224
|
+
o << "StorageTextureAccess::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<StorageTextureAccess>::type>(value);
|
|
1225
|
+
}
|
|
1226
|
+
return o;
|
|
1227
|
+
}
|
|
1228
|
+
template <typename CharT, typename Traits>
|
|
1229
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, StoreOp value) {
|
|
1230
|
+
switch (value) {
|
|
1231
|
+
case StoreOp::Undefined:
|
|
1232
|
+
o << "StoreOp::Undefined";
|
|
1233
|
+
break;
|
|
1234
|
+
case StoreOp::Store:
|
|
1235
|
+
o << "StoreOp::Store";
|
|
1236
|
+
break;
|
|
1237
|
+
case StoreOp::Discard:
|
|
1238
|
+
o << "StoreOp::Discard";
|
|
1239
|
+
break;
|
|
1240
|
+
default:
|
|
1241
|
+
o << "StoreOp::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<StoreOp>::type>(value);
|
|
1242
|
+
}
|
|
1243
|
+
return o;
|
|
1244
|
+
}
|
|
1245
|
+
template <typename CharT, typename Traits>
|
|
1246
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, SType value) {
|
|
1247
|
+
switch (value) {
|
|
1248
|
+
case SType::ShaderSourceSPIRV:
|
|
1249
|
+
o << "SType::ShaderSourceSPIRV";
|
|
1250
|
+
break;
|
|
1251
|
+
case SType::ShaderSourceWGSL:
|
|
1252
|
+
o << "SType::ShaderSourceWGSL";
|
|
1253
|
+
break;
|
|
1254
|
+
case SType::RenderPassMaxDrawCount:
|
|
1255
|
+
o << "SType::RenderPassMaxDrawCount";
|
|
1256
|
+
break;
|
|
1257
|
+
case SType::SurfaceSourceMetalLayer:
|
|
1258
|
+
o << "SType::SurfaceSourceMetalLayer";
|
|
1259
|
+
break;
|
|
1260
|
+
case SType::SurfaceSourceWindowsHWND:
|
|
1261
|
+
o << "SType::SurfaceSourceWindowsHWND";
|
|
1262
|
+
break;
|
|
1263
|
+
case SType::SurfaceSourceXlibWindow:
|
|
1264
|
+
o << "SType::SurfaceSourceXlibWindow";
|
|
1265
|
+
break;
|
|
1266
|
+
case SType::SurfaceSourceWaylandSurface:
|
|
1267
|
+
o << "SType::SurfaceSourceWaylandSurface";
|
|
1268
|
+
break;
|
|
1269
|
+
case SType::SurfaceSourceAndroidNativeWindow:
|
|
1270
|
+
o << "SType::SurfaceSourceAndroidNativeWindow";
|
|
1271
|
+
break;
|
|
1272
|
+
case SType::SurfaceSourceXCBWindow:
|
|
1273
|
+
o << "SType::SurfaceSourceXCBWindow";
|
|
1274
|
+
break;
|
|
1275
|
+
case SType::SurfaceColorManagement:
|
|
1276
|
+
o << "SType::SurfaceColorManagement";
|
|
1277
|
+
break;
|
|
1278
|
+
case SType::RequestAdapterWebXROptions:
|
|
1279
|
+
o << "SType::RequestAdapterWebXROptions";
|
|
1280
|
+
break;
|
|
1281
|
+
case SType::CompatibilityModeLimits:
|
|
1282
|
+
o << "SType::CompatibilityModeLimits";
|
|
1283
|
+
break;
|
|
1284
|
+
case SType::TextureBindingViewDimensionDescriptor:
|
|
1285
|
+
o << "SType::TextureBindingViewDimensionDescriptor";
|
|
1286
|
+
break;
|
|
1287
|
+
case SType::SurfaceDescriptorFromWindowsCoreWindow:
|
|
1288
|
+
o << "SType::SurfaceDescriptorFromWindowsCoreWindow";
|
|
1289
|
+
break;
|
|
1290
|
+
case SType::ExternalTextureBindingEntry:
|
|
1291
|
+
o << "SType::ExternalTextureBindingEntry";
|
|
1292
|
+
break;
|
|
1293
|
+
case SType::ExternalTextureBindingLayout:
|
|
1294
|
+
o << "SType::ExternalTextureBindingLayout";
|
|
1295
|
+
break;
|
|
1296
|
+
case SType::SurfaceDescriptorFromWindowsUWPSwapChainPanel:
|
|
1297
|
+
o << "SType::SurfaceDescriptorFromWindowsUWPSwapChainPanel";
|
|
1298
|
+
break;
|
|
1299
|
+
case SType::DawnTextureInternalUsageDescriptor:
|
|
1300
|
+
o << "SType::DawnTextureInternalUsageDescriptor";
|
|
1301
|
+
break;
|
|
1302
|
+
case SType::DawnEncoderInternalUsageDescriptor:
|
|
1303
|
+
o << "SType::DawnEncoderInternalUsageDescriptor";
|
|
1304
|
+
break;
|
|
1305
|
+
case SType::DawnInstanceDescriptor:
|
|
1306
|
+
o << "SType::DawnInstanceDescriptor";
|
|
1307
|
+
break;
|
|
1308
|
+
case SType::DawnCacheDeviceDescriptor:
|
|
1309
|
+
o << "SType::DawnCacheDeviceDescriptor";
|
|
1310
|
+
break;
|
|
1311
|
+
case SType::DawnAdapterPropertiesPowerPreference:
|
|
1312
|
+
o << "SType::DawnAdapterPropertiesPowerPreference";
|
|
1313
|
+
break;
|
|
1314
|
+
case SType::DawnBufferDescriptorErrorInfoFromWireClient:
|
|
1315
|
+
o << "SType::DawnBufferDescriptorErrorInfoFromWireClient";
|
|
1316
|
+
break;
|
|
1317
|
+
case SType::DawnTogglesDescriptor:
|
|
1318
|
+
o << "SType::DawnTogglesDescriptor";
|
|
1319
|
+
break;
|
|
1320
|
+
case SType::DawnShaderModuleSPIRVOptionsDescriptor:
|
|
1321
|
+
o << "SType::DawnShaderModuleSPIRVOptionsDescriptor";
|
|
1322
|
+
break;
|
|
1323
|
+
case SType::RequestAdapterOptionsLUID:
|
|
1324
|
+
o << "SType::RequestAdapterOptionsLUID";
|
|
1325
|
+
break;
|
|
1326
|
+
case SType::RequestAdapterOptionsGetGLProc:
|
|
1327
|
+
o << "SType::RequestAdapterOptionsGetGLProc";
|
|
1328
|
+
break;
|
|
1329
|
+
case SType::RequestAdapterOptionsD3D11Device:
|
|
1330
|
+
o << "SType::RequestAdapterOptionsD3D11Device";
|
|
1331
|
+
break;
|
|
1332
|
+
case SType::DawnRenderPassColorAttachmentRenderToSingleSampled:
|
|
1333
|
+
o << "SType::DawnRenderPassColorAttachmentRenderToSingleSampled";
|
|
1334
|
+
break;
|
|
1335
|
+
case SType::RenderPassPixelLocalStorage:
|
|
1336
|
+
o << "SType::RenderPassPixelLocalStorage";
|
|
1337
|
+
break;
|
|
1338
|
+
case SType::PipelineLayoutPixelLocalStorage:
|
|
1339
|
+
o << "SType::PipelineLayoutPixelLocalStorage";
|
|
1340
|
+
break;
|
|
1341
|
+
case SType::BufferHostMappedPointer:
|
|
1342
|
+
o << "SType::BufferHostMappedPointer";
|
|
1343
|
+
break;
|
|
1344
|
+
case SType::AdapterPropertiesMemoryHeaps:
|
|
1345
|
+
o << "SType::AdapterPropertiesMemoryHeaps";
|
|
1346
|
+
break;
|
|
1347
|
+
case SType::AdapterPropertiesD3D:
|
|
1348
|
+
o << "SType::AdapterPropertiesD3D";
|
|
1349
|
+
break;
|
|
1350
|
+
case SType::AdapterPropertiesVk:
|
|
1351
|
+
o << "SType::AdapterPropertiesVk";
|
|
1352
|
+
break;
|
|
1353
|
+
case SType::DawnWireWGSLControl:
|
|
1354
|
+
o << "SType::DawnWireWGSLControl";
|
|
1355
|
+
break;
|
|
1356
|
+
case SType::DawnWGSLBlocklist:
|
|
1357
|
+
o << "SType::DawnWGSLBlocklist";
|
|
1358
|
+
break;
|
|
1359
|
+
case SType::DawnDrmFormatCapabilities:
|
|
1360
|
+
o << "SType::DawnDrmFormatCapabilities";
|
|
1361
|
+
break;
|
|
1362
|
+
case SType::ShaderModuleCompilationOptions:
|
|
1363
|
+
o << "SType::ShaderModuleCompilationOptions";
|
|
1364
|
+
break;
|
|
1365
|
+
case SType::ColorTargetStateExpandResolveTextureDawn:
|
|
1366
|
+
o << "SType::ColorTargetStateExpandResolveTextureDawn";
|
|
1367
|
+
break;
|
|
1368
|
+
case SType::RenderPassDescriptorExpandResolveRect:
|
|
1369
|
+
o << "SType::RenderPassDescriptorExpandResolveRect";
|
|
1370
|
+
break;
|
|
1371
|
+
case SType::SharedTextureMemoryVkDedicatedAllocationDescriptor:
|
|
1372
|
+
o << "SType::SharedTextureMemoryVkDedicatedAllocationDescriptor";
|
|
1373
|
+
break;
|
|
1374
|
+
case SType::SharedTextureMemoryAHardwareBufferDescriptor:
|
|
1375
|
+
o << "SType::SharedTextureMemoryAHardwareBufferDescriptor";
|
|
1376
|
+
break;
|
|
1377
|
+
case SType::SharedTextureMemoryDmaBufDescriptor:
|
|
1378
|
+
o << "SType::SharedTextureMemoryDmaBufDescriptor";
|
|
1379
|
+
break;
|
|
1380
|
+
case SType::SharedTextureMemoryOpaqueFDDescriptor:
|
|
1381
|
+
o << "SType::SharedTextureMemoryOpaqueFDDescriptor";
|
|
1382
|
+
break;
|
|
1383
|
+
case SType::SharedTextureMemoryZirconHandleDescriptor:
|
|
1384
|
+
o << "SType::SharedTextureMemoryZirconHandleDescriptor";
|
|
1385
|
+
break;
|
|
1386
|
+
case SType::SharedTextureMemoryDXGISharedHandleDescriptor:
|
|
1387
|
+
o << "SType::SharedTextureMemoryDXGISharedHandleDescriptor";
|
|
1388
|
+
break;
|
|
1389
|
+
case SType::SharedTextureMemoryD3D11Texture2DDescriptor:
|
|
1390
|
+
o << "SType::SharedTextureMemoryD3D11Texture2DDescriptor";
|
|
1391
|
+
break;
|
|
1392
|
+
case SType::SharedTextureMemoryIOSurfaceDescriptor:
|
|
1393
|
+
o << "SType::SharedTextureMemoryIOSurfaceDescriptor";
|
|
1394
|
+
break;
|
|
1395
|
+
case SType::SharedTextureMemoryEGLImageDescriptor:
|
|
1396
|
+
o << "SType::SharedTextureMemoryEGLImageDescriptor";
|
|
1397
|
+
break;
|
|
1398
|
+
case SType::SharedTextureMemoryInitializedBeginState:
|
|
1399
|
+
o << "SType::SharedTextureMemoryInitializedBeginState";
|
|
1400
|
+
break;
|
|
1401
|
+
case SType::SharedTextureMemoryInitializedEndState:
|
|
1402
|
+
o << "SType::SharedTextureMemoryInitializedEndState";
|
|
1403
|
+
break;
|
|
1404
|
+
case SType::SharedTextureMemoryVkImageLayoutBeginState:
|
|
1405
|
+
o << "SType::SharedTextureMemoryVkImageLayoutBeginState";
|
|
1406
|
+
break;
|
|
1407
|
+
case SType::SharedTextureMemoryVkImageLayoutEndState:
|
|
1408
|
+
o << "SType::SharedTextureMemoryVkImageLayoutEndState";
|
|
1409
|
+
break;
|
|
1410
|
+
case SType::SharedTextureMemoryD3DSwapchainBeginState:
|
|
1411
|
+
o << "SType::SharedTextureMemoryD3DSwapchainBeginState";
|
|
1412
|
+
break;
|
|
1413
|
+
case SType::SharedFenceVkSemaphoreOpaqueFDDescriptor:
|
|
1414
|
+
o << "SType::SharedFenceVkSemaphoreOpaqueFDDescriptor";
|
|
1415
|
+
break;
|
|
1416
|
+
case SType::SharedFenceVkSemaphoreOpaqueFDExportInfo:
|
|
1417
|
+
o << "SType::SharedFenceVkSemaphoreOpaqueFDExportInfo";
|
|
1418
|
+
break;
|
|
1419
|
+
case SType::SharedFenceSyncFDDescriptor:
|
|
1420
|
+
o << "SType::SharedFenceSyncFDDescriptor";
|
|
1421
|
+
break;
|
|
1422
|
+
case SType::SharedFenceSyncFDExportInfo:
|
|
1423
|
+
o << "SType::SharedFenceSyncFDExportInfo";
|
|
1424
|
+
break;
|
|
1425
|
+
case SType::SharedFenceVkSemaphoreZirconHandleDescriptor:
|
|
1426
|
+
o << "SType::SharedFenceVkSemaphoreZirconHandleDescriptor";
|
|
1427
|
+
break;
|
|
1428
|
+
case SType::SharedFenceVkSemaphoreZirconHandleExportInfo:
|
|
1429
|
+
o << "SType::SharedFenceVkSemaphoreZirconHandleExportInfo";
|
|
1430
|
+
break;
|
|
1431
|
+
case SType::SharedFenceDXGISharedHandleDescriptor:
|
|
1432
|
+
o << "SType::SharedFenceDXGISharedHandleDescriptor";
|
|
1433
|
+
break;
|
|
1434
|
+
case SType::SharedFenceDXGISharedHandleExportInfo:
|
|
1435
|
+
o << "SType::SharedFenceDXGISharedHandleExportInfo";
|
|
1436
|
+
break;
|
|
1437
|
+
case SType::SharedFenceMTLSharedEventDescriptor:
|
|
1438
|
+
o << "SType::SharedFenceMTLSharedEventDescriptor";
|
|
1439
|
+
break;
|
|
1440
|
+
case SType::SharedFenceMTLSharedEventExportInfo:
|
|
1441
|
+
o << "SType::SharedFenceMTLSharedEventExportInfo";
|
|
1442
|
+
break;
|
|
1443
|
+
case SType::SharedBufferMemoryD3D12ResourceDescriptor:
|
|
1444
|
+
o << "SType::SharedBufferMemoryD3D12ResourceDescriptor";
|
|
1445
|
+
break;
|
|
1446
|
+
case SType::StaticSamplerBindingLayout:
|
|
1447
|
+
o << "SType::StaticSamplerBindingLayout";
|
|
1448
|
+
break;
|
|
1449
|
+
case SType::YCbCrVkDescriptor:
|
|
1450
|
+
o << "SType::YCbCrVkDescriptor";
|
|
1451
|
+
break;
|
|
1452
|
+
case SType::SharedTextureMemoryAHardwareBufferProperties:
|
|
1453
|
+
o << "SType::SharedTextureMemoryAHardwareBufferProperties";
|
|
1454
|
+
break;
|
|
1455
|
+
case SType::AHardwareBufferProperties:
|
|
1456
|
+
o << "SType::AHardwareBufferProperties";
|
|
1457
|
+
break;
|
|
1458
|
+
case SType::DawnTexelCopyBufferRowAlignmentLimits:
|
|
1459
|
+
o << "SType::DawnTexelCopyBufferRowAlignmentLimits";
|
|
1460
|
+
break;
|
|
1461
|
+
case SType::AdapterPropertiesSubgroupMatrixConfigs:
|
|
1462
|
+
o << "SType::AdapterPropertiesSubgroupMatrixConfigs";
|
|
1463
|
+
break;
|
|
1464
|
+
case SType::SharedFenceEGLSyncDescriptor:
|
|
1465
|
+
o << "SType::SharedFenceEGLSyncDescriptor";
|
|
1466
|
+
break;
|
|
1467
|
+
case SType::SharedFenceEGLSyncExportInfo:
|
|
1468
|
+
o << "SType::SharedFenceEGLSyncExportInfo";
|
|
1469
|
+
break;
|
|
1470
|
+
case SType::DawnInjectedInvalidSType:
|
|
1471
|
+
o << "SType::DawnInjectedInvalidSType";
|
|
1472
|
+
break;
|
|
1473
|
+
case SType::DawnCompilationMessageUtf16:
|
|
1474
|
+
o << "SType::DawnCompilationMessageUtf16";
|
|
1475
|
+
break;
|
|
1476
|
+
case SType::DawnFakeBufferOOMForTesting:
|
|
1477
|
+
o << "SType::DawnFakeBufferOOMForTesting";
|
|
1478
|
+
break;
|
|
1479
|
+
case SType::SurfaceDescriptorFromWindowsWinUISwapChainPanel:
|
|
1480
|
+
o << "SType::SurfaceDescriptorFromWindowsWinUISwapChainPanel";
|
|
1481
|
+
break;
|
|
1482
|
+
case SType::DawnDeviceAllocatorControl:
|
|
1483
|
+
o << "SType::DawnDeviceAllocatorControl";
|
|
1484
|
+
break;
|
|
1485
|
+
case SType::DawnHostMappedPointerLimits:
|
|
1486
|
+
o << "SType::DawnHostMappedPointerLimits";
|
|
1487
|
+
break;
|
|
1488
|
+
case SType::RenderPassDescriptorResolveRect:
|
|
1489
|
+
o << "SType::RenderPassDescriptorResolveRect";
|
|
1490
|
+
break;
|
|
1491
|
+
case SType::RequestAdapterWebGPUBackendOptions:
|
|
1492
|
+
o << "SType::RequestAdapterWebGPUBackendOptions";
|
|
1493
|
+
break;
|
|
1494
|
+
case SType::DawnFakeDeviceInitializeErrorForTesting:
|
|
1495
|
+
o << "SType::DawnFakeDeviceInitializeErrorForTesting";
|
|
1496
|
+
break;
|
|
1497
|
+
case SType::TextureComponentSwizzleDescriptor:
|
|
1498
|
+
o << "SType::TextureComponentSwizzleDescriptor";
|
|
1499
|
+
break;
|
|
1500
|
+
case SType::SharedTextureMemoryD3D11BeginState:
|
|
1501
|
+
o << "SType::SharedTextureMemoryD3D11BeginState";
|
|
1502
|
+
break;
|
|
1503
|
+
case SType::DawnConsumeAdapterDescriptor:
|
|
1504
|
+
o << "SType::DawnConsumeAdapterDescriptor";
|
|
1505
|
+
break;
|
|
1506
|
+
case SType::BindGroupLayoutDynamicBindingArray:
|
|
1507
|
+
o << "SType::BindGroupLayoutDynamicBindingArray";
|
|
1508
|
+
break;
|
|
1509
|
+
case SType::DynamicBindingArrayLimits:
|
|
1510
|
+
o << "SType::DynamicBindingArrayLimits";
|
|
1511
|
+
break;
|
|
1512
|
+
case SType::BindGroupDynamicBindingArray:
|
|
1513
|
+
o << "SType::BindGroupDynamicBindingArray";
|
|
1514
|
+
break;
|
|
1515
|
+
case SType::TexelBufferBindingEntry:
|
|
1516
|
+
o << "SType::TexelBufferBindingEntry";
|
|
1517
|
+
break;
|
|
1518
|
+
case SType::TexelBufferBindingLayout:
|
|
1519
|
+
o << "SType::TexelBufferBindingLayout";
|
|
1520
|
+
break;
|
|
1521
|
+
case SType::SharedTextureMemoryMetalEndAccessState:
|
|
1522
|
+
o << "SType::SharedTextureMemoryMetalEndAccessState";
|
|
1523
|
+
break;
|
|
1524
|
+
case SType::AdapterPropertiesWGPU:
|
|
1525
|
+
o << "SType::AdapterPropertiesWGPU";
|
|
1526
|
+
break;
|
|
1527
|
+
default:
|
|
1528
|
+
o << "SType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<SType>::type>(value);
|
|
1529
|
+
}
|
|
1530
|
+
return o;
|
|
1531
|
+
}
|
|
1532
|
+
template <typename CharT, typename Traits>
|
|
1533
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, SubgroupMatrixComponentType value) {
|
|
1534
|
+
switch (value) {
|
|
1535
|
+
case SubgroupMatrixComponentType::F32:
|
|
1536
|
+
o << "SubgroupMatrixComponentType::F32";
|
|
1537
|
+
break;
|
|
1538
|
+
case SubgroupMatrixComponentType::F16:
|
|
1539
|
+
o << "SubgroupMatrixComponentType::F16";
|
|
1540
|
+
break;
|
|
1541
|
+
case SubgroupMatrixComponentType::U32:
|
|
1542
|
+
o << "SubgroupMatrixComponentType::U32";
|
|
1543
|
+
break;
|
|
1544
|
+
case SubgroupMatrixComponentType::I32:
|
|
1545
|
+
o << "SubgroupMatrixComponentType::I32";
|
|
1546
|
+
break;
|
|
1547
|
+
case SubgroupMatrixComponentType::U8:
|
|
1548
|
+
o << "SubgroupMatrixComponentType::U8";
|
|
1549
|
+
break;
|
|
1550
|
+
case SubgroupMatrixComponentType::I8:
|
|
1551
|
+
o << "SubgroupMatrixComponentType::I8";
|
|
1552
|
+
break;
|
|
1553
|
+
default:
|
|
1554
|
+
o << "SubgroupMatrixComponentType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<SubgroupMatrixComponentType>::type>(value);
|
|
1555
|
+
}
|
|
1556
|
+
return o;
|
|
1557
|
+
}
|
|
1558
|
+
template <typename CharT, typename Traits>
|
|
1559
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, SurfaceGetCurrentTextureStatus value) {
|
|
1560
|
+
switch (value) {
|
|
1561
|
+
case SurfaceGetCurrentTextureStatus::SuccessOptimal:
|
|
1562
|
+
o << "SurfaceGetCurrentTextureStatus::SuccessOptimal";
|
|
1563
|
+
break;
|
|
1564
|
+
case SurfaceGetCurrentTextureStatus::SuccessSuboptimal:
|
|
1565
|
+
o << "SurfaceGetCurrentTextureStatus::SuccessSuboptimal";
|
|
1566
|
+
break;
|
|
1567
|
+
case SurfaceGetCurrentTextureStatus::Timeout:
|
|
1568
|
+
o << "SurfaceGetCurrentTextureStatus::Timeout";
|
|
1569
|
+
break;
|
|
1570
|
+
case SurfaceGetCurrentTextureStatus::Outdated:
|
|
1571
|
+
o << "SurfaceGetCurrentTextureStatus::Outdated";
|
|
1572
|
+
break;
|
|
1573
|
+
case SurfaceGetCurrentTextureStatus::Lost:
|
|
1574
|
+
o << "SurfaceGetCurrentTextureStatus::Lost";
|
|
1575
|
+
break;
|
|
1576
|
+
case SurfaceGetCurrentTextureStatus::Error:
|
|
1577
|
+
o << "SurfaceGetCurrentTextureStatus::Error";
|
|
1578
|
+
break;
|
|
1579
|
+
default:
|
|
1580
|
+
o << "SurfaceGetCurrentTextureStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<SurfaceGetCurrentTextureStatus>::type>(value);
|
|
1581
|
+
}
|
|
1582
|
+
return o;
|
|
1583
|
+
}
|
|
1584
|
+
template <typename CharT, typename Traits>
|
|
1585
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TexelBufferAccess value) {
|
|
1586
|
+
switch (value) {
|
|
1587
|
+
case TexelBufferAccess::Undefined:
|
|
1588
|
+
o << "TexelBufferAccess::Undefined";
|
|
1589
|
+
break;
|
|
1590
|
+
case TexelBufferAccess::ReadOnly:
|
|
1591
|
+
o << "TexelBufferAccess::ReadOnly";
|
|
1592
|
+
break;
|
|
1593
|
+
case TexelBufferAccess::ReadWrite:
|
|
1594
|
+
o << "TexelBufferAccess::ReadWrite";
|
|
1595
|
+
break;
|
|
1596
|
+
default:
|
|
1597
|
+
o << "TexelBufferAccess::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TexelBufferAccess>::type>(value);
|
|
1598
|
+
}
|
|
1599
|
+
return o;
|
|
1600
|
+
}
|
|
1601
|
+
template <typename CharT, typename Traits>
|
|
1602
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureAspect value) {
|
|
1603
|
+
switch (value) {
|
|
1604
|
+
case TextureAspect::Undefined:
|
|
1605
|
+
o << "TextureAspect::Undefined";
|
|
1606
|
+
break;
|
|
1607
|
+
case TextureAspect::All:
|
|
1608
|
+
o << "TextureAspect::All";
|
|
1609
|
+
break;
|
|
1610
|
+
case TextureAspect::StencilOnly:
|
|
1611
|
+
o << "TextureAspect::StencilOnly";
|
|
1612
|
+
break;
|
|
1613
|
+
case TextureAspect::DepthOnly:
|
|
1614
|
+
o << "TextureAspect::DepthOnly";
|
|
1615
|
+
break;
|
|
1616
|
+
case TextureAspect::Plane0Only:
|
|
1617
|
+
o << "TextureAspect::Plane0Only";
|
|
1618
|
+
break;
|
|
1619
|
+
case TextureAspect::Plane1Only:
|
|
1620
|
+
o << "TextureAspect::Plane1Only";
|
|
1621
|
+
break;
|
|
1622
|
+
case TextureAspect::Plane2Only:
|
|
1623
|
+
o << "TextureAspect::Plane2Only";
|
|
1624
|
+
break;
|
|
1625
|
+
default:
|
|
1626
|
+
o << "TextureAspect::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureAspect>::type>(value);
|
|
1627
|
+
}
|
|
1628
|
+
return o;
|
|
1629
|
+
}
|
|
1630
|
+
template <typename CharT, typename Traits>
|
|
1631
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureDimension value) {
|
|
1632
|
+
switch (value) {
|
|
1633
|
+
case TextureDimension::Undefined:
|
|
1634
|
+
o << "TextureDimension::Undefined";
|
|
1635
|
+
break;
|
|
1636
|
+
case TextureDimension::e1D:
|
|
1637
|
+
o << "TextureDimension::e1D";
|
|
1638
|
+
break;
|
|
1639
|
+
case TextureDimension::e2D:
|
|
1640
|
+
o << "TextureDimension::e2D";
|
|
1641
|
+
break;
|
|
1642
|
+
case TextureDimension::e3D:
|
|
1643
|
+
o << "TextureDimension::e3D";
|
|
1644
|
+
break;
|
|
1645
|
+
default:
|
|
1646
|
+
o << "TextureDimension::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureDimension>::type>(value);
|
|
1647
|
+
}
|
|
1648
|
+
return o;
|
|
1649
|
+
}
|
|
1650
|
+
template <typename CharT, typename Traits>
|
|
1651
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureFormat value) {
|
|
1652
|
+
switch (value) {
|
|
1653
|
+
case TextureFormat::Undefined:
|
|
1654
|
+
o << "TextureFormat::Undefined";
|
|
1655
|
+
break;
|
|
1656
|
+
case TextureFormat::R8Unorm:
|
|
1657
|
+
o << "TextureFormat::R8Unorm";
|
|
1658
|
+
break;
|
|
1659
|
+
case TextureFormat::R8Snorm:
|
|
1660
|
+
o << "TextureFormat::R8Snorm";
|
|
1661
|
+
break;
|
|
1662
|
+
case TextureFormat::R8Uint:
|
|
1663
|
+
o << "TextureFormat::R8Uint";
|
|
1664
|
+
break;
|
|
1665
|
+
case TextureFormat::R8Sint:
|
|
1666
|
+
o << "TextureFormat::R8Sint";
|
|
1667
|
+
break;
|
|
1668
|
+
case TextureFormat::R16Unorm:
|
|
1669
|
+
o << "TextureFormat::R16Unorm";
|
|
1670
|
+
break;
|
|
1671
|
+
case TextureFormat::R16Snorm:
|
|
1672
|
+
o << "TextureFormat::R16Snorm";
|
|
1673
|
+
break;
|
|
1674
|
+
case TextureFormat::R16Uint:
|
|
1675
|
+
o << "TextureFormat::R16Uint";
|
|
1676
|
+
break;
|
|
1677
|
+
case TextureFormat::R16Sint:
|
|
1678
|
+
o << "TextureFormat::R16Sint";
|
|
1679
|
+
break;
|
|
1680
|
+
case TextureFormat::R16Float:
|
|
1681
|
+
o << "TextureFormat::R16Float";
|
|
1682
|
+
break;
|
|
1683
|
+
case TextureFormat::RG8Unorm:
|
|
1684
|
+
o << "TextureFormat::RG8Unorm";
|
|
1685
|
+
break;
|
|
1686
|
+
case TextureFormat::RG8Snorm:
|
|
1687
|
+
o << "TextureFormat::RG8Snorm";
|
|
1688
|
+
break;
|
|
1689
|
+
case TextureFormat::RG8Uint:
|
|
1690
|
+
o << "TextureFormat::RG8Uint";
|
|
1691
|
+
break;
|
|
1692
|
+
case TextureFormat::RG8Sint:
|
|
1693
|
+
o << "TextureFormat::RG8Sint";
|
|
1694
|
+
break;
|
|
1695
|
+
case TextureFormat::R32Float:
|
|
1696
|
+
o << "TextureFormat::R32Float";
|
|
1697
|
+
break;
|
|
1698
|
+
case TextureFormat::R32Uint:
|
|
1699
|
+
o << "TextureFormat::R32Uint";
|
|
1700
|
+
break;
|
|
1701
|
+
case TextureFormat::R32Sint:
|
|
1702
|
+
o << "TextureFormat::R32Sint";
|
|
1703
|
+
break;
|
|
1704
|
+
case TextureFormat::RG16Unorm:
|
|
1705
|
+
o << "TextureFormat::RG16Unorm";
|
|
1706
|
+
break;
|
|
1707
|
+
case TextureFormat::RG16Snorm:
|
|
1708
|
+
o << "TextureFormat::RG16Snorm";
|
|
1709
|
+
break;
|
|
1710
|
+
case TextureFormat::RG16Uint:
|
|
1711
|
+
o << "TextureFormat::RG16Uint";
|
|
1712
|
+
break;
|
|
1713
|
+
case TextureFormat::RG16Sint:
|
|
1714
|
+
o << "TextureFormat::RG16Sint";
|
|
1715
|
+
break;
|
|
1716
|
+
case TextureFormat::RG16Float:
|
|
1717
|
+
o << "TextureFormat::RG16Float";
|
|
1718
|
+
break;
|
|
1719
|
+
case TextureFormat::RGBA8Unorm:
|
|
1720
|
+
o << "TextureFormat::RGBA8Unorm";
|
|
1721
|
+
break;
|
|
1722
|
+
case TextureFormat::RGBA8UnormSrgb:
|
|
1723
|
+
o << "TextureFormat::RGBA8UnormSrgb";
|
|
1724
|
+
break;
|
|
1725
|
+
case TextureFormat::RGBA8Snorm:
|
|
1726
|
+
o << "TextureFormat::RGBA8Snorm";
|
|
1727
|
+
break;
|
|
1728
|
+
case TextureFormat::RGBA8Uint:
|
|
1729
|
+
o << "TextureFormat::RGBA8Uint";
|
|
1730
|
+
break;
|
|
1731
|
+
case TextureFormat::RGBA8Sint:
|
|
1732
|
+
o << "TextureFormat::RGBA8Sint";
|
|
1733
|
+
break;
|
|
1734
|
+
case TextureFormat::BGRA8Unorm:
|
|
1735
|
+
o << "TextureFormat::BGRA8Unorm";
|
|
1736
|
+
break;
|
|
1737
|
+
case TextureFormat::BGRA8UnormSrgb:
|
|
1738
|
+
o << "TextureFormat::BGRA8UnormSrgb";
|
|
1739
|
+
break;
|
|
1740
|
+
case TextureFormat::RGB10A2Uint:
|
|
1741
|
+
o << "TextureFormat::RGB10A2Uint";
|
|
1742
|
+
break;
|
|
1743
|
+
case TextureFormat::RGB10A2Unorm:
|
|
1744
|
+
o << "TextureFormat::RGB10A2Unorm";
|
|
1745
|
+
break;
|
|
1746
|
+
case TextureFormat::RG11B10Ufloat:
|
|
1747
|
+
o << "TextureFormat::RG11B10Ufloat";
|
|
1748
|
+
break;
|
|
1749
|
+
case TextureFormat::RGB9E5Ufloat:
|
|
1750
|
+
o << "TextureFormat::RGB9E5Ufloat";
|
|
1751
|
+
break;
|
|
1752
|
+
case TextureFormat::RG32Float:
|
|
1753
|
+
o << "TextureFormat::RG32Float";
|
|
1754
|
+
break;
|
|
1755
|
+
case TextureFormat::RG32Uint:
|
|
1756
|
+
o << "TextureFormat::RG32Uint";
|
|
1757
|
+
break;
|
|
1758
|
+
case TextureFormat::RG32Sint:
|
|
1759
|
+
o << "TextureFormat::RG32Sint";
|
|
1760
|
+
break;
|
|
1761
|
+
case TextureFormat::RGBA16Unorm:
|
|
1762
|
+
o << "TextureFormat::RGBA16Unorm";
|
|
1763
|
+
break;
|
|
1764
|
+
case TextureFormat::RGBA16Snorm:
|
|
1765
|
+
o << "TextureFormat::RGBA16Snorm";
|
|
1766
|
+
break;
|
|
1767
|
+
case TextureFormat::RGBA16Uint:
|
|
1768
|
+
o << "TextureFormat::RGBA16Uint";
|
|
1769
|
+
break;
|
|
1770
|
+
case TextureFormat::RGBA16Sint:
|
|
1771
|
+
o << "TextureFormat::RGBA16Sint";
|
|
1772
|
+
break;
|
|
1773
|
+
case TextureFormat::RGBA16Float:
|
|
1774
|
+
o << "TextureFormat::RGBA16Float";
|
|
1775
|
+
break;
|
|
1776
|
+
case TextureFormat::RGBA32Float:
|
|
1777
|
+
o << "TextureFormat::RGBA32Float";
|
|
1778
|
+
break;
|
|
1779
|
+
case TextureFormat::RGBA32Uint:
|
|
1780
|
+
o << "TextureFormat::RGBA32Uint";
|
|
1781
|
+
break;
|
|
1782
|
+
case TextureFormat::RGBA32Sint:
|
|
1783
|
+
o << "TextureFormat::RGBA32Sint";
|
|
1784
|
+
break;
|
|
1785
|
+
case TextureFormat::Stencil8:
|
|
1786
|
+
o << "TextureFormat::Stencil8";
|
|
1787
|
+
break;
|
|
1788
|
+
case TextureFormat::Depth16Unorm:
|
|
1789
|
+
o << "TextureFormat::Depth16Unorm";
|
|
1790
|
+
break;
|
|
1791
|
+
case TextureFormat::Depth24Plus:
|
|
1792
|
+
o << "TextureFormat::Depth24Plus";
|
|
1793
|
+
break;
|
|
1794
|
+
case TextureFormat::Depth24PlusStencil8:
|
|
1795
|
+
o << "TextureFormat::Depth24PlusStencil8";
|
|
1796
|
+
break;
|
|
1797
|
+
case TextureFormat::Depth32Float:
|
|
1798
|
+
o << "TextureFormat::Depth32Float";
|
|
1799
|
+
break;
|
|
1800
|
+
case TextureFormat::Depth32FloatStencil8:
|
|
1801
|
+
o << "TextureFormat::Depth32FloatStencil8";
|
|
1802
|
+
break;
|
|
1803
|
+
case TextureFormat::BC1RGBAUnorm:
|
|
1804
|
+
o << "TextureFormat::BC1RGBAUnorm";
|
|
1805
|
+
break;
|
|
1806
|
+
case TextureFormat::BC1RGBAUnormSrgb:
|
|
1807
|
+
o << "TextureFormat::BC1RGBAUnormSrgb";
|
|
1808
|
+
break;
|
|
1809
|
+
case TextureFormat::BC2RGBAUnorm:
|
|
1810
|
+
o << "TextureFormat::BC2RGBAUnorm";
|
|
1811
|
+
break;
|
|
1812
|
+
case TextureFormat::BC2RGBAUnormSrgb:
|
|
1813
|
+
o << "TextureFormat::BC2RGBAUnormSrgb";
|
|
1814
|
+
break;
|
|
1815
|
+
case TextureFormat::BC3RGBAUnorm:
|
|
1816
|
+
o << "TextureFormat::BC3RGBAUnorm";
|
|
1817
|
+
break;
|
|
1818
|
+
case TextureFormat::BC3RGBAUnormSrgb:
|
|
1819
|
+
o << "TextureFormat::BC3RGBAUnormSrgb";
|
|
1820
|
+
break;
|
|
1821
|
+
case TextureFormat::BC4RUnorm:
|
|
1822
|
+
o << "TextureFormat::BC4RUnorm";
|
|
1823
|
+
break;
|
|
1824
|
+
case TextureFormat::BC4RSnorm:
|
|
1825
|
+
o << "TextureFormat::BC4RSnorm";
|
|
1826
|
+
break;
|
|
1827
|
+
case TextureFormat::BC5RGUnorm:
|
|
1828
|
+
o << "TextureFormat::BC5RGUnorm";
|
|
1829
|
+
break;
|
|
1830
|
+
case TextureFormat::BC5RGSnorm:
|
|
1831
|
+
o << "TextureFormat::BC5RGSnorm";
|
|
1832
|
+
break;
|
|
1833
|
+
case TextureFormat::BC6HRGBUfloat:
|
|
1834
|
+
o << "TextureFormat::BC6HRGBUfloat";
|
|
1835
|
+
break;
|
|
1836
|
+
case TextureFormat::BC6HRGBFloat:
|
|
1837
|
+
o << "TextureFormat::BC6HRGBFloat";
|
|
1838
|
+
break;
|
|
1839
|
+
case TextureFormat::BC7RGBAUnorm:
|
|
1840
|
+
o << "TextureFormat::BC7RGBAUnorm";
|
|
1841
|
+
break;
|
|
1842
|
+
case TextureFormat::BC7RGBAUnormSrgb:
|
|
1843
|
+
o << "TextureFormat::BC7RGBAUnormSrgb";
|
|
1844
|
+
break;
|
|
1845
|
+
case TextureFormat::ETC2RGB8Unorm:
|
|
1846
|
+
o << "TextureFormat::ETC2RGB8Unorm";
|
|
1847
|
+
break;
|
|
1848
|
+
case TextureFormat::ETC2RGB8UnormSrgb:
|
|
1849
|
+
o << "TextureFormat::ETC2RGB8UnormSrgb";
|
|
1850
|
+
break;
|
|
1851
|
+
case TextureFormat::ETC2RGB8A1Unorm:
|
|
1852
|
+
o << "TextureFormat::ETC2RGB8A1Unorm";
|
|
1853
|
+
break;
|
|
1854
|
+
case TextureFormat::ETC2RGB8A1UnormSrgb:
|
|
1855
|
+
o << "TextureFormat::ETC2RGB8A1UnormSrgb";
|
|
1856
|
+
break;
|
|
1857
|
+
case TextureFormat::ETC2RGBA8Unorm:
|
|
1858
|
+
o << "TextureFormat::ETC2RGBA8Unorm";
|
|
1859
|
+
break;
|
|
1860
|
+
case TextureFormat::ETC2RGBA8UnormSrgb:
|
|
1861
|
+
o << "TextureFormat::ETC2RGBA8UnormSrgb";
|
|
1862
|
+
break;
|
|
1863
|
+
case TextureFormat::EACR11Unorm:
|
|
1864
|
+
o << "TextureFormat::EACR11Unorm";
|
|
1865
|
+
break;
|
|
1866
|
+
case TextureFormat::EACR11Snorm:
|
|
1867
|
+
o << "TextureFormat::EACR11Snorm";
|
|
1868
|
+
break;
|
|
1869
|
+
case TextureFormat::EACRG11Unorm:
|
|
1870
|
+
o << "TextureFormat::EACRG11Unorm";
|
|
1871
|
+
break;
|
|
1872
|
+
case TextureFormat::EACRG11Snorm:
|
|
1873
|
+
o << "TextureFormat::EACRG11Snorm";
|
|
1874
|
+
break;
|
|
1875
|
+
case TextureFormat::ASTC4x4Unorm:
|
|
1876
|
+
o << "TextureFormat::ASTC4x4Unorm";
|
|
1877
|
+
break;
|
|
1878
|
+
case TextureFormat::ASTC4x4UnormSrgb:
|
|
1879
|
+
o << "TextureFormat::ASTC4x4UnormSrgb";
|
|
1880
|
+
break;
|
|
1881
|
+
case TextureFormat::ASTC5x4Unorm:
|
|
1882
|
+
o << "TextureFormat::ASTC5x4Unorm";
|
|
1883
|
+
break;
|
|
1884
|
+
case TextureFormat::ASTC5x4UnormSrgb:
|
|
1885
|
+
o << "TextureFormat::ASTC5x4UnormSrgb";
|
|
1886
|
+
break;
|
|
1887
|
+
case TextureFormat::ASTC5x5Unorm:
|
|
1888
|
+
o << "TextureFormat::ASTC5x5Unorm";
|
|
1889
|
+
break;
|
|
1890
|
+
case TextureFormat::ASTC5x5UnormSrgb:
|
|
1891
|
+
o << "TextureFormat::ASTC5x5UnormSrgb";
|
|
1892
|
+
break;
|
|
1893
|
+
case TextureFormat::ASTC6x5Unorm:
|
|
1894
|
+
o << "TextureFormat::ASTC6x5Unorm";
|
|
1895
|
+
break;
|
|
1896
|
+
case TextureFormat::ASTC6x5UnormSrgb:
|
|
1897
|
+
o << "TextureFormat::ASTC6x5UnormSrgb";
|
|
1898
|
+
break;
|
|
1899
|
+
case TextureFormat::ASTC6x6Unorm:
|
|
1900
|
+
o << "TextureFormat::ASTC6x6Unorm";
|
|
1901
|
+
break;
|
|
1902
|
+
case TextureFormat::ASTC6x6UnormSrgb:
|
|
1903
|
+
o << "TextureFormat::ASTC6x6UnormSrgb";
|
|
1904
|
+
break;
|
|
1905
|
+
case TextureFormat::ASTC8x5Unorm:
|
|
1906
|
+
o << "TextureFormat::ASTC8x5Unorm";
|
|
1907
|
+
break;
|
|
1908
|
+
case TextureFormat::ASTC8x5UnormSrgb:
|
|
1909
|
+
o << "TextureFormat::ASTC8x5UnormSrgb";
|
|
1910
|
+
break;
|
|
1911
|
+
case TextureFormat::ASTC8x6Unorm:
|
|
1912
|
+
o << "TextureFormat::ASTC8x6Unorm";
|
|
1913
|
+
break;
|
|
1914
|
+
case TextureFormat::ASTC8x6UnormSrgb:
|
|
1915
|
+
o << "TextureFormat::ASTC8x6UnormSrgb";
|
|
1916
|
+
break;
|
|
1917
|
+
case TextureFormat::ASTC8x8Unorm:
|
|
1918
|
+
o << "TextureFormat::ASTC8x8Unorm";
|
|
1919
|
+
break;
|
|
1920
|
+
case TextureFormat::ASTC8x8UnormSrgb:
|
|
1921
|
+
o << "TextureFormat::ASTC8x8UnormSrgb";
|
|
1922
|
+
break;
|
|
1923
|
+
case TextureFormat::ASTC10x5Unorm:
|
|
1924
|
+
o << "TextureFormat::ASTC10x5Unorm";
|
|
1925
|
+
break;
|
|
1926
|
+
case TextureFormat::ASTC10x5UnormSrgb:
|
|
1927
|
+
o << "TextureFormat::ASTC10x5UnormSrgb";
|
|
1928
|
+
break;
|
|
1929
|
+
case TextureFormat::ASTC10x6Unorm:
|
|
1930
|
+
o << "TextureFormat::ASTC10x6Unorm";
|
|
1931
|
+
break;
|
|
1932
|
+
case TextureFormat::ASTC10x6UnormSrgb:
|
|
1933
|
+
o << "TextureFormat::ASTC10x6UnormSrgb";
|
|
1934
|
+
break;
|
|
1935
|
+
case TextureFormat::ASTC10x8Unorm:
|
|
1936
|
+
o << "TextureFormat::ASTC10x8Unorm";
|
|
1937
|
+
break;
|
|
1938
|
+
case TextureFormat::ASTC10x8UnormSrgb:
|
|
1939
|
+
o << "TextureFormat::ASTC10x8UnormSrgb";
|
|
1940
|
+
break;
|
|
1941
|
+
case TextureFormat::ASTC10x10Unorm:
|
|
1942
|
+
o << "TextureFormat::ASTC10x10Unorm";
|
|
1943
|
+
break;
|
|
1944
|
+
case TextureFormat::ASTC10x10UnormSrgb:
|
|
1945
|
+
o << "TextureFormat::ASTC10x10UnormSrgb";
|
|
1946
|
+
break;
|
|
1947
|
+
case TextureFormat::ASTC12x10Unorm:
|
|
1948
|
+
o << "TextureFormat::ASTC12x10Unorm";
|
|
1949
|
+
break;
|
|
1950
|
+
case TextureFormat::ASTC12x10UnormSrgb:
|
|
1951
|
+
o << "TextureFormat::ASTC12x10UnormSrgb";
|
|
1952
|
+
break;
|
|
1953
|
+
case TextureFormat::ASTC12x12Unorm:
|
|
1954
|
+
o << "TextureFormat::ASTC12x12Unorm";
|
|
1955
|
+
break;
|
|
1956
|
+
case TextureFormat::ASTC12x12UnormSrgb:
|
|
1957
|
+
o << "TextureFormat::ASTC12x12UnormSrgb";
|
|
1958
|
+
break;
|
|
1959
|
+
case TextureFormat::R8BG8Biplanar420Unorm:
|
|
1960
|
+
o << "TextureFormat::R8BG8Biplanar420Unorm";
|
|
1961
|
+
break;
|
|
1962
|
+
case TextureFormat::R10X6BG10X6Biplanar420Unorm:
|
|
1963
|
+
o << "TextureFormat::R10X6BG10X6Biplanar420Unorm";
|
|
1964
|
+
break;
|
|
1965
|
+
case TextureFormat::R8BG8A8Triplanar420Unorm:
|
|
1966
|
+
o << "TextureFormat::R8BG8A8Triplanar420Unorm";
|
|
1967
|
+
break;
|
|
1968
|
+
case TextureFormat::R8BG8Biplanar422Unorm:
|
|
1969
|
+
o << "TextureFormat::R8BG8Biplanar422Unorm";
|
|
1970
|
+
break;
|
|
1971
|
+
case TextureFormat::R8BG8Biplanar444Unorm:
|
|
1972
|
+
o << "TextureFormat::R8BG8Biplanar444Unorm";
|
|
1973
|
+
break;
|
|
1974
|
+
case TextureFormat::R10X6BG10X6Biplanar422Unorm:
|
|
1975
|
+
o << "TextureFormat::R10X6BG10X6Biplanar422Unorm";
|
|
1976
|
+
break;
|
|
1977
|
+
case TextureFormat::R10X6BG10X6Biplanar444Unorm:
|
|
1978
|
+
o << "TextureFormat::R10X6BG10X6Biplanar444Unorm";
|
|
1979
|
+
break;
|
|
1980
|
+
case TextureFormat::External:
|
|
1981
|
+
o << "TextureFormat::External";
|
|
1982
|
+
break;
|
|
1983
|
+
default:
|
|
1984
|
+
o << "TextureFormat::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureFormat>::type>(value);
|
|
1985
|
+
}
|
|
1986
|
+
return o;
|
|
1987
|
+
}
|
|
1988
|
+
template <typename CharT, typename Traits>
|
|
1989
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureSampleType value) {
|
|
1990
|
+
switch (value) {
|
|
1991
|
+
case TextureSampleType::BindingNotUsed:
|
|
1992
|
+
o << "TextureSampleType::BindingNotUsed";
|
|
1993
|
+
break;
|
|
1994
|
+
case TextureSampleType::Undefined:
|
|
1995
|
+
o << "TextureSampleType::Undefined";
|
|
1996
|
+
break;
|
|
1997
|
+
case TextureSampleType::Float:
|
|
1998
|
+
o << "TextureSampleType::Float";
|
|
1999
|
+
break;
|
|
2000
|
+
case TextureSampleType::UnfilterableFloat:
|
|
2001
|
+
o << "TextureSampleType::UnfilterableFloat";
|
|
2002
|
+
break;
|
|
2003
|
+
case TextureSampleType::Depth:
|
|
2004
|
+
o << "TextureSampleType::Depth";
|
|
2005
|
+
break;
|
|
2006
|
+
case TextureSampleType::Sint:
|
|
2007
|
+
o << "TextureSampleType::Sint";
|
|
2008
|
+
break;
|
|
2009
|
+
case TextureSampleType::Uint:
|
|
2010
|
+
o << "TextureSampleType::Uint";
|
|
2011
|
+
break;
|
|
2012
|
+
default:
|
|
2013
|
+
o << "TextureSampleType::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureSampleType>::type>(value);
|
|
2014
|
+
}
|
|
2015
|
+
return o;
|
|
2016
|
+
}
|
|
2017
|
+
template <typename CharT, typename Traits>
|
|
2018
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureViewDimension value) {
|
|
2019
|
+
switch (value) {
|
|
2020
|
+
case TextureViewDimension::Undefined:
|
|
2021
|
+
o << "TextureViewDimension::Undefined";
|
|
2022
|
+
break;
|
|
2023
|
+
case TextureViewDimension::e1D:
|
|
2024
|
+
o << "TextureViewDimension::e1D";
|
|
2025
|
+
break;
|
|
2026
|
+
case TextureViewDimension::e2D:
|
|
2027
|
+
o << "TextureViewDimension::e2D";
|
|
2028
|
+
break;
|
|
2029
|
+
case TextureViewDimension::e2DArray:
|
|
2030
|
+
o << "TextureViewDimension::e2DArray";
|
|
2031
|
+
break;
|
|
2032
|
+
case TextureViewDimension::Cube:
|
|
2033
|
+
o << "TextureViewDimension::Cube";
|
|
2034
|
+
break;
|
|
2035
|
+
case TextureViewDimension::CubeArray:
|
|
2036
|
+
o << "TextureViewDimension::CubeArray";
|
|
2037
|
+
break;
|
|
2038
|
+
case TextureViewDimension::e3D:
|
|
2039
|
+
o << "TextureViewDimension::e3D";
|
|
2040
|
+
break;
|
|
2041
|
+
default:
|
|
2042
|
+
o << "TextureViewDimension::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureViewDimension>::type>(value);
|
|
2043
|
+
}
|
|
2044
|
+
return o;
|
|
2045
|
+
}
|
|
2046
|
+
template <typename CharT, typename Traits>
|
|
2047
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ToneMappingMode value) {
|
|
2048
|
+
switch (value) {
|
|
2049
|
+
case ToneMappingMode::Standard:
|
|
2050
|
+
o << "ToneMappingMode::Standard";
|
|
2051
|
+
break;
|
|
2052
|
+
case ToneMappingMode::Extended:
|
|
2053
|
+
o << "ToneMappingMode::Extended";
|
|
2054
|
+
break;
|
|
2055
|
+
default:
|
|
2056
|
+
o << "ToneMappingMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ToneMappingMode>::type>(value);
|
|
2057
|
+
}
|
|
2058
|
+
return o;
|
|
2059
|
+
}
|
|
2060
|
+
template <typename CharT, typename Traits>
|
|
2061
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, VertexFormat value) {
|
|
2062
|
+
switch (value) {
|
|
2063
|
+
case VertexFormat::Uint8:
|
|
2064
|
+
o << "VertexFormat::Uint8";
|
|
2065
|
+
break;
|
|
2066
|
+
case VertexFormat::Uint8x2:
|
|
2067
|
+
o << "VertexFormat::Uint8x2";
|
|
2068
|
+
break;
|
|
2069
|
+
case VertexFormat::Uint8x4:
|
|
2070
|
+
o << "VertexFormat::Uint8x4";
|
|
2071
|
+
break;
|
|
2072
|
+
case VertexFormat::Sint8:
|
|
2073
|
+
o << "VertexFormat::Sint8";
|
|
2074
|
+
break;
|
|
2075
|
+
case VertexFormat::Sint8x2:
|
|
2076
|
+
o << "VertexFormat::Sint8x2";
|
|
2077
|
+
break;
|
|
2078
|
+
case VertexFormat::Sint8x4:
|
|
2079
|
+
o << "VertexFormat::Sint8x4";
|
|
2080
|
+
break;
|
|
2081
|
+
case VertexFormat::Unorm8:
|
|
2082
|
+
o << "VertexFormat::Unorm8";
|
|
2083
|
+
break;
|
|
2084
|
+
case VertexFormat::Unorm8x2:
|
|
2085
|
+
o << "VertexFormat::Unorm8x2";
|
|
2086
|
+
break;
|
|
2087
|
+
case VertexFormat::Unorm8x4:
|
|
2088
|
+
o << "VertexFormat::Unorm8x4";
|
|
2089
|
+
break;
|
|
2090
|
+
case VertexFormat::Snorm8:
|
|
2091
|
+
o << "VertexFormat::Snorm8";
|
|
2092
|
+
break;
|
|
2093
|
+
case VertexFormat::Snorm8x2:
|
|
2094
|
+
o << "VertexFormat::Snorm8x2";
|
|
2095
|
+
break;
|
|
2096
|
+
case VertexFormat::Snorm8x4:
|
|
2097
|
+
o << "VertexFormat::Snorm8x4";
|
|
2098
|
+
break;
|
|
2099
|
+
case VertexFormat::Uint16:
|
|
2100
|
+
o << "VertexFormat::Uint16";
|
|
2101
|
+
break;
|
|
2102
|
+
case VertexFormat::Uint16x2:
|
|
2103
|
+
o << "VertexFormat::Uint16x2";
|
|
2104
|
+
break;
|
|
2105
|
+
case VertexFormat::Uint16x4:
|
|
2106
|
+
o << "VertexFormat::Uint16x4";
|
|
2107
|
+
break;
|
|
2108
|
+
case VertexFormat::Sint16:
|
|
2109
|
+
o << "VertexFormat::Sint16";
|
|
2110
|
+
break;
|
|
2111
|
+
case VertexFormat::Sint16x2:
|
|
2112
|
+
o << "VertexFormat::Sint16x2";
|
|
2113
|
+
break;
|
|
2114
|
+
case VertexFormat::Sint16x4:
|
|
2115
|
+
o << "VertexFormat::Sint16x4";
|
|
2116
|
+
break;
|
|
2117
|
+
case VertexFormat::Unorm16:
|
|
2118
|
+
o << "VertexFormat::Unorm16";
|
|
2119
|
+
break;
|
|
2120
|
+
case VertexFormat::Unorm16x2:
|
|
2121
|
+
o << "VertexFormat::Unorm16x2";
|
|
2122
|
+
break;
|
|
2123
|
+
case VertexFormat::Unorm16x4:
|
|
2124
|
+
o << "VertexFormat::Unorm16x4";
|
|
2125
|
+
break;
|
|
2126
|
+
case VertexFormat::Snorm16:
|
|
2127
|
+
o << "VertexFormat::Snorm16";
|
|
2128
|
+
break;
|
|
2129
|
+
case VertexFormat::Snorm16x2:
|
|
2130
|
+
o << "VertexFormat::Snorm16x2";
|
|
2131
|
+
break;
|
|
2132
|
+
case VertexFormat::Snorm16x4:
|
|
2133
|
+
o << "VertexFormat::Snorm16x4";
|
|
2134
|
+
break;
|
|
2135
|
+
case VertexFormat::Float16:
|
|
2136
|
+
o << "VertexFormat::Float16";
|
|
2137
|
+
break;
|
|
2138
|
+
case VertexFormat::Float16x2:
|
|
2139
|
+
o << "VertexFormat::Float16x2";
|
|
2140
|
+
break;
|
|
2141
|
+
case VertexFormat::Float16x4:
|
|
2142
|
+
o << "VertexFormat::Float16x4";
|
|
2143
|
+
break;
|
|
2144
|
+
case VertexFormat::Float32:
|
|
2145
|
+
o << "VertexFormat::Float32";
|
|
2146
|
+
break;
|
|
2147
|
+
case VertexFormat::Float32x2:
|
|
2148
|
+
o << "VertexFormat::Float32x2";
|
|
2149
|
+
break;
|
|
2150
|
+
case VertexFormat::Float32x3:
|
|
2151
|
+
o << "VertexFormat::Float32x3";
|
|
2152
|
+
break;
|
|
2153
|
+
case VertexFormat::Float32x4:
|
|
2154
|
+
o << "VertexFormat::Float32x4";
|
|
2155
|
+
break;
|
|
2156
|
+
case VertexFormat::Uint32:
|
|
2157
|
+
o << "VertexFormat::Uint32";
|
|
2158
|
+
break;
|
|
2159
|
+
case VertexFormat::Uint32x2:
|
|
2160
|
+
o << "VertexFormat::Uint32x2";
|
|
2161
|
+
break;
|
|
2162
|
+
case VertexFormat::Uint32x3:
|
|
2163
|
+
o << "VertexFormat::Uint32x3";
|
|
2164
|
+
break;
|
|
2165
|
+
case VertexFormat::Uint32x4:
|
|
2166
|
+
o << "VertexFormat::Uint32x4";
|
|
2167
|
+
break;
|
|
2168
|
+
case VertexFormat::Sint32:
|
|
2169
|
+
o << "VertexFormat::Sint32";
|
|
2170
|
+
break;
|
|
2171
|
+
case VertexFormat::Sint32x2:
|
|
2172
|
+
o << "VertexFormat::Sint32x2";
|
|
2173
|
+
break;
|
|
2174
|
+
case VertexFormat::Sint32x3:
|
|
2175
|
+
o << "VertexFormat::Sint32x3";
|
|
2176
|
+
break;
|
|
2177
|
+
case VertexFormat::Sint32x4:
|
|
2178
|
+
o << "VertexFormat::Sint32x4";
|
|
2179
|
+
break;
|
|
2180
|
+
case VertexFormat::Unorm10_10_10_2:
|
|
2181
|
+
o << "VertexFormat::Unorm10_10_10_2";
|
|
2182
|
+
break;
|
|
2183
|
+
case VertexFormat::Unorm8x4BGRA:
|
|
2184
|
+
o << "VertexFormat::Unorm8x4BGRA";
|
|
2185
|
+
break;
|
|
2186
|
+
default:
|
|
2187
|
+
o << "VertexFormat::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<VertexFormat>::type>(value);
|
|
2188
|
+
}
|
|
2189
|
+
return o;
|
|
2190
|
+
}
|
|
2191
|
+
template <typename CharT, typename Traits>
|
|
2192
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, VertexStepMode value) {
|
|
2193
|
+
switch (value) {
|
|
2194
|
+
case VertexStepMode::Undefined:
|
|
2195
|
+
o << "VertexStepMode::Undefined";
|
|
2196
|
+
break;
|
|
2197
|
+
case VertexStepMode::Vertex:
|
|
2198
|
+
o << "VertexStepMode::Vertex";
|
|
2199
|
+
break;
|
|
2200
|
+
case VertexStepMode::Instance:
|
|
2201
|
+
o << "VertexStepMode::Instance";
|
|
2202
|
+
break;
|
|
2203
|
+
default:
|
|
2204
|
+
o << "VertexStepMode::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<VertexStepMode>::type>(value);
|
|
2205
|
+
}
|
|
2206
|
+
return o;
|
|
2207
|
+
}
|
|
2208
|
+
template <typename CharT, typename Traits>
|
|
2209
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, WaitStatus value) {
|
|
2210
|
+
switch (value) {
|
|
2211
|
+
case WaitStatus::Success:
|
|
2212
|
+
o << "WaitStatus::Success";
|
|
2213
|
+
break;
|
|
2214
|
+
case WaitStatus::TimedOut:
|
|
2215
|
+
o << "WaitStatus::TimedOut";
|
|
2216
|
+
break;
|
|
2217
|
+
case WaitStatus::Error:
|
|
2218
|
+
o << "WaitStatus::Error";
|
|
2219
|
+
break;
|
|
2220
|
+
default:
|
|
2221
|
+
o << "WaitStatus::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<WaitStatus>::type>(value);
|
|
2222
|
+
}
|
|
2223
|
+
return o;
|
|
2224
|
+
}
|
|
2225
|
+
template <typename CharT, typename Traits>
|
|
2226
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, WGSLLanguageFeatureName value) {
|
|
2227
|
+
switch (value) {
|
|
2228
|
+
case WGSLLanguageFeatureName::ReadonlyAndReadwriteStorageTextures:
|
|
2229
|
+
o << "WGSLLanguageFeatureName::ReadonlyAndReadwriteStorageTextures";
|
|
2230
|
+
break;
|
|
2231
|
+
case WGSLLanguageFeatureName::Packed4x8IntegerDotProduct:
|
|
2232
|
+
o << "WGSLLanguageFeatureName::Packed4x8IntegerDotProduct";
|
|
2233
|
+
break;
|
|
2234
|
+
case WGSLLanguageFeatureName::UnrestrictedPointerParameters:
|
|
2235
|
+
o << "WGSLLanguageFeatureName::UnrestrictedPointerParameters";
|
|
2236
|
+
break;
|
|
2237
|
+
case WGSLLanguageFeatureName::PointerCompositeAccess:
|
|
2238
|
+
o << "WGSLLanguageFeatureName::PointerCompositeAccess";
|
|
2239
|
+
break;
|
|
2240
|
+
case WGSLLanguageFeatureName::SizedBindingArray:
|
|
2241
|
+
o << "WGSLLanguageFeatureName::SizedBindingArray";
|
|
2242
|
+
break;
|
|
2243
|
+
case WGSLLanguageFeatureName::TexelBuffers:
|
|
2244
|
+
o << "WGSLLanguageFeatureName::TexelBuffers";
|
|
2245
|
+
break;
|
|
2246
|
+
case WGSLLanguageFeatureName::ChromiumPrint:
|
|
2247
|
+
o << "WGSLLanguageFeatureName::ChromiumPrint";
|
|
2248
|
+
break;
|
|
2249
|
+
case WGSLLanguageFeatureName::ChromiumTestingUnimplemented:
|
|
2250
|
+
o << "WGSLLanguageFeatureName::ChromiumTestingUnimplemented";
|
|
2251
|
+
break;
|
|
2252
|
+
case WGSLLanguageFeatureName::ChromiumTestingUnsafeExperimental:
|
|
2253
|
+
o << "WGSLLanguageFeatureName::ChromiumTestingUnsafeExperimental";
|
|
2254
|
+
break;
|
|
2255
|
+
case WGSLLanguageFeatureName::ChromiumTestingExperimental:
|
|
2256
|
+
o << "WGSLLanguageFeatureName::ChromiumTestingExperimental";
|
|
2257
|
+
break;
|
|
2258
|
+
case WGSLLanguageFeatureName::ChromiumTestingShippedWithKillswitch:
|
|
2259
|
+
o << "WGSLLanguageFeatureName::ChromiumTestingShippedWithKillswitch";
|
|
2260
|
+
break;
|
|
2261
|
+
case WGSLLanguageFeatureName::ChromiumTestingShipped:
|
|
2262
|
+
o << "WGSLLanguageFeatureName::ChromiumTestingShipped";
|
|
2263
|
+
break;
|
|
2264
|
+
default:
|
|
2265
|
+
o << "WGSLLanguageFeatureName::" << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<WGSLLanguageFeatureName>::type>(value);
|
|
2266
|
+
}
|
|
2267
|
+
return o;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
template <typename CharT, typename Traits>
|
|
2271
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, BufferUsage value) {
|
|
2272
|
+
o << "BufferUsage::";
|
|
2273
|
+
if (!static_cast<bool>(value)) {
|
|
2274
|
+
// 0 is often explicitly declared as None.
|
|
2275
|
+
o << "None";
|
|
2276
|
+
return o;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2280
|
+
if (moreThanOneBit) {
|
|
2281
|
+
o << "(";
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
bool first = true;
|
|
2285
|
+
if (value & BufferUsage::MapRead) {
|
|
2286
|
+
if (!first) {
|
|
2287
|
+
o << "|";
|
|
2288
|
+
}
|
|
2289
|
+
first = false;
|
|
2290
|
+
o << "MapRead";
|
|
2291
|
+
value &= ~BufferUsage::MapRead;
|
|
2292
|
+
}
|
|
2293
|
+
if (value & BufferUsage::MapWrite) {
|
|
2294
|
+
if (!first) {
|
|
2295
|
+
o << "|";
|
|
2296
|
+
}
|
|
2297
|
+
first = false;
|
|
2298
|
+
o << "MapWrite";
|
|
2299
|
+
value &= ~BufferUsage::MapWrite;
|
|
2300
|
+
}
|
|
2301
|
+
if (value & BufferUsage::CopySrc) {
|
|
2302
|
+
if (!first) {
|
|
2303
|
+
o << "|";
|
|
2304
|
+
}
|
|
2305
|
+
first = false;
|
|
2306
|
+
o << "CopySrc";
|
|
2307
|
+
value &= ~BufferUsage::CopySrc;
|
|
2308
|
+
}
|
|
2309
|
+
if (value & BufferUsage::CopyDst) {
|
|
2310
|
+
if (!first) {
|
|
2311
|
+
o << "|";
|
|
2312
|
+
}
|
|
2313
|
+
first = false;
|
|
2314
|
+
o << "CopyDst";
|
|
2315
|
+
value &= ~BufferUsage::CopyDst;
|
|
2316
|
+
}
|
|
2317
|
+
if (value & BufferUsage::Index) {
|
|
2318
|
+
if (!first) {
|
|
2319
|
+
o << "|";
|
|
2320
|
+
}
|
|
2321
|
+
first = false;
|
|
2322
|
+
o << "Index";
|
|
2323
|
+
value &= ~BufferUsage::Index;
|
|
2324
|
+
}
|
|
2325
|
+
if (value & BufferUsage::Vertex) {
|
|
2326
|
+
if (!first) {
|
|
2327
|
+
o << "|";
|
|
2328
|
+
}
|
|
2329
|
+
first = false;
|
|
2330
|
+
o << "Vertex";
|
|
2331
|
+
value &= ~BufferUsage::Vertex;
|
|
2332
|
+
}
|
|
2333
|
+
if (value & BufferUsage::Uniform) {
|
|
2334
|
+
if (!first) {
|
|
2335
|
+
o << "|";
|
|
2336
|
+
}
|
|
2337
|
+
first = false;
|
|
2338
|
+
o << "Uniform";
|
|
2339
|
+
value &= ~BufferUsage::Uniform;
|
|
2340
|
+
}
|
|
2341
|
+
if (value & BufferUsage::Storage) {
|
|
2342
|
+
if (!first) {
|
|
2343
|
+
o << "|";
|
|
2344
|
+
}
|
|
2345
|
+
first = false;
|
|
2346
|
+
o << "Storage";
|
|
2347
|
+
value &= ~BufferUsage::Storage;
|
|
2348
|
+
}
|
|
2349
|
+
if (value & BufferUsage::Indirect) {
|
|
2350
|
+
if (!first) {
|
|
2351
|
+
o << "|";
|
|
2352
|
+
}
|
|
2353
|
+
first = false;
|
|
2354
|
+
o << "Indirect";
|
|
2355
|
+
value &= ~BufferUsage::Indirect;
|
|
2356
|
+
}
|
|
2357
|
+
if (value & BufferUsage::QueryResolve) {
|
|
2358
|
+
if (!first) {
|
|
2359
|
+
o << "|";
|
|
2360
|
+
}
|
|
2361
|
+
first = false;
|
|
2362
|
+
o << "QueryResolve";
|
|
2363
|
+
value &= ~BufferUsage::QueryResolve;
|
|
2364
|
+
}
|
|
2365
|
+
if (value & BufferUsage::TexelBuffer) {
|
|
2366
|
+
if (!first) {
|
|
2367
|
+
o << "|";
|
|
2368
|
+
}
|
|
2369
|
+
first = false;
|
|
2370
|
+
o << "TexelBuffer";
|
|
2371
|
+
value &= ~BufferUsage::TexelBuffer;
|
|
2372
|
+
}
|
|
2373
|
+
|
|
2374
|
+
if (static_cast<bool>(value)) {
|
|
2375
|
+
if (!first) {
|
|
2376
|
+
o << "|";
|
|
2377
|
+
}
|
|
2378
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<BufferUsage>::type>(value);
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
if (moreThanOneBit) {
|
|
2382
|
+
o << ")";
|
|
2383
|
+
}
|
|
2384
|
+
return o;
|
|
2385
|
+
}
|
|
2386
|
+
template <typename CharT, typename Traits>
|
|
2387
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ColorWriteMask value) {
|
|
2388
|
+
o << "ColorWriteMask::";
|
|
2389
|
+
if (!static_cast<bool>(value)) {
|
|
2390
|
+
// 0 is often explicitly declared as None.
|
|
2391
|
+
o << "None";
|
|
2392
|
+
return o;
|
|
2393
|
+
}
|
|
2394
|
+
|
|
2395
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2396
|
+
if (moreThanOneBit) {
|
|
2397
|
+
o << "(";
|
|
2398
|
+
}
|
|
2399
|
+
|
|
2400
|
+
bool first = true;
|
|
2401
|
+
if (value & ColorWriteMask::Red) {
|
|
2402
|
+
if (!first) {
|
|
2403
|
+
o << "|";
|
|
2404
|
+
}
|
|
2405
|
+
first = false;
|
|
2406
|
+
o << "Red";
|
|
2407
|
+
value &= ~ColorWriteMask::Red;
|
|
2408
|
+
}
|
|
2409
|
+
if (value & ColorWriteMask::Green) {
|
|
2410
|
+
if (!first) {
|
|
2411
|
+
o << "|";
|
|
2412
|
+
}
|
|
2413
|
+
first = false;
|
|
2414
|
+
o << "Green";
|
|
2415
|
+
value &= ~ColorWriteMask::Green;
|
|
2416
|
+
}
|
|
2417
|
+
if (value & ColorWriteMask::Blue) {
|
|
2418
|
+
if (!first) {
|
|
2419
|
+
o << "|";
|
|
2420
|
+
}
|
|
2421
|
+
first = false;
|
|
2422
|
+
o << "Blue";
|
|
2423
|
+
value &= ~ColorWriteMask::Blue;
|
|
2424
|
+
}
|
|
2425
|
+
if (value & ColorWriteMask::Alpha) {
|
|
2426
|
+
if (!first) {
|
|
2427
|
+
o << "|";
|
|
2428
|
+
}
|
|
2429
|
+
first = false;
|
|
2430
|
+
o << "Alpha";
|
|
2431
|
+
value &= ~ColorWriteMask::Alpha;
|
|
2432
|
+
}
|
|
2433
|
+
if (value & ColorWriteMask::All) {
|
|
2434
|
+
if (!first) {
|
|
2435
|
+
o << "|";
|
|
2436
|
+
}
|
|
2437
|
+
first = false;
|
|
2438
|
+
o << "All";
|
|
2439
|
+
value &= ~ColorWriteMask::All;
|
|
2440
|
+
}
|
|
2441
|
+
|
|
2442
|
+
if (static_cast<bool>(value)) {
|
|
2443
|
+
if (!first) {
|
|
2444
|
+
o << "|";
|
|
2445
|
+
}
|
|
2446
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ColorWriteMask>::type>(value);
|
|
2447
|
+
}
|
|
2448
|
+
|
|
2449
|
+
if (moreThanOneBit) {
|
|
2450
|
+
o << ")";
|
|
2451
|
+
}
|
|
2452
|
+
return o;
|
|
2453
|
+
}
|
|
2454
|
+
template <typename CharT, typename Traits>
|
|
2455
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, HeapProperty value) {
|
|
2456
|
+
o << "HeapProperty::";
|
|
2457
|
+
if (!static_cast<bool>(value)) {
|
|
2458
|
+
// 0 is often explicitly declared as None.
|
|
2459
|
+
o << "None";
|
|
2460
|
+
return o;
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2464
|
+
if (moreThanOneBit) {
|
|
2465
|
+
o << "(";
|
|
2466
|
+
}
|
|
2467
|
+
|
|
2468
|
+
bool first = true;
|
|
2469
|
+
if (value & HeapProperty::DeviceLocal) {
|
|
2470
|
+
if (!first) {
|
|
2471
|
+
o << "|";
|
|
2472
|
+
}
|
|
2473
|
+
first = false;
|
|
2474
|
+
o << "DeviceLocal";
|
|
2475
|
+
value &= ~HeapProperty::DeviceLocal;
|
|
2476
|
+
}
|
|
2477
|
+
if (value & HeapProperty::HostVisible) {
|
|
2478
|
+
if (!first) {
|
|
2479
|
+
o << "|";
|
|
2480
|
+
}
|
|
2481
|
+
first = false;
|
|
2482
|
+
o << "HostVisible";
|
|
2483
|
+
value &= ~HeapProperty::HostVisible;
|
|
2484
|
+
}
|
|
2485
|
+
if (value & HeapProperty::HostCoherent) {
|
|
2486
|
+
if (!first) {
|
|
2487
|
+
o << "|";
|
|
2488
|
+
}
|
|
2489
|
+
first = false;
|
|
2490
|
+
o << "HostCoherent";
|
|
2491
|
+
value &= ~HeapProperty::HostCoherent;
|
|
2492
|
+
}
|
|
2493
|
+
if (value & HeapProperty::HostUncached) {
|
|
2494
|
+
if (!first) {
|
|
2495
|
+
o << "|";
|
|
2496
|
+
}
|
|
2497
|
+
first = false;
|
|
2498
|
+
o << "HostUncached";
|
|
2499
|
+
value &= ~HeapProperty::HostUncached;
|
|
2500
|
+
}
|
|
2501
|
+
if (value & HeapProperty::HostCached) {
|
|
2502
|
+
if (!first) {
|
|
2503
|
+
o << "|";
|
|
2504
|
+
}
|
|
2505
|
+
first = false;
|
|
2506
|
+
o << "HostCached";
|
|
2507
|
+
value &= ~HeapProperty::HostCached;
|
|
2508
|
+
}
|
|
2509
|
+
|
|
2510
|
+
if (static_cast<bool>(value)) {
|
|
2511
|
+
if (!first) {
|
|
2512
|
+
o << "|";
|
|
2513
|
+
}
|
|
2514
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<HeapProperty>::type>(value);
|
|
2515
|
+
}
|
|
2516
|
+
|
|
2517
|
+
if (moreThanOneBit) {
|
|
2518
|
+
o << ")";
|
|
2519
|
+
}
|
|
2520
|
+
return o;
|
|
2521
|
+
}
|
|
2522
|
+
template <typename CharT, typename Traits>
|
|
2523
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, MapMode value) {
|
|
2524
|
+
o << "MapMode::";
|
|
2525
|
+
if (!static_cast<bool>(value)) {
|
|
2526
|
+
// 0 is often explicitly declared as None.
|
|
2527
|
+
o << "None";
|
|
2528
|
+
return o;
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2531
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2532
|
+
if (moreThanOneBit) {
|
|
2533
|
+
o << "(";
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
bool first = true;
|
|
2537
|
+
if (value & MapMode::Read) {
|
|
2538
|
+
if (!first) {
|
|
2539
|
+
o << "|";
|
|
2540
|
+
}
|
|
2541
|
+
first = false;
|
|
2542
|
+
o << "Read";
|
|
2543
|
+
value &= ~MapMode::Read;
|
|
2544
|
+
}
|
|
2545
|
+
if (value & MapMode::Write) {
|
|
2546
|
+
if (!first) {
|
|
2547
|
+
o << "|";
|
|
2548
|
+
}
|
|
2549
|
+
first = false;
|
|
2550
|
+
o << "Write";
|
|
2551
|
+
value &= ~MapMode::Write;
|
|
2552
|
+
}
|
|
2553
|
+
|
|
2554
|
+
if (static_cast<bool>(value)) {
|
|
2555
|
+
if (!first) {
|
|
2556
|
+
o << "|";
|
|
2557
|
+
}
|
|
2558
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<MapMode>::type>(value);
|
|
2559
|
+
}
|
|
2560
|
+
|
|
2561
|
+
if (moreThanOneBit) {
|
|
2562
|
+
o << ")";
|
|
2563
|
+
}
|
|
2564
|
+
return o;
|
|
2565
|
+
}
|
|
2566
|
+
template <typename CharT, typename Traits>
|
|
2567
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, ShaderStage value) {
|
|
2568
|
+
o << "ShaderStage::";
|
|
2569
|
+
if (!static_cast<bool>(value)) {
|
|
2570
|
+
// 0 is often explicitly declared as None.
|
|
2571
|
+
o << "None";
|
|
2572
|
+
return o;
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2576
|
+
if (moreThanOneBit) {
|
|
2577
|
+
o << "(";
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
bool first = true;
|
|
2581
|
+
if (value & ShaderStage::Vertex) {
|
|
2582
|
+
if (!first) {
|
|
2583
|
+
o << "|";
|
|
2584
|
+
}
|
|
2585
|
+
first = false;
|
|
2586
|
+
o << "Vertex";
|
|
2587
|
+
value &= ~ShaderStage::Vertex;
|
|
2588
|
+
}
|
|
2589
|
+
if (value & ShaderStage::Fragment) {
|
|
2590
|
+
if (!first) {
|
|
2591
|
+
o << "|";
|
|
2592
|
+
}
|
|
2593
|
+
first = false;
|
|
2594
|
+
o << "Fragment";
|
|
2595
|
+
value &= ~ShaderStage::Fragment;
|
|
2596
|
+
}
|
|
2597
|
+
if (value & ShaderStage::Compute) {
|
|
2598
|
+
if (!first) {
|
|
2599
|
+
o << "|";
|
|
2600
|
+
}
|
|
2601
|
+
first = false;
|
|
2602
|
+
o << "Compute";
|
|
2603
|
+
value &= ~ShaderStage::Compute;
|
|
2604
|
+
}
|
|
2605
|
+
|
|
2606
|
+
if (static_cast<bool>(value)) {
|
|
2607
|
+
if (!first) {
|
|
2608
|
+
o << "|";
|
|
2609
|
+
}
|
|
2610
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<ShaderStage>::type>(value);
|
|
2611
|
+
}
|
|
2612
|
+
|
|
2613
|
+
if (moreThanOneBit) {
|
|
2614
|
+
o << ")";
|
|
2615
|
+
}
|
|
2616
|
+
return o;
|
|
2617
|
+
}
|
|
2618
|
+
template <typename CharT, typename Traits>
|
|
2619
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, TextureUsage value) {
|
|
2620
|
+
o << "TextureUsage::";
|
|
2621
|
+
if (!static_cast<bool>(value)) {
|
|
2622
|
+
// 0 is often explicitly declared as None.
|
|
2623
|
+
o << "None";
|
|
2624
|
+
return o;
|
|
2625
|
+
}
|
|
2626
|
+
|
|
2627
|
+
bool moreThanOneBit = !HasZeroOrOneBits(value);
|
|
2628
|
+
if (moreThanOneBit) {
|
|
2629
|
+
o << "(";
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
bool first = true;
|
|
2633
|
+
if (value & TextureUsage::CopySrc) {
|
|
2634
|
+
if (!first) {
|
|
2635
|
+
o << "|";
|
|
2636
|
+
}
|
|
2637
|
+
first = false;
|
|
2638
|
+
o << "CopySrc";
|
|
2639
|
+
value &= ~TextureUsage::CopySrc;
|
|
2640
|
+
}
|
|
2641
|
+
if (value & TextureUsage::CopyDst) {
|
|
2642
|
+
if (!first) {
|
|
2643
|
+
o << "|";
|
|
2644
|
+
}
|
|
2645
|
+
first = false;
|
|
2646
|
+
o << "CopyDst";
|
|
2647
|
+
value &= ~TextureUsage::CopyDst;
|
|
2648
|
+
}
|
|
2649
|
+
if (value & TextureUsage::TextureBinding) {
|
|
2650
|
+
if (!first) {
|
|
2651
|
+
o << "|";
|
|
2652
|
+
}
|
|
2653
|
+
first = false;
|
|
2654
|
+
o << "TextureBinding";
|
|
2655
|
+
value &= ~TextureUsage::TextureBinding;
|
|
2656
|
+
}
|
|
2657
|
+
if (value & TextureUsage::StorageBinding) {
|
|
2658
|
+
if (!first) {
|
|
2659
|
+
o << "|";
|
|
2660
|
+
}
|
|
2661
|
+
first = false;
|
|
2662
|
+
o << "StorageBinding";
|
|
2663
|
+
value &= ~TextureUsage::StorageBinding;
|
|
2664
|
+
}
|
|
2665
|
+
if (value & TextureUsage::RenderAttachment) {
|
|
2666
|
+
if (!first) {
|
|
2667
|
+
o << "|";
|
|
2668
|
+
}
|
|
2669
|
+
first = false;
|
|
2670
|
+
o << "RenderAttachment";
|
|
2671
|
+
value &= ~TextureUsage::RenderAttachment;
|
|
2672
|
+
}
|
|
2673
|
+
if (value & TextureUsage::TransientAttachment) {
|
|
2674
|
+
if (!first) {
|
|
2675
|
+
o << "|";
|
|
2676
|
+
}
|
|
2677
|
+
first = false;
|
|
2678
|
+
o << "TransientAttachment";
|
|
2679
|
+
value &= ~TextureUsage::TransientAttachment;
|
|
2680
|
+
}
|
|
2681
|
+
if (value & TextureUsage::StorageAttachment) {
|
|
2682
|
+
if (!first) {
|
|
2683
|
+
o << "|";
|
|
2684
|
+
}
|
|
2685
|
+
first = false;
|
|
2686
|
+
o << "StorageAttachment";
|
|
2687
|
+
value &= ~TextureUsage::StorageAttachment;
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
if (static_cast<bool>(value)) {
|
|
2691
|
+
if (!first) {
|
|
2692
|
+
o << "|";
|
|
2693
|
+
}
|
|
2694
|
+
o << std::showbase << std::hex << std::setfill('0') << std::setw(4) << static_cast<typename std::underlying_type<TextureUsage>::type>(value);
|
|
2695
|
+
}
|
|
2696
|
+
|
|
2697
|
+
if (moreThanOneBit) {
|
|
2698
|
+
o << ")";
|
|
2699
|
+
}
|
|
2700
|
+
return o;
|
|
2701
|
+
}
|
|
2702
|
+
|
|
2703
|
+
} // namespace wgpu
|
|
2704
|
+
|
|
2705
|
+
namespace wgpu {
|
|
2706
|
+
|
|
2707
|
+
template <typename CharT, typename Traits>
|
|
2708
|
+
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& o, StringView value) {
|
|
2709
|
+
o << std::string_view(value);
|
|
2710
|
+
return o;
|
|
2711
|
+
}
|
|
2712
|
+
|
|
2713
|
+
} // namespace wgpu
|
|
2714
|
+
|
|
2715
|
+
#endif // WEBGPU_CPP_PRINT_H_
|