[drape][Vulkan] Improve descriptor sets allocation #8276
No reviewers
Labels
No labels
Accessibility
Address
Android
Android Auto
Android Automotive (AAOS)
API
AppGallery
AppStore
Battery and Performance
Blocker
Bookmarks and Tracks
Borders
Bug
Build
CarPlay
Classificator
Community
Core
CrashReports
Cycling
Desktop
DevEx
DevOps
dev_sandbox
Directions
Documentation
Downloader
Drape
Driving
Duplicate
Editor
Elevation
Enhancement
Epic
External Map Datasets
F-Droid
Fonts
Frequently User Reported
Fund
Generator
Good first issue
Google Play
GPS
GSoC
iCloud
Icons
iOS
Legal
Linux Desktop
Linux packaging
Linux Phone
Mac OS
Map Data
Metro
Navigation
Need Feedback
Night Mode
NLnet 2024-06-281
No Feature Parity
Opening Hours
Outdoors
POI Info
Privacy
Public Transport
Raw Idea
Refactoring
Regional
Regression
Releases
RoboTest
Route Planning
Routing
Ruler
Search
Security
Styles
Tests
Track Recording
Translations
TTS
UI
UX
Walk Navigation
Watches
Web
Wikipedia
Windows
Won't fix
World Map
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: organicmaps/organicmaps#8276
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "github/fork/renderexpert/vulkan_refactor_descriptor_set"
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?
Motivation:
Current implementation call
vkAllocateDescriptorSets
multiple times until it finishes successfully. It's not efficient and may cause validation issues.Example:
New approach:
We calculate descriptor's pool capacity and check if there is enough space in it.
According to Vulkan's spec (https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateInfo.html):
It means that we need to maintain the same descriptors set size to avoid fragmentation.
mentioned in merge request !8139
@Jean-BaptisteC
Could you please test on your devices?mentioned in merge request !8288
Review: Approved
✅ Pixel 6 - Android 14
approved this merge request
Review: Commented
This commit was tested in the alpha version, looks like it works.
@vng WDYT?
approved this merge request
ranges ?
@vng
Yes, do you have any issues with it in mind?@organicmaps/core
note this cool C++20 syntax to fill struct info.Although for simpler structs with less fields more efficient way could be to use
Review: Approved
Let's continue testing it in alphas and betas.
approved this merge request