diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d2b5d6..ce884dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.30.0] - 2026-08-30 + +### Added + +- **`DeviceProvider.DownlevelCapabilities()`** — returns `gputypes.DownlevelCapabilities` for backend capability queries. Enables consumers (gg, g3d, Born ML) to check compute support, indirect execution, and other capabilities that may be absent on non-conformant backends (GLES 3.0, CPU software). Returns zero-value if implementation does not track downlevel capabilities (backward compatible). Matches Rust wgpu `Adapter::get_downlevel_capabilities()` pattern. Architecture: DeviceProvider interface method, not type-assert — follows Flutter Impeller "check capabilities, not backend type" principle. See ADR-071. + +### Changed + +- **deps:** gputypes v0.6.0 → v0.7.0 (DownlevelCapabilities types) + ## [0.29.0] - 2026-08-27 ### Added diff --git a/device_provider.go b/device_provider.go index fe67daa..e23ff60 100644 --- a/device_provider.go +++ b/device_provider.go @@ -58,4 +58,12 @@ type DeviceProvider interface { // without importing wgpu. Returns 0 if the implementation does not // track features (backward compatible — treat as no optional features). Features() gputypes.Features + + // DownlevelCapabilities returns backend capability flags for downlevel adapters. + // Consumers (e.g., gg) use this to query compute support, indirect execution, + // and other capabilities that may not be available on all backends (GLES 3.0). + // Returns zero-value DownlevelCapabilities if the implementation does not + // track downlevel capabilities (backward compatible — treat as no capabilities). + // Matches Rust wgpu Adapter::get_downlevel_capabilities() (adapter.rs:174). + DownlevelCapabilities() gputypes.DownlevelCapabilities } diff --git a/go.mod b/go.mod index 32ee990..954999e 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/gogpu/gpucontext go 1.25 -require github.com/gogpu/gputypes v0.6.0 +require github.com/gogpu/gputypes v0.7.0 diff --git a/go.sum b/go.sum index fac6f2e..1e52b59 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -github.com/gogpu/gputypes v0.6.0 h1:nfjx0ek0jU97ziHmukJgUJZBzlTlls9hsnEeqIEZUxM= -github.com/gogpu/gputypes v0.6.0/go.mod h1:cnXrDMwTpWTvJLW1Vreop3PcT6a2YP/i3s91rPaOavw= +github.com/gogpu/gputypes v0.7.0 h1:1IcXGyPx8v6iAutpjwBYjcyYd3g6ep+FhThoZbhpVAg= +github.com/gogpu/gputypes v0.7.0/go.mod h1:cnXrDMwTpWTvJLW1Vreop3PcT6a2YP/i3s91rPaOavw=