Add FontMemoryGuard feature for GPU-aware font atlas memory management#152
Add FontMemoryGuard feature for GPU-aware font atlas memory management#152matt-edmondson with Copilot wants to merge 9 commits into
Conversation
…o limit texture memory allocation for fonts, enhancing performance on low-end GPUs. Updated font initialization to incorporate memory constraints and fallback strategies, ensuring efficient resource usage. Updated package versions for dependencies.
…methods to public, enhancing accessibility. Updated integrated GPU detection patterns for AMD and Intel, and improved memory limit calculations for both GPU types. Added comprehensive unit tests for FontMemoryGuard functionality, ensuring robust memory estimation and GPU detection.
…mGuiApp.Test, and ImGuiAppDemo projects to support .NET 8.0 and 9.0. Reintroduced coverlet.collector dependency in test dependencies section of Directory.Packages.props. Updated ktsu SDK versions to 1.56.0 across all projects for improved functionality.
Implement font memory guards to prevent texture memory exhaustion on integrated GPUs
…ard feature - Consolidate ImGui.App, ImGui.Widgets, ImGui.Popups, and ImGui.Styler into single ImGuiApp project - Add FontMemoryGuard for GPU-aware font atlas memory management - Special handling for Intel & AMD integrated GPUs - Reorganize test structure into ImGuiApp.Test - Update solution structure and build configuration - Remove obsolete example projects for removed libraries
|
@copilot the code in main is newer, branch from main and then reintegrate the memory guard changes. |
Co-authored-by: matt-edmondson <19528727+matt-edmondson@users.noreply.github.com>
Co-authored-by: matt-edmondson <19528727+matt-edmondson@users.noreply.github.com>
|
nah |
Understood. I'll reset to main and apply only the FontMemoryGuard changes to the existing ImGui.App structure, preserving all the newer work in main. Working on this now. |
|
@copilot please continue this |
Done! I've reset the branch to main and added only the FontMemoryGuard feature while preserving the existing project structure (ImGui.App, ImGui.Widgets, etc.). Changes in commit a0dd242:
Build succeeds and all original tests pass. The FontMemoryGuard feature is now available without any structural changes to the codebase. |
Integration Plan: FontMemoryGuard Feature
This PR adds the FontMemoryGuard feature from the font-memory-guard branch to the current codebase, without the structural consolidation that was originally in that branch.
What Changed
FontMemoryGuard Feature
New GPU-aware font atlas memory management prevents crashes and performance degradation on integrated GPUs:
Key capabilities:
ImGuiAppConfig.FontMemoryConfigStructure Preserved
Build Status
Files Added/Modified
FontMemoryConfigpropertyNotes
The FontMemoryGuard class is now available for use but not yet integrated into the automatic font loading pipeline. This can be done in a future PR to apply memory constraints during font initialization.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.