From dd5dd83d29006fdc07e292990564962a90e2e209 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sat, 6 Feb 2021 15:05:29 -0800 Subject: Shader Resource Layout Tests: fixed non-separable programs case --- Graphics/GraphicsEngine/interface/GraphicsTypes.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Graphics/GraphicsEngine') 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. -- cgit v1.2.3