| # Adapter Properties | |
| ## Memory Heaps | |
| `wgpu::FeatureName::AdapterPropertiesMemoryHeaps` allows querying memory heap information from the adapter. | |
| `wgpu::AdapterPropertiesMemoryHeaps` may be chained on `wgpu::AdapterInfo` in a call to `wgpu::Adapter::GetInfo` or `wgpu::Device::GetAdapterInfo` in order to query information about the memory heaps on the adapter. | |
| The implementation will write out the number of memory heaps and information about each heap. | |
| If `wgpu::FeatureName::AdapterPropertiesMemoryHeaps` is not available, the struct will not be populated. | |
| Adds `wgpu::HeapProperty` which is a bitmask describing the type of memory a heap is. Valid bits: | |
| - DeviceLocal | |
| - HostVisible | |
| - HostCoherent | |
| - HostUncached | |
| - HostCached | |
| Note that both HostUncached and HostCached may be set if a heap can allocate pages with either cache property. | |
| Adds `wgpu::MemoryHeapInfo` which is a struct describing a memory heap. | |
| ``` | |
| struct MemoryHeapInfo { | |
| HeapProperty properties; | |
| uint64_t size; | |
| }; | |
| ``` | |
| `wgpu::MemoryHeapInfo::size` is the size that should be allocated out of this heap. Allocating more than this may result in poor performance or may deterministically run out of memory. | |
| ## DRM properties | |
| `wgpu::FeatureName:AdapterPropertiesDRM`, currently only available on Vulkan (but could be added on OpenGL / ES), allows querying Linux DRM information about the adapter. | |
| `wgpu::AdapterPropertiesDRM` may be chained on `wgpu::AdapterInfo` in a call to `wgpu::Adapter::GetInfo` or `wgpu::Device::GetAdapterInfo` in order to query DRM information on the adapter. | |
| ## D3D | |
| `wgpu::FeatureName::AdapterPropertiesD3D` allows querying D3D information from the adapter. | |
| `wgpu::AdapterPropertiesD3D` may be chained on `wgpu::AdapterInfo` in a call to `wgpu::Adapter::GetInfo` or `wgpu::Device::GetAdapterInfo` in order to query D3D information on the adapter. | |
| Adds `wgpu::AdapterPropertiesD3D` which is a struct describing the D3D adapter. | |
| ``` | |
| struct AdapterPropertiesD3D { | |
| uint32_t shaderModel; // The D3D shader model | |
| }; | |
| ``` | |
| ## Vulkan | |
| `wgpu::FeatureName::AdapterPropertiesVk` allows querying Vulkan information from the adapter. | |
| `wgpu::AdapterPropertiesVk` may be chained on `wgpu::AdapterInfo` in a call to `wgpu::Adapter::GetInfo` or `wgpu::Device::GetAdapterInfo` in order to query Vulkan information on the adapter. | |
| Adds `wgpu::AdapterPropertiesVk` which is a struct describing the Vulkan adapter. | |
| ``` | |
| struct AdapterPropertiesVk { | |
| uint32_t driverVersion; // The Vulkan driver version | |
| }; | |
| ``` | |
| ## WebGPU | |
| `wgpu::FeatureName::AdapterPropertiesWGPU` allows querying inner backend information of the WebGPUBackend from the adapter. | |
| `wgpu::AdapterPropertiesWGPU` may be chained on `wgpu::AdapterInfo` in a call to `wgpu::Adapter::GetInfo` or `wgpu::Device::GetAdapterInfo` in order to query WebGPU backend information on the adapter. | |
| Adds `wgpu::AdapterPropertiesWGPU` which is a struct describing the WebGPU adapter. | |
| ``` | |
| struct AdapterPropertiesWGPU { | |
| wgpu::BackendType backendType; // The inner backend type | |
| }; | |
| ``` |