Tree @ext-vk (Download .tar.gz)
ReleaseHistory.md @ext-vk — view markup · raw · history · blame
v2.4.g
API Changes
- Enabled ray tracing (API Version 240080)
- Added
IDeviceContext::GetFrameNumber
method (API Version 240079) -
Added
ShaderResourceQueries
device feature andEngineGLCreateInfo::ForceNonSeparablePrograms
parameter (API Version 240078) -
Renamed
USAGE_STATIC
toUSAGE_IMMUTABLE
(API Version 240077) -
Renamed static samplers into immutable samplers (API Version 240076)
- Renamed
StaticSamplerDesc
->ImmutableSamplerDesc
- Renamed
PipelineResourceLayoutDesc::NumStaticSamplers
->PipelineResourceLayoutDesc::NumImmutableSamplers
-
Renamed
PipelineResourceLayoutDesc::StaticSamplers
->PipelineResourceLayoutDesc::ImmutableSamplers
-
Refactored pipeline state creation (API Version 240075)
- Replaced
PipelineStateCreateInfo
withGraphicsPipelineStateCreateInfo
andComputePipelineStateCreateInfo
- Replaced
IRenderDevice::CreatePipelineState
withIRenderDevice::CreateGraphicsPipelineState
andIRenderDevice::CreateComputePipelineState
pVS
,pGS
,pHS
,pDS
,pPS
,pAS
,pMS
were moved fromGraphicsPipelineDesc
toGraphicsPipelineStateCreateInfo
GraphicsPipelineDesc GraphicsPipeline
was moved fromPipelineStateDesc
toGraphicsPipelineStateCreateInfo
pCS
is now a member ofComputePipelineStateCreateInfo
,ComputePipelineDesc
was removed- Added
IPipelineState::GetGraphicsPipelineDesc
method
Old API for graphics pipeline initialization: ```cpp PipelineStateCreateInfo PSOCreateInfo; PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc;
PSODesc.GraphicsPipeline.pVS = pVS; PSODesc.GraphicsPipeline.pPS = pVS; // ... Device->CreatePipelineState(PSOCreateInfo, &pPSO); ```
New API for graphics pipeline initialization:
cpp
GraphicsPipelineStateCreateInfo PSOCreateInfo;
// ...
PSOCreateInfo.pVS = pVS;
PSOCreateInfo.pPS = pVS;
Device->CreateGraphicsPipelineState(PSOCreateInfo, &pPSO);
Old API for compute pipeline initialization: ```cpp PipelineStateCreateInfo PSOCreateInfo; PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc;
PSODesc.ComputePipeline.pCS = pCS; // ... Device->CreatePipelineState(PSOCreateInfo, &pPSO); ```
New API for compute pipeline initialization:
```cpp ComputePipelineStateCreateInfo PSOCreateInfo;
PSOCreateInfo.pCS = pCS; Device->CreateComputePipelineState(PSOCreateInfo, &pPSO); ```
- Added
ShaderInt8
,ResourceBuffer8BitAccess
, andUniformBuffer8BitAccess
device features. (API Version 240074) - Added
ShaderFloat16
,ResourceBuffer16BitAccess
,UniformBuffer16BitAccess
, andShaderInputOutput16
device features. (API Version 240073)
Samples and Tutorials
- Added Tutorial21 - Ray Tracing
v2.4.f
API Changes
- Added
UnifiedMemoryCPUAccess
member toGraphicsAdapterInfo
struct (API Version 240072) - An application should check allowed unified memory access types before creating unified buffers
- Added GPU vendor and memory size detection (API Version 240071)
- Added
ADAPTER_VENDOR
enum - Added
GraphicsAdapterInfo
struct - Added
GraphicsAdapterInfo AdapterInfo
member toDeviceCaps
struct - Removed
ADAPTER_TYPE AdaterType
fromDeviceCaps
struct - Reworked texture format properties (API Version 240070)
- Added
RESOURCE_DIMENSION_SUPPORT
enum - Reworked
TextureFormatInfoExt
struct - Added option to disable/enable device features during initialization (API Version 240069)
- Added
DEVICE_FEATURE_STATE
enum - Changed the types of members of
DeviceFeatures
struct from bool toDEVICE_FEATURE_STATE
- Added
DeviceFeatures Features
member toEngineCreateInfo
struct - Enabled mesh shaders (API Version 240068)
- Added
PIPELINE_TYPE
enum - Replaced
IsComputePipline
member ofPipelineStateDesc
struct withPIPELINE_TYPE PipelineType
- Added new mesh shader types
- Added mesh shader draw commands
- Added
QUERY_TYPE_DURATION
query type (API Version 240067) - Added
USAGE_UNIFIED
usage type (API Version 240066) - Added render passes (API Version 240065)
- Added
CREATE_SHADER_SOURCE_INPUT_STREAM_FLAGS
enum andIShaderSourceInputStreamFactory::CreateInputStream2
method (API Version 240064) - Added
ISwapChain::SetMaximumFrameLatency
function (API Version 240061) - Added
EngineGLCreateInfo::CreateDebugContext
member (API Version 240060) - Added
SHADER_SOURCE_LANGUAGE_GLSL_VERBATIM
value (API Version 240059). - Added
GLBindTarget
parameter toIRenderDeviceGL::CreateTextureFromGLHandle
method (API Version 240058).
Samples and Tutorials
- Added HelloAR Android sample
- Added Tutorial19 - Render Passes
- Added Tutorial20 - Mesh Shader
v2.4.e
General
- Enabled Vulkan on Android
- Added C Interface (API Version 240052)
API Changes
- Added
PreTransform
parameter to swap chain description (API Version 240057). - Added
PipelineStateCreateInfo
struct that is now taken byIRenderDevice::CreatePipelineState
instead ofPipelineStateDesc
struct. AddedPSO_CREATE_FLAGS
enum (API Version 240056).
Old API:
cpp
PipelineStateDesc PSODesc;
// ...
pRenderDevice->CreatePipelineState(PSODesc, &pPSO);
New API:
cpp
PipelineStateCreateInfo PSOCreateInfo;
PipelineStateDesc& PSODesc = PSOCreateInfo.PSODesc;
// ...
pRenderDevice->CreatePipelineState(PSOCreateInfo, &pPSO);
- Added
PRIMITIVE_TOPOLOGY_LINE_STRIP
topology (API Version 240055) - Updated swap chain creation functions to use
NativeWindow
(API Version 240054) - Added
NativeWindow
wrapper and replacedpNativeWndHandle
andpDisplay
members with it inEngineGLCreateInfo
(API Version 240053)
v2.4.d
API Changes
- Added Queries (API Version 240051)
- Added
AdapterType
member toDeviceCaps
struct (API Version 240048) - Added
IDeviceContextGL::SetSwapChain
andIRenderDeviceGL::CreateDummyTexture
methods (API Version 240047) - Removed
IDeviceContext::SetSwapChain
method (API Version 240046) - Renamed
MAP_FLAG_DO_NOT_SYNCHRONIZE
flag toMAP_FLAG_NO_OVERWRITE
(API Version 240045) - Added
GetVkInstance
andGetVkPhysicalDevice
methods toIRenderDeviceVk
interface (API Version 240044) - Added
HLSLSemantic
member toLayoutElement
struct (API Version 240042) - Added
ResolveTextureSubresource
device context command, removedSamplesCount
member of theSwapChainDesc
(API Version 240041) - Added
APIVersion
member toEngineCreateInfo
struct (API Version 240040) - Added
IDeviceObject::GetUniqueID
method (API Version 240039) - Added
IDeviceContextD3D12::LockCommandQueue
,IDeviceContextD3D12::UnlockCommandQueue
,IDeviceContextVk::LockCommandQueue
, andIDeviceContextVk::UnlockCommandQueue
methods (API Version 240038) - Added
EnableGPUBasedValidation
member toEngineD3D12CreateInfo
struct (API Version 240037) - Added
DRAW_FLAG_RESOURCE_BUFFERS_INTACT
flag (API Version 240036) - Added
HLSLVersion
,GLSLVersion
andGLESSLVersion
toShaderCreateInfo
struct (API Version 240035) - Renamed
EngineD3D11DebugFlags
toD3D11_DEBUG_FLAGS
(API Version 240034) - Split up
Draw
command intoDraw
,DrawIndexed
,DrawIndirect
andDrawIndexedIndirect
. Split upDispatchCompute
command intoDispatchCompute
andDispatchComputeInidrect
(API Version 240033). - Enabled bindless resources
- Removed
SHADER_PROFILE
enum (API Version 240032) - Added
DIRECT3D_FEATURE_LEVEL
andDIRECT3D_FEATURE_LEVEL MinimumFeatureLevel
member toEngineD3D11CreateInfo
andEngineD3D12CreateInfo
structs (API Version 240032) - Updated
IEngineFactoryD3D11::EnumerateHardwareAdapters
,IEngineFactoryD3D11::EnumerateDisplayModes
,IEngineFactoryD3D12::EnumerateHardwareAdapters
,IEngineFactoryD3D12::EnumerateDisplayModes
to take minimum feature level. (API Version 240032) - Added
bBindlessSupported
member toDeviceCaps
struct. (API Version 240032)
General
- Enabled automated unit testing, format validation and static code analysis
- Added Tutorial16 - Bindless Resources
- Added Tutorial17 - MSAA
- Added Tutorial18 - Queries
- Removed RenderScript and Lua
v2.4.c
General
- Enabled Vulkan on iOS
- Replaced AntTweakBar UI library with dear imgui
- Added GLTF2.0 loader and PBR renderer
- Added GLTF Viewer
- Added Shadowing Component and Shadows Sample
- Added Dear Imgui demo
- Added Tutorial13 - Shadow Map
- Added Tutorial14 - Compute Shader
- Added Tutorial15 - Multiple Windows
- Removed AntTweakBar sample
API changes
- Moved
NumDeferredContexts
parameter from factory functionsIEngineFactoryD3D11::CreateDeviceAndContextsD3D11
,IEngineFactoryD3D12::CreateDeviceAndContextsD3D12
andIEngineFactoryVk::CreateDeviceAndContextsVk
toEngineCreateInfo
struct. - Renamed
USAGE_CPU_ACCESSIBLE
->USAGE_STAGING
- Added
SWAP_CHAIN_USAGE_FLAGS
enum - Replaced overloaded
IPipelineState::GetStaticShaderVariable()
withIPipelineState::GetStaticVariableByName()
andIPipelineState::GetStaticVariableByIndex()
- Replaced overloaded
IShaderResourceBinding::GetVariable()
withIShaderResourceBinding::GetVariableByName()
andIShaderResourceBinding::GetVariableByIndex()
- Made
IShaderSourceInputStreamFactory
derived fromIObject
; addedIEngineFactory::CreateDefaultShaderSourceStreamFactory()
method; addedIRenderDevice::GetEngineFactory()
method (API Version 240021) - Added
DRAW_FLAG_VERIFY_DRAW_ATTRIBS
,DRAW_FLAG_VERIFY_RENDER_TARGETS
, andDRAW_FLAG_VERIFY_ALL
flags (API Version 240022) TEXTURE_VIEW_FLAGS
enum andFlags
member toTextureViewDesc
structure (API Version 240023)- Added
IShaderResourceVariable::IsBound()
method (API Version 240024) - Added
Diligent-
prefix to project names to avoid name conflicts. - Added
IDeviceContextD3D12::GetD3D12CommandList
method - Added
IDeviceContext::WaitForFence()
method (API Version 240027) - Added
IDeviceContext::WaitForIdle()
method (API Version 240028) - Added
IRenderDevice::IdleGPU()
method (API Version 240029) - Added
EngineD3D12CreateInfo::EnableDebugLayer
member (API Version 240030) - Added
EngineD3D12CreateInfo::BreakOnError
andEngineD3D12CreateInfo::BreakOnCorruption
members (API Version 240031)
v2.4.b
General
- Added cmake options to disable specific back-ends and glslang
- Improved engine support of GLES3.0 devices
- Added new module - DiligentFX, a high-level rendering framework
- Reworked light scattering post-processing effect to be ready-to-use component
API changes
- Updated
IRenderDevice::CreateTexture()
andIRenderDevice::CreateBuffer()
to take pointer to initialization data rather than references. - Added
LayoutElement::AutoOffset
andLayoutElement::AutoOffset
values to use instead of 0 when automatically computing input layout elements offset and strides. - Renamed factory interfaces and headers:
IRenderDeviceFactoryD3D11
->IEngineFactoryD3D11
, RenderDeviceFactoryD3D11.h -> EngineFactoryD3D11.hIRenderDeviceFactoryD3D12
->IEngineFactoryD3D12
, RenderDeviceFactoryD3D12.h -> EngineFactoryD3D12.hIRenderDeviceFactoryOpenGL
->IEngineFactoryOpenGL
, RenderDeviceFactoryOpenGL.h -> EngineFactoryOpenGL.hIRenderDeviceFactoryVk
->IEngineFactoryVk
, RenderDeviceFactoryVk.h -> EngineFactoryVk.hIRenderDeviceFactoryMtl
->IEngineFactoryMtl
, RenderDeviceFactoryMtl.h -> EngineFactoryMtl.h- Renamed
IShaderVariable
->IShaderResourceVariable
- Renamed
SHADER_VARIABLE_TYPE
->SHADER_RESOURCE_VARIABLE_TYPE
- Renamed
ShaderVariableDesc
->ShaderResourceVariableDesc
- Added
SHADER_RESOURCE_TYPE
enum - Moved shader variable type and static sampler definition from shader creation to PSO creation stage:
- Removed
IShader::GetVariable
,IShader::GetVariableCount
, andIShader::BindResources
methods - Added
IPipelineState::BindStaticResoruces
,IPipelineState::GetStaticVariableCount
, andIPipelineState::GetStaticShaderVariable
methods - Added
PipelineResourceLayoutDesc
structure andResourceLayout
member toPipelineStateDesc
- Added
ShaderResourceDesc
structure - Added
IShader::GetResourceCount
andIShader::GetResource
methods - Replaced
IShaderVariable::GetArraySize
andIShaderVariable::GetName
methods withIShaderResourceVariable::GetResourceDesc
method - Added
HLSLShaderResourceDesc
structure as well asIShaderResourceVariableD3D
andIShaderResourceVariableD3D
interfaces to query HLSL-specific shader resource description (shader register)
With the new API, shader initialization and pipeline state creation changed as shown below.
Old API:
RefCntAutoPtr<IShader> pVS;
{
CreationAttribs.Desc.ShaderType = SHADER_TYPE_VERTEX;
CreationAttribs.EntryPoint = "main";
CreationAttribs.Desc.Name = "Cube VS";
CreationAttribs.FilePath = "cube.vsh";
pDevice->CreateShader(CreationAttribs, &pVS);
pVS->GetShaderVariable("Constants")->Set(m_VSConstants);
}
RefCntAutoPtr<IShader> pPS;
{
CreationAttribs.Desc.ShaderType = SHADER_TYPE_PIXEL;
CreationAttribs.EntryPoint = "main";
CreationAttribs.Desc.Name = "Cube PS";
CreationAttribs.FilePath = "cube.psh";
ShaderVariableDesc Vars[] =
{
{"g_Texture", SHADER_VARIABLE_TYPE_MUTABLE}
};
CreationAttribs.Desc.VariableDesc = Vars;
CreationAttribs.Desc.NumVariables = _countof(Vars);
SamplerDesc SamLinearClampDesc( FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR,
TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_CLAMP);
StaticSamplerDesc StaticSamplers[] =
{
{"g_Texture", SamLinearClampDesc}
};
CreationAttribs.Desc.StaticSamplers = StaticSamplers;
CreationAttribs.Desc.NumStaticSamplers = _countof(StaticSamplers);
pDevice->CreateShader(CreationAttribs, &pPS);
}
// ...
pDevice->CreatePipelineState(PSODesc, &m_pPSO);
New API:
RefCntAutoPtr<IShader> pVS;
{
ShaderCI.Desc.ShaderType = SHADER_TYPE_VERTEX;
ShaderCI.EntryPoint = "main";
ShaderCI.Desc.Name = "Cube VS";
ShaderCI.FilePath = "cube.vsh";
pDevice->CreateShader(ShaderCI, &pVS);
}
RefCntAutoPtr<IShader> pVS;
{
ShaderCI.Desc.ShaderType = SHADER_TYPE_VERTEX;
ShaderCI.EntryPoint = "main";
ShaderCI.Desc.Name = "Cube VS";
ShaderCI.FilePath = "cube.vsh";
pDevice->CreateShader(ShaderCI, &pVS);
}
// ...
ShaderResourceVariableDesc Vars[] =
{
{SHADER_TYPE_PIXEL, "g_Texture", SHADER_RESOURCE_VARIABLE_TYPE_MUTABLE}
};
PSODesc.ResourceLayout.Variables = Vars;
PSODesc.ResourceLayout.NumVariables = _countof(Vars);
// Define static sampler for g_Texture. Static samplers should be used whenever possible
SamplerDesc SamLinearClampDesc( FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR, FILTER_TYPE_LINEAR,
TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_CLAMP, TEXTURE_ADDRESS_CLAMP);
StaticSamplerDesc StaticSamplers[] =
{
{SHADER_TYPE_PIXEL, "g_Texture", SamLinearClampDesc}
};
PSODesc.ResourceLayout.StaticSamplers = StaticSamplers;
PSODesc.ResourceLayout.NumStaticSamplers = _countof(StaticSamplers);
pDevice->CreatePipelineState(PSODesc, &m_pPSO);
m_pPSO->GetStaticShaderVariable(SHADER_TYPE_VERTEX, "Constants")->Set(m_VSConstants);
Samples and Tutorials
- Added Tutorial12 - Render target (credits to @dolphineye for contribution)
v2.4.a
- Enabled MinGW build
- Enabled Vulkan on MacOS
- Implemented split barriers (https://github.com/DiligentGraphics/DiligentCore/issues/43)
- Added
STATE_TRANSITION_TYPE
enum andSTATE_TRANSITION_TYPE TransitionType
member toStateTransitionDesc
structure - Added Metal backend stub
- Samples:
- Added rendering backend selection dialog on Win32 and Mac
v2.4
Core:
- Implemented explicit resource state transitions
- API Changes
- Added
RESOURCE_STATE
enum that defines the resource state - Added
RESOURCE_STATE_TRANSITION_MODE
enum that controls resource state transition mode - Added
DRAW_FLAGS
enum that controls state validation performed by Draw command - Added
Flags
member toDrawAttribs
structure (values fromDRAW_FLAGS
) - Added
IndirectAttribsBufferStateTransitionMode
member toDrawAttribs
andDispatchComputeAttribs
structures (values fromRESOURCE_STATE_TRANSITION_MODE
) - Added
StateTransitionDesc
structure that describes resource state transition barrier - Added
IDeviceContext::TransitionResourceStates(Uint32 BarrierCount, StateTransitionDesc* pResourceBarriers)
method - Added
IBuffer::SetState()
,IBuffer::GetState()
,ITexture::SetState()
,ITexture::GetState()
methods - Added
IShaderResourceBinding::InitializeStaticResources()
to explicitly initialize static resources and avoid problems in multi-threaded environments - Added
InitStaticResources
parameter toIPipelineState::CreateShaderResourceBinding()
method to allow immediate initialization of static resources in a SRB - Removed default SRB object
- Renamed/moved
IBuffer::UpdateData()
toIDeviceContext::UpdateBuffer()
- Renamed/moved
IBuffer::CopyData()
toIDeviceContext::CopyBuffer()
- Renamed/moved
IBuffer::Map()
toIDeviceContext::MapBuffer()
- Renamed/moved
IBuffer::Unmap()
toIDeviceContext::UnmapBuffer()
- Removed MapFlags parameter
- Renamed/moved
ITexture::UpdateData()
toIDeviceContext::UpdateTexture()
- Renamed/moved
ITexture::CopyData()
toIDeviceContext::CopyTexture()
- Renamed/moved
ITexture::Map()
toIDeviceContext::MapTextureSubresource()
- Renamed/moved
ITexture::Unmap()
toIDeviceContext::UnmapTextureSubresource()
- Moved
ITextureView::GenerateMips()
toIDeviceContext::GenerateMips()
- Added state transition mode parameters to
IDeviceContext::UpdateBuffer()
,IDeviceContext::UpdateTexture()
,IDeviceContext::CopyBuffer()
,IDeviceContext::CopyTexture()
,IDeviceContext::SetVertexBuffers()
,IDeviceContext::SetIndexBuffers()
,IDeviceContext::ClearRenderTargets()
, andIDeviceContext::ClearDepthStencil()
methods - Replaced
COMMIT_SHADER_RESOURCES_FLAGS
enum withRESOURCE_STATE_TRANSITION_MODE
- Added
ITextureD3D12::GetD3D12ResourceState()
,IBufferD3D12::GetD3D12ResourceState()
,IBufferVk::GetAccessFlags()
, andITextureVk::GetLayout()
methods - Added
CopyTextureAttribs
structure that combines all paramters ofIDeviceContext::CopyTexture()
method
v2.3.b
- Core
- 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
. AddedBIND_SHADER_RESOURCES_UPDATE_STATIC
,BIND_SHADER_RESOURCES_UPDATE_MUTABLE
,BIND_SHADER_RESOURCES_UPDATE_DYNAMIC
, andBIND_SHADER_RESOURCES_UPDATE_ALL
flags
- Using glslang to compile HLSL to SPIRV in Vulkan backend instead of relying on HLSL->GLSL converter
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 fromBufferDesc
toBufferViewDesc
-
Removed
IsIndirect
member fromDrawAttrbis
as settingpIndirectDrawAttribs
to a non-null buffer already indicates indirect rendering -
Samples:
- Added Tutorial 10 - Data Streaming
- Added Tutorial 11 - Resource Updates
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
- Removed
DrawAttribs::Topology
- Removed
pStrides
parameter fromIDeviceContext::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 - 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
- Fixed the following issues:
- Add option to redirect diligent error messages
- Add ability to run in exclusive fullscreen/vsync mode
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
New Features
Core
- Interoperability with native API
- Accessing internal objects and handles
- Creating 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