diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-06 23:05:29 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-02-06 23:05:29 +0000 |
| commit | dd5dd83d29006fdc07e292990564962a90e2e209 (patch) | |
| tree | 6af1fc13fd9e6ac18bb625b27ae61d80290cd3db /Graphics/GraphicsEngine | |
| parent | Tests: implemented workaround for resource array indexing bug in D3D12 WARP (diff) | |
| download | DiligentCore-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.h | 13 |
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. |
