DiligentEngine Versions Save

A modern cross-platform low-level graphics library and rendering framework

v2.4.c

4 years ago

Full release notes

v2.4.b

5 years ago
  • 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
  • Added Tutorial12 - Render Targets (credits to @dolphineye for contribution)
  • Lots of API improvements, see full release notes

v2.4.a

5 years ago
  • Enabled MinGW build
  • Enabled Vulkan on MacOS via MoltenVK
  • Implemented split barriers (https://github.com/DiligentGraphics/DiligentCore/issues/43)
    • Added STATE_TRANSITION_TYPE enum and STATE_TRANSITION_TYPE TransitionType member to StateTransitionDesc structure
  • Added Metal backend stub
  • Samples:
    • Added rendering backend selection dialog on Win32 and Mac

v2.4

5 years ago
  • Added 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 to DrawAttribs structure (values from DRAW_FLAGS)
    • Added IndirectAttribsBufferStateTransitionMode member to DrawAttribs and DispatchComputeAttribs structures (values from RESOURCE_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 to IPipelineState::CreateShaderResourceBinding() method to allow immediate initialization of static resources in a SRB
    • Removed default SRB object
    • Renamed/moved IBuffer::UpdateData() to IDeviceContext::UpdateBuffer()
    • Renamed/moved IBuffer::CopyData() to IDeviceContext::CopyBuffer()
    • Renamed/moved IBuffer::Map() to IDeviceContext::MapBuffer()
    • Renamed/moved IBuffer::Unmap() to IDeviceContext::UnmapBuffer()
      • Removed MapFlags parameter
    • Renamed/moved ITexture::UpdateData() to IDeviceContext::UpdateTexture()
    • Renamed/moved ITexture::CopyData() to IDeviceContext::CopyTexture()
    • Renamed/moved ITexture::Map() to IDeviceContext::MapTextureSubresource()
    • Renamed/moved ITexture::Unmap() to IDeviceContext::UnmapTextureSubresource()
    • Moved ITextureView::GenerateMips() to IDeviceContext::GenerateMips()
    • Added state transition mode parameters to IDeviceContext::UpdateBuffer(), IDeviceContext::UpdateTexture(), IDeviceContext::CopyBuffer(), IDeviceContext::CopyTexture(), IDeviceContext::SetVertexBuffers(), IDeviceContext::SetIndexBuffers(), IDeviceContext::ClearRenderTargets(), and IDeviceContext::ClearDepthStencil() methods
    • Replaced COMMIT_SHADER_RESOURCES_FLAGS enum with RESOURCE_STATE_TRANSITION_MODE
    • Added ITextureD3D12::GetD3D12ResourceState(), IBufferD3D12::GetD3D12ResourceState(), IBufferVk::GetAccessFlags(), and ITextureVk::GetLayout() methods
    • Added CopyTextureAttribs structure that combines all paramters of IDeviceContext::CopyTexture() method

v2.3.b

5 years ago
  • Enabled Vulkan backend on Linux
  • API Changes
    • Implemented separate texture samplers:
      • Added UseCombinedTextureSamplers and CombinedSamplerSuffix members to ShaderCreationAttribs 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, renamed BIND_SHADER_RESOURCES_KEEP_EXISTING to BIND_SHADER_RESOURCES_KEEP_EXISTING. Added BIND_SHADER_RESOURCES_UPDATE_STATIC, BIND_SHADER_RESOURCES_UPDATE_MUTABLE, BIND_SHADER_RESOURCES_UPDATE_DYNAMIC, and BIND_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

5 years ago
  • Core

    • Added IFence interface and IDeviceContext::SignalFence() method to enable CPU-GPU synchronization
    • Added BUFFER_MODE_RAW mode allowing raw buffer views in D3D11/D3D12.
    • Moved Format member from BufferDesc to BufferViewDesc
    • Removed IsIndirect member from DrawAttrbis as setting pIndirectDrawAttribs to a non-null buffer already indicates indirect rendering
  • Samples:

    • Added Tutorial 10 - Data Streaming

v2.3

5 years ago

Implemented Vulkan backend plus multiple other updates/improvements.

v2.2.a

6 years ago

v2.2

6 years ago
  • Enabled MacOS and iOS
  • Fixed multiple issue on Android

v2.1.b

6 years ago
  • Removed legacy Visual Studio solution and project files
  • Added API reference
  • Added tutorials 1-8