# GpuAdapterLimits

`import { GpuAdapterLimits } from "destack:gpu/binding";`

Normalized adapter limits.

```ds title="GpuAdapterLimits"
export struct GpuAdapterLimits {
    maxBindGroups: uint32;
    maxBindingsPerBindGroup: uint32;
    maxPushConstantBytes: uint32;
    maxTextureDimension1D: uint32;
    maxTextureDimension2D: uint32;
    maxTextureDimension3D: uint32;
    maxTextureArrayLayers: uint32;
    maxColorAttachments: uint32;
    maxColorAttachmentBytesPerSample: uint32;
    maxSampledTexturesPerShaderStage: uint32;
    maxSamplersPerShaderStage: uint32;
    maxStorageBuffersPerShaderStage: uint32;
    maxStorageTexturesPerShaderStage: uint32;
    maxUniformBuffersPerShaderStage: uint32;
    maxBindingArrayElementsPerShaderStage: uint32;
    maxBindingArraySamplerElementsPerShaderStage: uint32;
    maxDynamicUniformBuffersPerPipelineLayout: uint32;
    maxDynamicStorageBuffersPerPipelineLayout: uint32;
    maxUniformBufferBindingSize: uint64;
    maxStorageBufferBindingSize: uint64;
    minStorageBufferOffsetAlignment: uint32;
    minUniformBufferOffsetAlignment: uint32;
    maxVertexBuffers: uint32;
    maxVertexAttributes: uint32;
    maxVertexBufferArrayStride: uint32;
    maxBufferSize: uint64;
    maxInterStageShaderComponents: uint32;
    maxInterStageShaderVariables: uint32;
    maxComputeWorkgroupStorageSize: uint32;
    maxComputeInvocationsPerWorkgroup: uint32;
    maxComputeWorkgroupSizeX: uint32;
    maxComputeWorkgroupSizeY: uint32;
    maxComputeWorkgroupSizeZ: uint32;
    maxComputeWorkgroupsPerDimension: uint32;
    maxImmediateSize: uint32;
    maxNonSamplerBindings: uint32;
    maxTaskMeshWorkgroupTotalCount: uint32;
    maxTaskMeshWorkgroupsPerDimension: uint32;
    maxTaskInvocationsPerWorkgroup: uint32;
    maxTaskInvocationsPerDimension: uint32;
    maxMeshInvocationsPerWorkgroup: uint32;
    maxMeshInvocationsPerDimension: uint32;
    maxTaskPayloadSize: uint32;
    maxMeshOutputVertices: uint32;
    maxMeshOutputPrimitives: uint32;
    maxMeshOutputLayers: uint32;
    maxMeshMultiviewViewCount: uint32;
    maxBlasPrimitiveCount: uint32;
    maxBlasGeometryCount: uint32;
    maxTlasInstanceCount: uint32;
    maxAccelerationStructuresPerShaderStage: uint32;
    maxMultiviewViewCount: uint32;
}
```

[language/library/src/gpu/binding/adapter.ds:253:358](https://github.com/destack-sh/destack/blob/main/language/library/src/gpu/binding/adapter.ds#L253-L358)

## Members

### `maxBindGroups: uint32`

Maximum bind groups.

### `maxBindingsPerBindGroup: uint32`

Maximum bindings allowed in one bind group.

### `maxPushConstantBytes: uint32`

Maximum push constant bytes.

### `maxTextureDimension1D: uint32`

Maximum 1D texture dimension.

### `maxTextureDimension2D: uint32`

Maximum 2D texture dimension.

### `maxTextureDimension3D: uint32`

Maximum 3D texture dimension.

### `maxTextureArrayLayers: uint32`

Maximum texture array layers.

### `maxColorAttachments: uint32`

Maximum color attachments in one render pass.

### `maxColorAttachmentBytesPerSample: uint32`

Maximum color-attachment bytes written per sample.

### `maxSampledTexturesPerShaderStage: uint32`

Maximum sampled textures per shader stage.

### `maxSamplersPerShaderStage: uint32`

Maximum samplers per shader stage.

### `maxStorageBuffersPerShaderStage: uint32`

Maximum storage buffers per shader stage.

### `maxStorageTexturesPerShaderStage: uint32`

Maximum storage textures per shader stage.

### `maxUniformBuffersPerShaderStage: uint32`

Maximum uniform buffers per shader stage.

### `maxBindingArrayElementsPerShaderStage: uint32`

Maximum non-sampler binding-array elements per shader stage.

### `maxBindingArraySamplerElementsPerShaderStage: uint32`

Maximum sampler binding-array elements per shader stage.

### `maxDynamicUniformBuffersPerPipelineLayout: uint32`

Maximum dynamic uniform buffers per pipeline layout.

### `maxDynamicStorageBuffersPerPipelineLayout: uint32`

Maximum dynamic storage buffers per pipeline layout.

### `maxUniformBufferBindingSize: uint64`

Maximum uniform buffer binding size.

### `maxStorageBufferBindingSize: uint64`

Maximum storage buffer binding size.

### `minStorageBufferOffsetAlignment: uint32`

Minimum storage buffer offset alignment.

### `minUniformBufferOffsetAlignment: uint32`

Minimum uniform buffer offset alignment.

### `maxVertexBuffers: uint32`

Maximum vertex buffers.

### `maxVertexAttributes: uint32`

Maximum vertex attributes.

### `maxVertexBufferArrayStride: uint32`

Maximum vertex-buffer array stride in bytes.

### `maxBufferSize: uint64`

Maximum storage for one GPU buffer in bytes.

### `maxInterStageShaderComponents: uint32`

Maximum inter-stage shader components.

### `maxInterStageShaderVariables: uint32`

Maximum inter-stage shader variables.

### `maxComputeWorkgroupStorageSize: uint32`

Maximum compute workgroup storage in bytes.

### `maxComputeInvocationsPerWorkgroup: uint32`

Maximum compute invocations per workgroup.

### `maxComputeWorkgroupSizeX: uint32`

Maximum compute workgroup size on x axis.

### `maxComputeWorkgroupSizeY: uint32`

Maximum compute workgroup size on y axis.

### `maxComputeWorkgroupSizeZ: uint32`

Maximum compute workgroup size on z axis.

### `maxComputeWorkgroupsPerDimension: uint32`

Maximum compute workgroups per dispatch dimension.

### `maxImmediateSize: uint32`

Maximum immediate-data bytes.

### `maxNonSamplerBindings: uint32`

Maximum live non-sampler bindings.

### `maxTaskMeshWorkgroupTotalCount: uint32`

Maximum total mesh-task workgroup count.

### `maxTaskMeshWorkgroupsPerDimension: uint32`

Maximum mesh-task workgroups per dimension.

### `maxTaskInvocationsPerWorkgroup: uint32`

Maximum task-shader invocations per workgroup.

### `maxTaskInvocationsPerDimension: uint32`

Maximum task-shader invocations per dimension.

### `maxMeshInvocationsPerWorkgroup: uint32`

Maximum mesh-shader invocations per workgroup.

### `maxMeshInvocationsPerDimension: uint32`

Maximum mesh-shader invocations per dimension.

### `maxTaskPayloadSize: uint32`

Maximum task-shader payload size in bytes.

### `maxMeshOutputVertices: uint32`

Maximum mesh-shader output vertices.

### `maxMeshOutputPrimitives: uint32`

Maximum mesh-shader output primitives.

### `maxMeshOutputLayers: uint32`

Maximum mesh-shader output layers.

### `maxMeshMultiviewViewCount: uint32`

Maximum mesh-shader multiview view count.

### `maxBlasPrimitiveCount: uint32`

Maximum bottom-level acceleration-structure primitive count.

### `maxBlasGeometryCount: uint32`

Maximum bottom-level acceleration-structure geometry count.

### `maxTlasInstanceCount: uint32`

Maximum top-level acceleration-structure instance count.

### `maxAccelerationStructuresPerShaderStage: uint32`

Maximum acceleration structures per shader stage.

### `maxMultiviewViewCount: uint32`

Maximum multiview view count.
