Metal heaps do now allow us to specify offsets when performing allocations. This presents a few (related) problems:
A possibility for dealing with (1) and (2) would be to simply fall back on allocation of resources off of the heap when the user's allocation pattern cannot be mapped properly; the user would simply be given a pass if they would have technically invoked undefined behavior by incompatible access of aliased resources.
I don't think there is any way to work around (3). In theory we could simulate such aliasing by allocating a buffer and making texture views of range within it, but such views have lots of restrictions in the API (2D textures only, alignment, etc.) and it would be difficult to detect when we needed to do that without inducing a lot of overhead.
For the purposes of #1226, IIRC Vulkan implementations are allowed to advertise that they do not support linear tiling for any formats, which would prevent a user from attempting to invoke (3) without violating the API.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4