fix: parse vulkan VRAM from text#9669
Open
eglia wants to merge 2 commits intomudler:masterfrom
Open
Conversation
Assisted-by: opencode:gpt-5.5 Signed-off-by: Andreas Egli <github@kharan.ch>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR fixes Vulkan VRAM detection by switching from vulkaninfo --json to parsing vulkaninfo --text, since the JSON output is not emitted to stdout and may omit heap info.
Changes:
- Call
vulkaninfo --textinstead of--jsonfor GPU memory fallback detection - Add a text parser that extracts device name/type and sums device-local memory heaps
- Remove the prior JSON schema-based parsing logic
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+853
to
856
| if current == nil || current.totalVRAM == 0 || current.deviceType == "PHYSICAL_DEVICE_TYPE_CPU" { | ||
| return | ||
| } | ||
|
|
Contributor
Author
There was a problem hiding this comment.
This is not true. This is the output of vulkaninfo --text | grep deviceType:
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceType = PHYSICAL_DEVICE_TYPE_CPU
Assisted-by: Opencode:Gemma4 Signed-off-by: Andreas Egli <github@kharan.ch>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes the vulkan VRAM parsing. As far as I can tell, the current implementation is nonsense, because
vulkaninfo --jsondoes not write to stdout:Also, on my machine the json info did not actually contain the heap information, which is present in the text output.
This PR therefore changes to
vulkaninfo --textand parses the output. On my 32GB AMD GPU, this correctly detects the available VRAM.New output:
Total available VRAM vram=34208743424 caller={caller.file="/build/pkg/system/state.go" caller.L=79 }Old output:
Total available VRAM vram=0 caller={caller.file="/build/pkg/system/state.go" caller.L=79 }This PR fixes #9289
Notes for Reviewers
Signed commits