summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngine
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-02-06 23:05:29 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-02-06 23:05:29 +0000
commitdd5dd83d29006fdc07e292990564962a90e2e209 (patch)
tree6af1fc13fd9e6ac18bb625b27ae61d80290cd3db /Graphics/GraphicsEngine
parentTests: implemented workaround for resource array indexing bug in D3D12 WARP (diff)
downloadDiligentCore-dd5dd83d29006fdc07e292990564962a90e2e209.tar.gz
DiligentCore-dd5dd83d29006fdc07e292990564962a90e2e209.zip
Shader Resource Layout Tests: fixed non-separable programs case
Diffstat (limited to 'Graphics/GraphicsEngine')
-rw-r--r--Graphics/GraphicsEngine/interface/GraphicsTypes.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/Graphics/GraphicsEngine/interface/GraphicsTypes.h b/Graphics/GraphicsEngine/interface/GraphicsTypes.h
index 9234252c..ca4ebe6b 100644
--- a/Graphics/GraphicsEngine/interface/GraphicsTypes.h
+++ b/Graphics/GraphicsEngine/interface/GraphicsTypes.h
@@ -1521,7 +1521,18 @@ DILIGENT_TYPED_ENUM(DEVICE_FEATURE_STATE, Uint8)
/// Describes the device features
struct DeviceFeatures
{
- /// Indicates if device supports separable programs
+ /// Indicates if device supports separable shader programs.
+
+ /// \remarks The only case when separable programs are not supported is when the engine is
+ /// initialized in GLES3.0 mode. In GLES3.1+ and in all other backends, the
+ /// feature is always enabled.
+ /// In OpenGL backend, it may forcibly be disabled using ForceNonSeparablePrograms
+ /// member of EngineGLCreateInfo struct (this is primarily used for testing).
+ /// The are two main limitations when separable programs are disabled:
+ /// - If the same shader variable is present in multiple shader stages,
+ /// it will always be shared between all stages and different resources
+ /// can't be bound to different stages.
+ /// - Shader resource queries will be also disabled.
DEVICE_FEATURE_STATE SeparablePrograms DEFAULT_INITIALIZER(DEVICE_FEATURE_STATE_DISABLED);
/// Indicates if device supports resource queries from shader objects.