| 6 | static WGPULimits adapter_supported_limits = {0}; |
| 7 | |
| 8 | static void assertLimitsCompatible(WGPULimits required_limits, |
| 9 | WGPULimits supported_limits) { |
| 10 | #define ASSERT_LIMITS_COMPATIBLE(limitName) \ |
| 11 | assert(required_limits.limitName == supported_limits.limitName) |
| 12 | ASSERT_LIMITS_COMPATIBLE(maxTextureDimension1D); |
| 13 | ASSERT_LIMITS_COMPATIBLE(maxTextureDimension2D); |
| 14 | ASSERT_LIMITS_COMPATIBLE(maxTextureDimension3D); |
| 15 | ASSERT_LIMITS_COMPATIBLE(maxTextureArrayLayers); |
| 16 | ASSERT_LIMITS_COMPATIBLE(maxBindGroups); |
| 17 | ASSERT_LIMITS_COMPATIBLE(maxBindGroupsPlusVertexBuffers); |
| 18 | ASSERT_LIMITS_COMPATIBLE(maxBindingsPerBindGroup); |
| 19 | ASSERT_LIMITS_COMPATIBLE(maxDynamicUniformBuffersPerPipelineLayout); |
| 20 | ASSERT_LIMITS_COMPATIBLE(maxDynamicStorageBuffersPerPipelineLayout); |
| 21 | ASSERT_LIMITS_COMPATIBLE(maxSampledTexturesPerShaderStage); |
| 22 | ASSERT_LIMITS_COMPATIBLE(maxSamplersPerShaderStage); |
| 23 | ASSERT_LIMITS_COMPATIBLE(maxStorageBuffersPerShaderStage); |
| 24 | ASSERT_LIMITS_COMPATIBLE(maxStorageTexturesPerShaderStage); |
| 25 | ASSERT_LIMITS_COMPATIBLE(maxUniformBuffersPerShaderStage); |
| 26 | ASSERT_LIMITS_COMPATIBLE(minUniformBufferOffsetAlignment); |
| 27 | ASSERT_LIMITS_COMPATIBLE(minStorageBufferOffsetAlignment); |
| 28 | ASSERT_LIMITS_COMPATIBLE(maxUniformBufferBindingSize); |
| 29 | ASSERT_LIMITS_COMPATIBLE(maxStorageBufferBindingSize); |
| 30 | ASSERT_LIMITS_COMPATIBLE(maxVertexBuffers); |
| 31 | ASSERT_LIMITS_COMPATIBLE(maxBufferSize); |
| 32 | ASSERT_LIMITS_COMPATIBLE(maxVertexAttributes); |
| 33 | ASSERT_LIMITS_COMPATIBLE(maxVertexBufferArrayStride); |
| 34 | ASSERT_LIMITS_COMPATIBLE(maxInterStageShaderVariables); |
| 35 | ASSERT_LIMITS_COMPATIBLE(maxColorAttachments); |
| 36 | ASSERT_LIMITS_COMPATIBLE(maxColorAttachmentBytesPerSample); |
| 37 | ASSERT_LIMITS_COMPATIBLE(maxComputeWorkgroupStorageSize); |
| 38 | ASSERT_LIMITS_COMPATIBLE(maxComputeInvocationsPerWorkgroup); |
| 39 | ASSERT_LIMITS_COMPATIBLE(maxComputeWorkgroupSizeX); |
| 40 | ASSERT_LIMITS_COMPATIBLE(maxComputeWorkgroupSizeY); |
| 41 | ASSERT_LIMITS_COMPATIBLE(maxComputeWorkgroupSizeZ); |
| 42 | ASSERT_LIMITS_COMPATIBLE(maxComputeWorkgroupsPerDimension); |
| 43 | #undef ASSERT_LIMITS_COMPATIBLE |
| 44 | } |
| 45 | |
| 46 | static void on_device_request_ended(WGPURequestDeviceStatus status, |
| 47 | WGPUDevice device, |
no outgoing calls
no test coverage detected