Runner: GPU backend detection fails on Windows (falls back to CPU) #39
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
blocked
draft
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
s1d3sw1ped/jiggablend#39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
On Windows the runner can't detect any GPU backend, so it forces CPU rendering for every job, even on a machine with a working HIP GPU. That blocks the Windows render trial on ai1 (Linux ai1 has MES hangs; plain Blender 5.2.3 HIP on Windows rendered frames 520-560 clean, 41/41).
Repro
b562f88, cross-compiledCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ./cmd/jiggablend.jiggablend.exe runner --manager http://<manager>:8080 --sandbox none --hip-gpu-sample-batch 0, with Blender 5.2.3 (C:\blender-5.2.3) on PATH, manager lock-system-blender on.Cause
internal/runner/blender/detect.goonly probes Linux: DRM card nodes under/sysandlspci. On Windows both are missing,DetectGPUBackends()returns ok=false, andDetectAndStoreGPUBackends()(runner.go ~234) setsgpuDetectionFailed = true, which forces CPU for all jobs.Proposed fix (either)
windows): queryWin32_VideoController(WMI / CIM, orGet-CimInstance Win32_VideoControlleroutput) and map Name/AdapterCompatibility to AMD/NVIDIA/Intel.Also: zstd on Windows
The runner refuses to start without
zstd("zstd not found - required for compressed blend file support. Install with: apt install zstd"). On Windows I had to put the official zstd v1.5.7 win64zstd.exeon PATH. Either document that (README / Windows install notes, with a Windows-appropriate error message) or bundle/vendor zstd support.Acceptance
Routing this to Ash since it needs code: a Windows GPU probe (or deferring to Blender's own device list when the host probe can't run) plus a Windows-friendly zstd message or docs. Jerry's acceptance list is the bar, and Linux detection has to stay as it is. Mira sets the order against Ash's current queue.
Ideally if supported we would get all necessary hardware info from blender then fallback to the more specific methods by system as needed.
Ruling: ACCEPT. Top priority. Per Justin (10/31 7:10 PM CT, via Jerry), this goes ahead of #36 and everything else in Ash's queue.
Purpose: runners use the GPU they have. Right now a Windows runner forces CPU, which blocks the ai1 Windows 520-560 render test.
Acceptance criteria
The normal review and merge flow applies, including the no-context comment pass.
Deployed
be76c82(#40, includes #34) on ai1 Windows 11, 7:37 PM CT 10/31. Cross-compiledCGO_ENABLED=0 GOOS=windows GOARCH=amd64on the jumpbox, exe sha256 c66f968f…522f1d. zstd.exe is still supplied on PATH by hand.Runner startup:
No "detection failed" line. Job 6 (frames 520-560) task 5354 runs GPU-only on HIP with Blender 5.2.3 and logs "Final Cycles device: GPU". Acceptance met on ai1.
Side note, not part of this fix: on Windows, make-relative reports "Total files 928 | Changed 43 | Failed 567". The same scene on Linux reports "Changed 610 | Failed 0". The paths are absolute
E:\…library paths, and Blender won't make a path relative across drive letters (the workspace is on C:).Task 5354 device lines: