export interface GpuCapabilities { hasF16: boolean; hasSubgroups: boolean; hasTimestampQuery: boolean; maxBufferSize: number; maxStorageBufferBindingSize: number; maxComputeWorkgroupSizeX: number; maxComputeWorkgroupSizeY: number; maxComputeWorkgroupSizeZ: number; maxComputeInvocationsPerWorkgroup: number; maxComputeWorkgroupsPerDimension: number; subgroupSize?: number; minSubgroupSize?: number; maxSubgroupSize?: number; } export interface GpuLimits { maxBufferSize: number; maxStorageBufferBindingSize: number; maxUniformBufferBindingSize: number; maxBindGroups: number; maxBindingsPerBindGroup: number; maxDynamicUniformBuffersPerPipelineLayout: number; maxDynamicStorageBuffersPerPipelineLayout: number; }