Skip to content

Add class-safe image suballocation - #17

Merged
antono3 merged 1 commit into
masterfrom
feature/image-suballocation
Sep 12, 2026
Merged

Add class-safe image suballocation#17
antono3 merged 1 commit into
masterfrom
feature/image-suballocation

Conversation

@antono3

@antono3 antono3 commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add explicit opt-in suballocation APIs for ordinary linear and optimal images
  • isolate reusable blocks by Vulkan memory type and resource class, eliminating mixed-class bufferImageGranularity boundaries
  • honor Vulkan 1.1 required and preferred dedicated allocations, with a conservative Vulkan 1.0 fallback
  • expose resource classes in allocation records, diagnostics, and filtered fragmentation statistics
  • reject sparse, disjoint, and DRM-format-modifier images from the ordinary binding path
  • add deterministic mixed-class stress coverage and a real lavapipe image-sharing example
  • run every Vulkan CI workload with the Khronos validation layer

The existing create_image* APIs retain dedicated-allocation behavior. Image sharing is additive and explicit through create_suballocated_image*.

Validation

  • exact V 0.5.2 (7647ce1) format and vet
  • exact V 0.5.2 setup check and 7/7 allocator test files
  • exact V 0.5.2 ASan + UBSan test suite
  • lavapipe buffer, image, and sustained-stress examples with VK_LAYER_KHRONOS_validation
  • real image smoke: two optimal images shared one block at offsets 0 and 16384; a linear image and buffer used separate blocks

@antono3
antono3 merged commit 0ec4728 into master Sep 12, 2026
2 checks passed
@antono3
antono3 deleted the feature/image-suballocation branch September 12, 2026 15:41
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.

1 participant