Repository navigation
fix(windows): request compute-capable WGPU limits - #29
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
The change is narrowly scoped to WGPU settings initialization and is backed by a focused regression test covering the reported failure mode.
Pull request overview
This PR fixes Windows native WGPU initialization by replacing Slint’s WebGL2/downlevel default limits (which can zero out compute/storage capabilities) with wgpu::Limits::default() before applying Patinae’s storage-buffer-stage override, and adds a regression test to ensure the requested limits remain compute-capable.
Changes:
- Set
settings.device_required_limits = wgpu::Limits::default()inpatinae_wgpu_settings()so Windows “Automatic” WGPU config requests compute/storage-capable limits. - Preserve the existing
max_storage_buffers_per_shader_stageoverride. - Add a regression test asserting non-zero compute/storage-related limits in the settings.
File summaries
| File | Description |
|---|---|
patinae/src/app.rs |
Requests WebGPU-default device limits to avoid zeroed compute/storage limits on Windows automatic WGPU path; adds a regression test for compute/storage capability. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
cd6ce39 to
103e8fe
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The new regression test doesn’t assert the specific compute workgroup-size limit that triggered the reported failure, so it may not reliably catch the original bug.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 2
- Review effort level: Lite
5aa581b to
aaead17
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The change is small, directly addresses the reported Windows failure mode, and includes a focused regression test for the requested limits.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0 new
- Review effort level: Lite
Summary
Initialize Patinae's native WGPU settings with
wgpu::Limits::default()before applying the renderer-specific storage-buffer count.Slint's
WGPUSettings::default()uses WebGL2-compatible downlevel limits. On the Windows automatic WGPU path this leaves compute and storage limits at zero, so Patinae successfully acquires the GPU and loads structures but cannot create its compute pipelines or scene-store bindings.This change:
max_storage_buffers_per_shader_stageoverride;Reproduction
Observed on Windows with Intel HD Graphics 530 / DX12 after #28.
Before:
After the change:
The same structure then renders successfully on that machine.
Notes
The non-Windows path already replaces Slint's settings with adapter-derived limits before
request_device; the Windows automatic path relies directly onWGPUSettings, which is why the zeroed defaults surfaced there.