Kohi Vulkan Renderer Plugin Changelog - 0.9.0 - 0.8.0 - Intentionally skipped 0.7 to sync with base engine version. - Samplers no longer require knowledge of mip levels, and thus no longer clamp LODs. - Separated image and sampler descriptors in renderer backend. - Fixed an issue where command buffers were created/managed based on swapchain image count, not max frames in flight. - Updated backend to only ever use double- or triple-buffering, checked against swapchain image count. - Added some verification logic to command buffers. - Changed all "per-image" resources to use an array size of 3 to allow for triple-buffering to be toggled without having to rebuild resources. - Changed window colourbuffer render targets to not use swapchain images directly. These are now drawn to 2 (double-buffering) or 3 (triple-buffering) images and later blitted to the swapchain images. In addition, the internal swapchain image index is maintained separately from the "colour buffer index". Colour buffer index should be used internally for all render operations, wereas the swapchain image index should only be used for acquiring swapchain images and presentation purposes. - Fixed a long-standing bug that was adding colour attachment data to pipelines regardless if there were any. This fixes the "Some things don't render unless validation layers are enabled" bug. - Changed linking of Vulkan lib to dynamic, and added a custom loader. - 0.6.0 - Added support for secondary command buffers. - Updated "renderings" to always use secondary command buffers. This allows reuse of resources within a frame such as descriptors when a scene is rendered more than once (water plane, cascaded shadow mapping, etc.). - 0.5.0 - Refactored plugin to follow standardized plugin loading/interfaces. - Changed all resources which are per-frame (i.e. framebuffers, textures) to handle the internal frame-specific logic internal to the plugin, so the frontend nor the engine no longer need be concerned about this. - colorbuffer and depthbuffer are now owned by the window. Depthbuffer is no longer created as part of the swapchain. - Fixed an issue where triple buffering was always assumed by some data structures. Also fixed overallocation of descriptor sets. - Fixed an issue with artifacts near cascade shadow map split seams on AMD GPUs. - Uniform buffers for shaders are now one per swapchain image instead of one, eliminating sync issues with uniforms. - 0.4.0 - Vulkan-specific plugin changelog file created. Updates specific to this backend are now listed here. - Overhauled wireframe mode. Shader configs will now pass "supports_wireframe", which indicates that the shader will need an extra set of pipelines created that use the VK_POLYGON_MODE_LINE instead of VK_POLYGON_MODE_FILL if, and only if, the current device's VkPhysicalDeviceFeatures.fillModeNonSolid is flagged as true (supported). - macOS: This feature requires Vulkan SDK 1.3.275.0 or later to work. If not supported, wireframe mode will fall back to rendering filled geometry. - Changed renderbuffer upload to optionally take a "include_in_frame_workload" parameter, which affects how the upload happens. - Setting this to true inserts the command into the actively recording command buffer. This should only be done after a call to "renderer_begin", which now begins the command buffer. - Setting this to false executes the previous behaviour of creating a one-time-use command buffer, waiting on an available queue and executing it, then waiting on it to complete. - Added a new debug utility to mark sections of code with a name and colour, to facilitate grouping in debuggers like RenderDoc. - Note this is based on functionality that was directly written into beginning/ending renderpasses, but is now accessible from the renderer frontend. - 0.3.0 and before - This changelog doesn't list any changes from here back, but includes everything from the creation of the plugin up until 0.4.0.