* Swapchain class
* Headless support
* MSAA backbuffer
* Fix framebuffer resolve
layout transitions were missing and framebuffer mips and layers weren't used
* Fix blit with MSAA resolve source
only the main texture layout was transitioned
* Fix pipeline hash
* Vulkan: calculate vertex count from all streams, not just the first
...which might not exist in the first place
* Vulkan: use correct vertex stream offsets and handles
* D3D11: remember stream vertex count when no index buffer is bound
* Don't enable optional extensions if BGFX_CONFIG_RENDERER_USE_EXTENSIONS is 0
* Support rendering to slices of 3D textures
* Create transient command pool
* Blit array layers for non-cube textures
* Clean up destroy and release functions
Simplifies CommandQueueVK code, automatically sets handles to NULL after release(), removes the need for explicit StateCacheT instantiations, and enables usage of StateCacheLru
* Fix renderpass hash calculation
* Allow sampling cube array textures
* Make StateCacheLru work with types overloading the address-of operator
* Alias textures to shader sampler type
Requires shaders with shaderc binary version 8 or higher
* Fix 32-bit compilation
If you do
```
bgfx::setIndexBuffer()
bgfx::submit(BGFX_DISCARD_NONE)
bgfx::submit()
```
then the second submit will be broken because even though it still uses the correct index buffer it will lose the BGFX_SUBMIT_INTERNAL_INDEX32 state.
Basically all multi-pass calls involving a 32index buffer are broken currently in bgfx master.
This fixes bug introduced by 5c304dad3b
* Fix variable naming
* Check if VK_KHR_get_physical_device_properties2 is actually supported
* Fix extension detection logic
Device extension data wasn't cleared after enumerating each physical device, essentially checking if ANY device supports that extensions, not just the selected device
* Vulkan: add conservative rasterization
* Vulkan: check device features for caps and state
* Vulkan: add line AA
* Don't assert in init()
* Vulkan: fix swapchain reset logic and handle lost surface
* Vulkan: report dedicated memory info in Stats
* Vulkan: fix sRGB backbuffer pipeline hash
* Vulkan: check BGFX_RESET_SUSPEND
* Fix typo in SPIR-V id
* Use backend-agnostic shaderc output
...as opposed to directly storing and comparing against Vulkan and WebGPU enums. This is backwards-compatible with existing code and shaders.
* Remove comments and Undefined value
* Vulkan: query max anisotropy
...instead of hardcoding it to 4
* Vulkan: use BGFX_CONFIG_MIP_LOD_BIAS
* Vulkan: consider BGFX_CONFIG_PREFER_DISCRETE_GPU at device selection
* Vulkan: implement resizing for textures with backbuffer ratio size
* Vulkan: use correct framebuffer attachment layer and mip
* Vulkan: bind correct image mip
* Cleanup
* Vulkan: add indirect draw support
* Vulkan: add support for BGFX_DEBUG_WIREFRAME
* Vulkan: check all extensions and layers
... not just the first 64
* Vulkan: add support for VPRT
https://github.com/bkaradzic/bgfx/issues/2320
* Vulkan: allow setting image debug name
* Vulkan: record multiple frames ahead of the GPU
...instead of stalling on the CPU after each submit. Controllable with init.resolution.maxFrameLatency, same as the D3D11/12 backends.
* Vulkan: some additional checks at swapchain creation
* Vulkan: stall for screenshot
* Vulkan: move blit out of render pass
* Vulkan: deferred framebuffer deletion
* Vulkan: fix cubemap blit
* Cleanup
* Vulkan: storage image must have GENERAL layout and has no sampler
* Vulkan: use slightly more fine-grained barriers
* Vulkan: readTexture should stall, too
* Cleanup
* Vulkan: selective acquire
Don't acquire a swapchain image if no view renders to the backbuffer, avoiding stalls due to vsync or reaching the backbuffer limit
* Vulkan: deferred program and state cache deletion
* Vulkan: fix debug blit