Release v2.3.b notes:
- Enabled Vulkan backend on Linux
- API Changes
- Implemented separate texture samplers:
- Added
UseCombinedTextureSamplers
andCombinedSamplerSuffix
members toShaderCreationAttribs
structure.
When separate samplers are used (UseCombinedTextureSamplers == false
), samplers are set in the same way as other shader variables via shader or SRB objects. - Removed
BIND_SHADER_RESOURCES_RESET_BINDINGS
flag, renamedBIND_SHADER_RESOURCES_KEEP_EXISTING
toBIND_SHADER_RESOURCES_KEEP_EXISTING
. - Added
BIND_SHADER_RESOURCES_UPDATE_STATIC
,BIND_SHADER_RESOURCES_UPDATE_MUTABLE
,BIND_SHADER_RESOURCES_UPDATE_DYNAMIC
, andBIND_SHADER_RESOURCES_UPDATE_ALL
flags
- Added
- Implemented separate texture samplers:
- Using glslang to compile HLSL to SPIRV in Vulkan backend instead of relying on HLSL->GLSL converter
- Bug fixes
Previous release history
v2.3.a
- Core
- Added
IFence
interface andIDeviceContext::SignalFence()
method to enable CPU-GPU synchronization - Added
BUFFER_MODE_RAW
mode allowing raw buffer views in D3D11/D3D12. - Moved Format member from
BufferDesc
toBufferViewDesc
- Removed
IsIndirect
member fromDrawAttrbis
as settingpIndirectDrawAttribs
to a non-null buffer already indicates indirect rendering
- Added
- Samples:
v2.3
- Core:
- Implemented Vulkan backend
- Implemented hardware adapter & display mode enumeration in D3D11 and D3D12 modes
- Implemented initialization in fullscreen mode as well as toggling between fullscreen and windowed modes in run time
- Added sync interval parameter to
ISwapChain::Present()
- API Changes
- Added
NumViewports
member toGraphicsPipelineDesc
struct - Removed
PRIMITIVE_TOPOLOGY_TYPE
type - Replaced
PRIMITIVE_TOPOLOGY_TYPE GraphicsPipelineDesc::PrimitiveTopologyType
withPRIMITIVE_TOPOLOGY GraphicsPipelineDesc::PrimitiveTopology
RemovedDrawAttribs::Topology
RemovedpStrides
parameter from IDeviceContext::SetVertexBuffers(). Strides are now defined through vertex layout.
- Added
- API Changes:
- Math library functions
SetNearFarClipPlanes()
,GetNearFarPlaneFromProjMatrix()
,Projection()
,OrthoOffCenter()
, andOrtho()
takebIsGL
flag instead ofbIsDirectX
- Vertex buffer strides are now defined by the pipeline state as part of the input layout description (
LayoutElement::Stride
) - Added
COMMIT_SHADER_RESOURCES_FLAG_VERIFY_STATES
flag - Added
NumViewports
member toGraphicsPipelineDesc
structure
- Math library functions
- Samples:
- Added fullscreen mode selection dialog box
- Implemented fullscreen mode toggle on UWP with shift + enter
- Implemented fullscreen window toggle on Win32 with alt + enter
- Added Tutorial 09 – Quads
v2.2.a
- Enabled Win32 build targeting Windows 8.1 SDK
- Enabled build customization through custom build config file
- Implemented PSO compatibility
- Fixed the following issues:
- Messy #include structure?
- Move GetEngineFactoryXXXType and LoadGraphicsEngineXXX to Diligent namespace
- Customizable build scripts
- Win32FileSystem related functions should use wchar_t (UTF-16)
v2.2
Added MacOS and iOS support
v2.1.b
- Removed legacy Visual Studio solution and project files
- Added API reference
- Added tutorials 1-8
v2.1.a
- Refactored build system to use CMake and Gradle for Android
- Added support for Linux platform
v2.1
- Core
- Interoperability with native API
- Accessing internal objects and handles
- Createing diligent engine buffers/textures from native resources
- Attaching to existing D3D11/D3D12 device or GL context
- Resource state and command queue synchronization for D3D12
- Integraion with Unity
- Geometry shader support
- Tessellation support
- Performance optimizations
- HLSL->GLSL converter
- Support for structured buffers
- HLSL->GLSL conversion is now a two-stage process:
- Creating conversion stream
- Creating GLSL source from the stream
- Geometry shader support
- Tessellation control and tessellation evaluation shader support
- Support for non-void shader functions
- Allowing structs as input parameters for shader functions
v2.0 (alpha)
Alpha release of Diligent Engine 2.0. The engine has been updated to take advantages of Direct3D12:
- Pipeline State Object encompasses all coarse-grain state objects like Depth-Stencil State, Blend State, Rasterizer State, shader states etc.
- New shader resource binding model implemented to leverage Direct3D12
- OpenGL and Direct3D11 backends
- Alpha release is only available on Windows platform
- Direct3D11 backend is very thoroughly optimized and has very low overhead compared to native D3D11 implementation
- Direct3D12 implementation is preliminary and not yet optimized
v1.0.0
Initial release