Skip to content
  • ReinUsesLisp's avatar
    vk_image: Add an image object abstraction · c83bf7cd
    ReinUsesLisp authored
    This object's job is to contain an image and manage its transitions.
    Since Nvidia hardware doesn't know what a transition is but Vulkan
    requires them anyway, we have to state track image subresources
    individually.
    
    To avoid the overhead of tracking each subresource in images with many
    subresources (think of cubemap arrays with several mipmaps), this commit
    tracks when subresources have diverged. As long as this doesn't happen
    we can check the state of the first subresource (that will be shared
    with all subresources) and update accordingly.
    
    Image transitions are deferred to the scheduler command buffer.
    c83bf7cd
Loading