Release v2.4.b is out with improved shader reflection, pipeline resource layouts and more

This release improves pipeline state resource layout definition – variable types and static samplers are now defined during PSO initialization rather than shader creation. This release also introduces new Module – DiligentFX, a high-level renderer as well as Tutorial12 – Render Target, features improved OpenGLES3.0 support and more.

Full Release Notes:

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

    One online levitra can take rest, do things which he kept aside while working in offices. Involuntary weight cialis price http://amerikabulteni.com/ loss of more than 10 pounds. 3. Ordering online also ensures the high quality discover address cialis online of medicines delivered. Those are cialis 5mg australia the pelvic and urogenital diaphragms.

API changes

  • Updated IRenderDevice::CreateTexture()  and IRenderDevice::CreateBuffer()  to take pointer to initialization data rather than references.
  • Added LayoutElement::AutoOffset and LayoutElement::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.h
    • IRenderDeviceFactoryD3D12 -> IEngineFactoryD3D12 , RenderDeviceFactoryD3D12.h -> EngineFactoryD3D12.h
    • IRenderDeviceFactoryOpenGL -> IEngineFactoryOpenGL , RenderDeviceFactoryOpenGL.h -> EngineFactoryOpenGL.h
    • IRenderDeviceFactoryVk -> IEngineFactoryVk , RenderDeviceFactoryVk.h -> EngineFactoryVk.h
    • IRenderDeviceFactoryMtl -> 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 , and IShader::BindResources  methods
    • Added IPipelineState::BindStaticResoruces , IPipelineState::BindStaticResoruces , IPipelineState::GetStaticVariableCount, and IPipelineState::GetStaticShaderVariable  methods
    • Added PipelineResourceLayoutDesc structure and ResourceLayout member to PipelineStateDesc
  • Added ShaderResourceDesc  structure
  • Added IShader::GetResourceCount  and IShader::GetResource  methods
  • Replaced IShaderVariable::GetArraySize and IShaderVariable::GetName  methods with IShaderResourceVariable::GetResourceDesc  method
  • Added HLSLShaderResourceDesc structure as well as IShaderResourceVariableD3D  and IShaderResourceVariableD3D  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:

 

New API:

 

Samples and Tutorials

  1. Added Tutorial12 – Render Target (credits to dolphineye for contribution)

1 Comment

  1. Pingback: Diligent Engine Rendering Framework – GameFromScratch.com

Leave a Comment

Your email address will not be published.