Flush ensures that all pending texture uploads are completed by submitting an empty command buffer and polling the device queue.
This is necessary after uploading textures to ensure they are available for rendering, especially when uploads are done in chunks.
Release releases all cached images and samplers, freeing their GPU resources and clearing the caches to prevent reuse.
This should be called when the application is shutting down or when the GPU device is being reset to avoid resource leaks.
FromGoImage creates a new Image from a standard Go image.Image.
The device is passed explicitly so this package does not need package-level initialization.
LoadImage loads an image from filePath and caches it by normalized file name.
The device is passed explicitly so this package does not need package-level initialization.