Skip to content

feat: Implement the GPU Info gathering within the Native SDK#1336

Open
mujacica wants to merge 58 commits intomasterfrom
native-gpu-info
Open

feat: Implement the GPU Info gathering within the Native SDK#1336
mujacica wants to merge 58 commits intomasterfrom
native-gpu-info

Conversation

@mujacica
Copy link
Contributor

@mujacica mujacica commented Aug 11, 2025

  • Implement GPU Info Context for Native SDK
  • Support for Mac/Windows/Unix (Vulkan, Dynamically loaded)
  • Support for several Vendors
  • Added SENTRY_WITH_GPU_INFO option, ON by default on supported platforms
  • Include vulkan-headers as submodule

@github-actions
Copy link

github-actions bot commented Aug 11, 2025

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 5d328bc

Copy link
Member

@bruno-garcia bruno-garcia left a comment

Choose a reason for hiding this comment

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

Just skimmed things but seems great so far!

@mujacica mujacica marked this pull request as ready for review October 2, 2025 13:22
cursor[bot]

This comment was marked as outdated.

@bruno-garcia
Copy link
Member

@sentry review

Copy link
Collaborator

@supervacuus supervacuus left a comment

Choose a reason for hiding this comment

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

Somehow my review message got lost... this looks great. Only minor topics that can be "fixed" or clarified.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@mujacica mujacica requested a review from supervacuus October 9, 2025 11:06
cursor[bot]

This comment was marked as outdated.

mujacica and others added 22 commits March 19, 2026 11:23
Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
- Use RTLD_NOW instead of RTLD_LAZY for immediate symbol validation
- Add dlerror() logging on Unix when Vulkan library fails to load
- Add macOS fallback when MoltenVK portability extensions unavailable
- Guard against UINT64_MAX overflow when summing GPU memory heaps
- Handle string allocation failures in create_gpu_info_from_device
- Log when a GPU device is skipped during enumeration
- Increase context_key buffer from 16 to 32 bytes
- Add ARM (0x13B5) and Samsung (0x144D) vendor IDs
- Improve thread safety documentation with specific lock references
- Document Vulkan API version requirement and driver version encoding
- Disable SENTRY_WITH_GPU_INFO by default (enable with -DSENTRY_WITH_GPU_INFO=ON)
- Update CHANGELOG and README to reflect opt-in behavior

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Accept VK_INCOMPLETE from vkEnumeratePhysicalDevices as valid (buffer
  contains data for written entries; also works around Windows loader bugs)
- Use a separate context_index counter for GPU context keys so they are
  contiguous (gpu, gpu2, gpu3) even when some devices fail info creation
- Fix clang-format style issues

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Use unload_vulkan_library() instead of manual cleanup to ensure all
pfn_* statics are reset to NULL when some Vulkan functions fail to load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous commit called unload_vulkan_library() before its
definition, causing an implicit declaration error on CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

4 participants