diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-08 19:56:56 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:31:34 +0000 |
| commit | 9220e5a6b5e8449786acb996204b140305df94fc (patch) | |
| tree | b1977c0108e1f6804ff5e9ba7ebe173a8c09f5e1 /Graphics/GraphicsEngine | |
| parent | Reworked PipelineResourceSignatureTest.VulkanDescriptorIndexing to validate r... (diff) | |
| parent | Updated readme (diff) | |
| download | DiligentCore-9220e5a6b5e8449786acb996204b140305df94fc.tar.gz DiligentCore-9220e5a6b5e8449786acb996204b140305df94fc.zip | |
Merged master
Diffstat (limited to 'Graphics/GraphicsEngine')
4 files changed, 22 insertions, 8 deletions
diff --git a/Graphics/GraphicsEngine/include/StateObjectsRegistry.hpp b/Graphics/GraphicsEngine/include/StateObjectsRegistry.hpp index a2a7cad1..937e6908 100644 --- a/Graphics/GraphicsEngine/include/StateObjectsRegistry.hpp +++ b/Graphics/GraphicsEngine/include/StateObjectsRegistry.hpp @@ -66,6 +66,7 @@ public: static constexpr int DeletedObjectsToPurge = 32; StateObjectsRegistry(IMemoryAllocator& RawAllocator, const Char* RegistryName) : + m_NumDeletedObjects{0}, m_DescToObjHashMap(STD_ALLOCATOR_RAW_MEM(HashMapElem, RawAllocator, "Allocator for unordered_map<ResourceDescType, RefCntWeakPtr<IDeviceObject> >")), m_RegistryName{RegistryName} {} diff --git a/Graphics/GraphicsEngine/interface/APIInfo.h b/Graphics/GraphicsEngine/interface/APIInfo.h index cd2be5a4..f268ff63 100644 --- a/Graphics/GraphicsEngine/interface/APIInfo.h +++ b/Graphics/GraphicsEngine/interface/APIInfo.h @@ -30,7 +30,7 @@ /// \file /// Diligent API information -#define DILIGENT_API_VERSION 240081 +#define DILIGENT_API_VERSION 240082 #include "../../../Primitives/interface/BasicTypes.h" diff --git a/Graphics/GraphicsEngine/interface/DeviceContext.h b/Graphics/GraphicsEngine/interface/DeviceContext.h index 2f9408bd..411103d7 100644 --- a/Graphics/GraphicsEngine/interface/DeviceContext.h +++ b/Graphics/GraphicsEngine/interface/DeviceContext.h @@ -1836,12 +1836,14 @@ DILIGENT_BEGIN_INTERFACE(IDeviceContext, IObject) ICommandList** ppCommandList) PURE; - /// Executes recorded commands in a command list. + /// Submits an array of recorded command lists for execution. - /// \param [in] pCommandList - Pointer to the command list to executre. - /// \remarks After command list is executed, it is no longer valid and should be released. - VIRTUAL void METHOD(ExecuteCommandList)(THIS_ - ICommandList* pCommandList) PURE; + /// \param [in] NumCommandLists - The number of command lists to execute. + /// \param [in] ppCommandLists - Pointer to the array of NumCommandLists command lists to execute. + /// \remarks After a command list is executed, it is no longer valid and must be released. + VIRTUAL void METHOD(ExecuteCommandLists)(THIS_ + Uint32 NumCommandLists, + ICommandList* const* ppCommandLists) PURE; /// Tells the GPU to set a fence to a specified value after all previous work has completed. @@ -2231,7 +2233,7 @@ DILIGENT_END_INTERFACE # define IDeviceContext_ClearDepthStencil(This, ...) CALL_IFACE_METHOD(DeviceContext, ClearDepthStencil, This, __VA_ARGS__) # define IDeviceContext_ClearRenderTarget(This, ...) CALL_IFACE_METHOD(DeviceContext, ClearRenderTarget, This, __VA_ARGS__) # define IDeviceContext_FinishCommandList(This, ...) CALL_IFACE_METHOD(DeviceContext, FinishCommandList, This, __VA_ARGS__) -# define IDeviceContext_ExecuteCommandList(This, ...) CALL_IFACE_METHOD(DeviceContext, ExecuteCommandList, This, __VA_ARGS__) +# define IDeviceContext_ExecuteCommandLists(This, ...) CALL_IFACE_METHOD(DeviceContext, ExecuteCommandLists, This, __VA_ARGS__) # define IDeviceContext_SignalFence(This, ...) CALL_IFACE_METHOD(DeviceContext, SignalFence, This, __VA_ARGS__) # define IDeviceContext_WaitForFence(This, ...) CALL_IFACE_METHOD(DeviceContext, WaitForFence, This, __VA_ARGS__) # define IDeviceContext_WaitForIdle(This, ...) CALL_IFACE_METHOD(DeviceContext, WaitForIdle, This, __VA_ARGS__) diff --git a/Graphics/GraphicsEngine/interface/GraphicsTypes.h b/Graphics/GraphicsEngine/interface/GraphicsTypes.h index 2bc7cab1..57c484db 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. |
