-
Notifications
You must be signed in to change notification settings - Fork 13
Aardvark Rendering 5.3 changelog
This major version update comes with various backend fixes and improvements. The public API did not receive major overhauls this time around, so updating from 5.2.x should be straightforward.
-
Reworked adaptive buffers
-
Added
BufferStorage
enum to select preferred buffer memory type (i.e. host-visible or device local) -
Improved
ManagedBuffer
implementation:- Based on reworked adaptive buffer implementation
- Avoids creating writers for constant data
- Buffer storage can be selected for optimal transfer & rendering
-
The following backend resource interfaces inherit from
IDisposable
now:IBackendTexture
IRenderbuffer
IStreamingTexture
IBackendSurface
IComputeShader
-
Implemented resource sharing between Vulkan and OpenGL backends (Textures and buffers). The Vulkan backend may create and export resources, which can be used by the OpenGL backend.
-
Implemented backend-specific debug configurations (
Aardvark.Rendering.GL.DebugConfig
andAardvark.Rendering.Vulkan.DebugConfig
). Debug configurations can be used to toggle various backend-specific debugging features. Debug levels (DebugLevel
) are now abstractions for specific configurations. For example, using the Vulkan backend you can enable more features provided by the validation layers like best practices validation or debug print. When the latter is enabled, shaders may invokeDebug.Printf
to directly print to the console.Note that
DebugLevel.None
(equivalent to passingdebug = false
to the application constructor) will no longer enable printing the GLSL output of shader compilation. If you want to restore the old behavior, you must use a custom debug configuration, for example{ DebugConfig.None with PrintShaderCode = true }
-
Added full support for rendering to color attachments with integer formats (signed and unsigned). Use the new
V2ui
,V3ui
andV4ui
vector types for unsigned integer formats. Expected shader output types solely depend on the used texture format now. Previously some default semantics would always expect a certain type regardless of the attachment (e.g.DefaultSemantic.Colors
defaulted toV4d
) -
Added and changed
Sg
functions:- Added
Sg.textureArray
for sampler arrays - Reworked
Sg.geometrySet
to useManagedPool
internally. Previously, used the brokenGeometrySetUtilities.GeometryPacker
, which was removed. - Made
Sg.runtime-
andSg.scopeDependentTexture
generic - Rearranged parameters of
Sg.pool
- Added
-
ManagedTracePool improvements:
- Added some utility functions for
TraceGeometryInfo
- Added face attributes
- Optimized geometry attribute caching
- Added some utility functions for
-
Changed type of
INativeBuffer.SizeInBytes
fromint
tonativeint
-
Removed obsolete
MultiApplication
-
Renamed
BufferUsage.Default
toBufferUsage.All
-
[Vulkan] Fixed various concurrency-related issues
-
[Vulkan] Improved support for image sampler arrays
-
[Vulkan] Rework descriptor set updates to be more fine grained
-
[Vulkan] Fixed issue with
NullTexture()
only being usable for 2D textures -
[Vulkan] Use update after bind to prevent recompilation of command task
-
[GL] Renamed
RuntimeConfig.SupressSparseBuffers
toRuntimeConfig.SuppressSparseBuffers
-
Fixed broken BGR(A) texture up- and download