Skip to content

fix: parse vulkan VRAM from text#9669

Open
eglia wants to merge 2 commits intomudler:masterfrom
eglia:vulkan-vram
Open

fix: parse vulkan VRAM from text#9669
eglia wants to merge 2 commits intomudler:masterfrom
eglia:vulkan-vram

Conversation

@eglia
Copy link
Copy Markdown
Contributor

@eglia eglia commented May 5, 2026

Description
This PR fixes the vulkan VRAM parsing. As far as I can tell, the current implementation is nonsense, because vulkaninfo --json does not write to stdout:

[-j, --json]         Produce a json version of vulkaninfo output conforming to the Vulkan
                     Profiles schema, saved as 
                     "VP_VULKANINFO_[DEVICE_NAME]_[DRIVER_VERSION].json"
                     of the first gpu in the system.

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 --text and 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

  • Yes, I signed my commits.

Assisted-by: opencode:gpt-5.5
Signed-off-by: Andreas Egli <github@kharan.ch>
@mudler mudler requested a review from Copilot May 5, 2026 21:48
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 --text instead of --json for 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 thread pkg/xsysinfo/gpu.go
Comment on lines +853 to 856
if current == nil || current.totalVRAM == 0 || current.deviceType == "PHYSICAL_DEVICE_TYPE_CPU" {
return
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not true. This is the output of vulkaninfo --text | grep deviceType:

        deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceType        = PHYSICAL_DEVICE_TYPE_CPU

Comment thread pkg/xsysinfo/gpu.go Outdated
Assisted-by: Opencode:Gemma4
Signed-off-by: Andreas Egli <github@kharan.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Intel Arc Pro B70 VRAM not parsed

2 participants