diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2017-04-06 19:25:39 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2017-04-06 19:25:39 +0000 |
| commit | 9fe08de5b5708dbfd455b0fccaa4f8a992b14eb2 (patch) | |
| tree | 4ee2e9bef2cea7684e630ce91db40921a8379178 /Graphics | |
| parent | Merge branch 'master' of https://github.com/DiligentGraphics/DiligentCore.git (diff) | |
| download | DiligentCore-9fe08de5b5708dbfd455b0fccaa4f8a992b14eb2.tar.gz DiligentCore-9fe08de5b5708dbfd455b0fccaa4f8a992b14eb2.zip | |
Fixed D3D12 warnings, updated copyright notice
Diffstat (limited to 'Graphics')
274 files changed, 947 insertions, 322 deletions
diff --git a/Graphics/GraphicsEngine/include/BufferBase.h b/Graphics/GraphicsEngine/include/BufferBase.h index ded3bbc3..d559ba27 100644 --- a/Graphics/GraphicsEngine/include/BufferBase.h +++ b/Graphics/GraphicsEngine/include/BufferBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/BufferViewBase.h b/Graphics/GraphicsEngine/include/BufferViewBase.h index 00eb5008..0e0819a3 100644 --- a/Graphics/GraphicsEngine/include/BufferViewBase.h +++ b/Graphics/GraphicsEngine/include/BufferViewBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/CommandListBase.h b/Graphics/GraphicsEngine/include/CommandListBase.h index fd917490..36e7f8f9 100644 --- a/Graphics/GraphicsEngine/include/CommandListBase.h +++ b/Graphics/GraphicsEngine/include/CommandListBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/Defines.h b/Graphics/GraphicsEngine/include/Defines.h index 23585de3..2322e53c 100644 --- a/Graphics/GraphicsEngine/include/Defines.h +++ b/Graphics/GraphicsEngine/include/Defines.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/DeviceContextBase.h b/Graphics/GraphicsEngine/include/DeviceContextBase.h index f18a8f85..4bf89b0f 100644 --- a/Graphics/GraphicsEngine/include/DeviceContextBase.h +++ b/Graphics/GraphicsEngine/include/DeviceContextBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/DeviceObjectBase.h b/Graphics/GraphicsEngine/include/DeviceObjectBase.h index f4ca83f9..40bc3d89 100644 --- a/Graphics/GraphicsEngine/include/DeviceObjectBase.h +++ b/Graphics/GraphicsEngine/include/DeviceObjectBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/EngineMemory.h b/Graphics/GraphicsEngine/include/EngineMemory.h index bf5f157c..3f5a91d3 100644 --- a/Graphics/GraphicsEngine/include/EngineMemory.h +++ b/Graphics/GraphicsEngine/include/EngineMemory.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/PipelineStateBase.h b/Graphics/GraphicsEngine/include/PipelineStateBase.h index 1cb7d453..ecb9975d 100644 --- a/Graphics/GraphicsEngine/include/PipelineStateBase.h +++ b/Graphics/GraphicsEngine/include/PipelineStateBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/RenderDeviceBase.h b/Graphics/GraphicsEngine/include/RenderDeviceBase.h index bccb4b10..a76b2e73 100644 --- a/Graphics/GraphicsEngine/include/RenderDeviceBase.h +++ b/Graphics/GraphicsEngine/include/RenderDeviceBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/ResourceMappingImpl.h b/Graphics/GraphicsEngine/include/ResourceMappingImpl.h index 509632d7..d31161a2 100644 --- a/Graphics/GraphicsEngine/include/ResourceMappingImpl.h +++ b/Graphics/GraphicsEngine/include/ResourceMappingImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/SamplerBase.h b/Graphics/GraphicsEngine/include/SamplerBase.h index cc6b8a94..27c67e7b 100644 --- a/Graphics/GraphicsEngine/include/SamplerBase.h +++ b/Graphics/GraphicsEngine/include/SamplerBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/ShaderBase.h b/Graphics/GraphicsEngine/include/ShaderBase.h index 1e03b352..c4c99f95 100644 --- a/Graphics/GraphicsEngine/include/ShaderBase.h +++ b/Graphics/GraphicsEngine/include/ShaderBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/ShaderResourceBindingBase.h b/Graphics/GraphicsEngine/include/ShaderResourceBindingBase.h index ce5435f7..03e04882 100644 --- a/Graphics/GraphicsEngine/include/ShaderResourceBindingBase.h +++ b/Graphics/GraphicsEngine/include/ShaderResourceBindingBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/StateObjectsRegistry.h b/Graphics/GraphicsEngine/include/StateObjectsRegistry.h index 35840476..1a05ced7 100644 --- a/Graphics/GraphicsEngine/include/StateObjectsRegistry.h +++ b/Graphics/GraphicsEngine/include/StateObjectsRegistry.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/SwapChainBase.h b/Graphics/GraphicsEngine/include/SwapChainBase.h index 9b65e80f..5718cb23 100644 --- a/Graphics/GraphicsEngine/include/SwapChainBase.h +++ b/Graphics/GraphicsEngine/include/SwapChainBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/TextureBase.h b/Graphics/GraphicsEngine/include/TextureBase.h index 4769a97f..b4d16ef8 100644 --- a/Graphics/GraphicsEngine/include/TextureBase.h +++ b/Graphics/GraphicsEngine/include/TextureBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/TextureViewBase.h b/Graphics/GraphicsEngine/include/TextureViewBase.h index 92dbb647..f540340f 100644 --- a/Graphics/GraphicsEngine/include/TextureViewBase.h +++ b/Graphics/GraphicsEngine/include/TextureViewBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/include/pch.h b/Graphics/GraphicsEngine/include/pch.h index cdc2f875..bd6acb2e 100644 --- a/Graphics/GraphicsEngine/include/pch.h +++ b/Graphics/GraphicsEngine/include/pch.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/BlendState.h b/Graphics/GraphicsEngine/interface/BlendState.h index 2e14e9eb..4bea7231 100644 --- a/Graphics/GraphicsEngine/interface/BlendState.h +++ b/Graphics/GraphicsEngine/interface/BlendState.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/Buffer.h b/Graphics/GraphicsEngine/interface/Buffer.h index 847a04c1..5e5d107d 100644 --- a/Graphics/GraphicsEngine/interface/Buffer.h +++ b/Graphics/GraphicsEngine/interface/Buffer.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/BufferView.h b/Graphics/GraphicsEngine/interface/BufferView.h index f817b3e6..d5224a8a 100644 --- a/Graphics/GraphicsEngine/interface/BufferView.h +++ b/Graphics/GraphicsEngine/interface/BufferView.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/CommandList.h b/Graphics/GraphicsEngine/interface/CommandList.h index e6939c3d..b8f3ecd4 100644 --- a/Graphics/GraphicsEngine/interface/CommandList.h +++ b/Graphics/GraphicsEngine/interface/CommandList.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/Constants.h b/Graphics/GraphicsEngine/interface/Constants.h index 7c1505bb..7a392821 100644 --- a/Graphics/GraphicsEngine/interface/Constants.h +++ b/Graphics/GraphicsEngine/interface/Constants.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/DepthStencilState.h b/Graphics/GraphicsEngine/interface/DepthStencilState.h index de796255..36feba55 100644 --- a/Graphics/GraphicsEngine/interface/DepthStencilState.h +++ b/Graphics/GraphicsEngine/interface/DepthStencilState.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/DeviceCaps.h b/Graphics/GraphicsEngine/interface/DeviceCaps.h index 4265ce04..fde6f90d 100644 --- a/Graphics/GraphicsEngine/interface/DeviceCaps.h +++ b/Graphics/GraphicsEngine/interface/DeviceCaps.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/DeviceContext.h b/Graphics/GraphicsEngine/interface/DeviceContext.h index 20a0f0b4..70356296 100644 --- a/Graphics/GraphicsEngine/interface/DeviceContext.h +++ b/Graphics/GraphicsEngine/interface/DeviceContext.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/DeviceObject.h b/Graphics/GraphicsEngine/interface/DeviceObject.h index 00ce8eb8..73b1e04b 100644 --- a/Graphics/GraphicsEngine/interface/DeviceObject.h +++ b/Graphics/GraphicsEngine/interface/DeviceObject.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/GraphicsTypes.h b/Graphics/GraphicsEngine/interface/GraphicsTypes.h index c59295c4..13181114 100644 --- a/Graphics/GraphicsEngine/interface/GraphicsTypes.h +++ b/Graphics/GraphicsEngine/interface/GraphicsTypes.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/InputLayout.h b/Graphics/GraphicsEngine/interface/InputLayout.h index fa37536e..fd09fe6d 100644 --- a/Graphics/GraphicsEngine/interface/InputLayout.h +++ b/Graphics/GraphicsEngine/interface/InputLayout.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/MapHelper.h b/Graphics/GraphicsEngine/interface/MapHelper.h index b0d54e69..a0c25902 100644 --- a/Graphics/GraphicsEngine/interface/MapHelper.h +++ b/Graphics/GraphicsEngine/interface/MapHelper.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/PipelineState.h b/Graphics/GraphicsEngine/interface/PipelineState.h index 34503ef9..21805e7a 100644 --- a/Graphics/GraphicsEngine/interface/PipelineState.h +++ b/Graphics/GraphicsEngine/interface/PipelineState.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/RasterizerState.h b/Graphics/GraphicsEngine/interface/RasterizerState.h index a475595d..c59075aa 100644 --- a/Graphics/GraphicsEngine/interface/RasterizerState.h +++ b/Graphics/GraphicsEngine/interface/RasterizerState.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/RenderDevice.h b/Graphics/GraphicsEngine/interface/RenderDevice.h index 5a0ca892..826b81bb 100644 --- a/Graphics/GraphicsEngine/interface/RenderDevice.h +++ b/Graphics/GraphicsEngine/interface/RenderDevice.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/ResourceMapping.h b/Graphics/GraphicsEngine/interface/ResourceMapping.h index 191ae66f..e422f808 100644 --- a/Graphics/GraphicsEngine/interface/ResourceMapping.h +++ b/Graphics/GraphicsEngine/interface/ResourceMapping.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/Sampler.h b/Graphics/GraphicsEngine/interface/Sampler.h index 1f3c82a2..eb01b865 100644 --- a/Graphics/GraphicsEngine/interface/Sampler.h +++ b/Graphics/GraphicsEngine/interface/Sampler.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/Shader.h b/Graphics/GraphicsEngine/interface/Shader.h index 47641ce6..44864c3f 100644 --- a/Graphics/GraphicsEngine/interface/Shader.h +++ b/Graphics/GraphicsEngine/interface/Shader.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/ShaderResourceBinding.h b/Graphics/GraphicsEngine/interface/ShaderResourceBinding.h index 7a757a3f..d40dff52 100644 --- a/Graphics/GraphicsEngine/interface/ShaderResourceBinding.h +++ b/Graphics/GraphicsEngine/interface/ShaderResourceBinding.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/SwapChain.h b/Graphics/GraphicsEngine/interface/SwapChain.h index aae576bb..3f1b992a 100644 --- a/Graphics/GraphicsEngine/interface/SwapChain.h +++ b/Graphics/GraphicsEngine/interface/SwapChain.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/Texture.h b/Graphics/GraphicsEngine/interface/Texture.h index 0c3c2c1e..bfd9e344 100644 --- a/Graphics/GraphicsEngine/interface/Texture.h +++ b/Graphics/GraphicsEngine/interface/Texture.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/interface/TextureView.h b/Graphics/GraphicsEngine/interface/TextureView.h index 63780f7d..ff11beaf 100644 --- a/Graphics/GraphicsEngine/interface/TextureView.h +++ b/Graphics/GraphicsEngine/interface/TextureView.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/src/EngineMemory.cpp b/Graphics/GraphicsEngine/src/EngineMemory.cpp index b981724f..d96f6f78 100644 --- a/Graphics/GraphicsEngine/src/EngineMemory.cpp +++ b/Graphics/GraphicsEngine/src/EngineMemory.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/src/ResourceMapping.cpp b/Graphics/GraphicsEngine/src/ResourceMapping.cpp index 7bfb6ceb..d6a4f40b 100644 --- a/Graphics/GraphicsEngine/src/ResourceMapping.cpp +++ b/Graphics/GraphicsEngine/src/ResourceMapping.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/src/Texture.cpp b/Graphics/GraphicsEngine/src/Texture.cpp index 244e93b7..2cf31280 100644 --- a/Graphics/GraphicsEngine/src/Texture.cpp +++ b/Graphics/GraphicsEngine/src/Texture.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngine/src/pch.cpp b/Graphics/GraphicsEngine/src/pch.cpp index b2c201a7..945f49e0 100644 --- a/Graphics/GraphicsEngine/src/pch.cpp +++ b/Graphics/GraphicsEngine/src/pch.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h index 290b633f..ae9e5297 100644 --- a/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/BufferD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/BufferViewD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/BufferViewD3D11Impl.h index 07321a16..ffc65719 100644 --- a/Graphics/GraphicsEngineD3D11/include/BufferViewD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/BufferViewD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/CommandListD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/CommandListD3D11Impl.h index cf84c431..631db936 100644 --- a/Graphics/GraphicsEngineD3D11/include/CommandListD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/CommandListD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/D3D11DebugUtilities.h b/Graphics/GraphicsEngineD3D11/include/D3D11DebugUtilities.h index cddc4249..384e37b4 100644 --- a/Graphics/GraphicsEngineD3D11/include/D3D11DebugUtilities.h +++ b/Graphics/GraphicsEngineD3D11/include/D3D11DebugUtilities.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/D3D11TypeConversions.h b/Graphics/GraphicsEngineD3D11/include/D3D11TypeConversions.h index 21031ea8..ca494999 100644 --- a/Graphics/GraphicsEngineD3D11/include/D3D11TypeConversions.h +++ b/Graphics/GraphicsEngineD3D11/include/D3D11TypeConversions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/D3D11TypeDefinitions.h b/Graphics/GraphicsEngineD3D11/include/D3D11TypeDefinitions.h index bd35a89e..e04f0acc 100644 --- a/Graphics/GraphicsEngineD3D11/include/D3D11TypeDefinitions.h +++ b/Graphics/GraphicsEngineD3D11/include/D3D11TypeDefinitions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h index e3b2c498..9eab566e 100644 --- a/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/DeviceContextD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/EngineD3D11Defines.h b/Graphics/GraphicsEngineD3D11/include/EngineD3D11Defines.h index 9a5cee9b..f4fe12a9 100644 --- a/Graphics/GraphicsEngineD3D11/include/EngineD3D11Defines.h +++ b/Graphics/GraphicsEngineD3D11/include/EngineD3D11Defines.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/PipelineStateD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/PipelineStateD3D11Impl.h index cb89e92a..e5a89d21 100644 --- a/Graphics/GraphicsEngineD3D11/include/PipelineStateD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/PipelineStateD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/RenderDeviceD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/RenderDeviceD3D11Impl.h index 0d4547e5..4b1dc1e8 100644 --- a/Graphics/GraphicsEngineD3D11/include/RenderDeviceD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/RenderDeviceD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/SamplerD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/SamplerD3D11Impl.h index 3fd8b138..6474f939 100644 --- a/Graphics/GraphicsEngineD3D11/include/SamplerD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/SamplerD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/ShaderD3D11Impl.h index 44ecad0f..59d30da7 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourceBindingD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/ShaderResourceBindingD3D11Impl.h index 8afcab2c..3028b158 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourceBindingD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourceBindingD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.h b/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.h index f0d4c982..a3d3f1ec 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourceCacheD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h b/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h index f55b4dce..31001832 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourcesD3D11.h b/Graphics/GraphicsEngineD3D11/include/ShaderResourcesD3D11.h index 772de5b9..599c8ef2 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourcesD3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourcesD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/SwapChainD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/SwapChainD3D11Impl.h index d7a15c7d..e0a08683 100644 --- a/Graphics/GraphicsEngineD3D11/include/SwapChainD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/SwapChainD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/Texture1D_D3D11.h b/Graphics/GraphicsEngineD3D11/include/Texture1D_D3D11.h index 3e53aad5..614badb1 100644 --- a/Graphics/GraphicsEngineD3D11/include/Texture1D_D3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/Texture1D_D3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/Texture2D_D3D11.h b/Graphics/GraphicsEngineD3D11/include/Texture2D_D3D11.h index ed958499..0e94198c 100644 --- a/Graphics/GraphicsEngineD3D11/include/Texture2D_D3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/Texture2D_D3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/Texture3D_D3D11.h b/Graphics/GraphicsEngineD3D11/include/Texture3D_D3D11.h index 44e4ced9..223aed13 100644 --- a/Graphics/GraphicsEngineD3D11/include/Texture3D_D3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/Texture3D_D3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/TextureBaseD3D11.h b/Graphics/GraphicsEngineD3D11/include/TextureBaseD3D11.h index 66da6f6e..4312ad14 100644 --- a/Graphics/GraphicsEngineD3D11/include/TextureBaseD3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/TextureBaseD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/TextureViewD3D11Impl.h b/Graphics/GraphicsEngineD3D11/include/TextureViewD3D11Impl.h index 7a35d7e3..caef1190 100644 --- a/Graphics/GraphicsEngineD3D11/include/TextureViewD3D11Impl.h +++ b/Graphics/GraphicsEngineD3D11/include/TextureViewD3D11Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/pch.h b/Graphics/GraphicsEngineD3D11/include/pch.h index e55827a0..7a5c39ec 100644 --- a/Graphics/GraphicsEngineD3D11/include/pch.h +++ b/Graphics/GraphicsEngineD3D11/include/pch.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/include/targetver.h b/Graphics/GraphicsEngineD3D11/include/targetver.h index 5a309b33..0f732684 100644 --- a/Graphics/GraphicsEngineD3D11/include/targetver.h +++ b/Graphics/GraphicsEngineD3D11/include/targetver.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/BufferD3D11.h b/Graphics/GraphicsEngineD3D11/interface/BufferD3D11.h index cdd1c72b..818f56ac 100644 --- a/Graphics/GraphicsEngineD3D11/interface/BufferD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/BufferD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/BufferViewD3D11.h b/Graphics/GraphicsEngineD3D11/interface/BufferViewD3D11.h index 3b9d3d5c..95089492 100644 --- a/Graphics/GraphicsEngineD3D11/interface/BufferViewD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/BufferViewD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/DeviceContextD3D11.h b/Graphics/GraphicsEngineD3D11/interface/DeviceContextD3D11.h index e5d1cb54..3e90af8a 100644 --- a/Graphics/GraphicsEngineD3D11/interface/DeviceContextD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/DeviceContextD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/EngineD3D11Attribs.h b/Graphics/GraphicsEngineD3D11/interface/EngineD3D11Attribs.h index 88fcaf66..d5c466b6 100644 --- a/Graphics/GraphicsEngineD3D11/interface/EngineD3D11Attribs.h +++ b/Graphics/GraphicsEngineD3D11/interface/EngineD3D11Attribs.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/PipelineStateD3D11.h b/Graphics/GraphicsEngineD3D11/interface/PipelineStateD3D11.h index 8eab72e4..a909d72d 100644 --- a/Graphics/GraphicsEngineD3D11/interface/PipelineStateD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/PipelineStateD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/RenderDeviceD3D11.h b/Graphics/GraphicsEngineD3D11/interface/RenderDeviceD3D11.h index cd003a85..82d15c16 100644 --- a/Graphics/GraphicsEngineD3D11/interface/RenderDeviceD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/RenderDeviceD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/RenderDeviceFactoryD3D11.h b/Graphics/GraphicsEngineD3D11/interface/RenderDeviceFactoryD3D11.h index c651a1e6..aadef684 100644 --- a/Graphics/GraphicsEngineD3D11/interface/RenderDeviceFactoryD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/RenderDeviceFactoryD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/SamplerD3D11.h b/Graphics/GraphicsEngineD3D11/interface/SamplerD3D11.h index b5266bf1..ca8551f2 100644 --- a/Graphics/GraphicsEngineD3D11/interface/SamplerD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/SamplerD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/ShaderD3D11.h b/Graphics/GraphicsEngineD3D11/interface/ShaderD3D11.h index e6c43492..6008adc8 100644 --- a/Graphics/GraphicsEngineD3D11/interface/ShaderD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/ShaderD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/ShaderResourceBindingD3D11.h b/Graphics/GraphicsEngineD3D11/interface/ShaderResourceBindingD3D11.h index fd0be846..0c1665bd 100644 --- a/Graphics/GraphicsEngineD3D11/interface/ShaderResourceBindingD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/ShaderResourceBindingD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/SwapChainD3D11.h b/Graphics/GraphicsEngineD3D11/interface/SwapChainD3D11.h index 54a4d0ae..616da4a7 100644 --- a/Graphics/GraphicsEngineD3D11/interface/SwapChainD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/SwapChainD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/TextureD3D11.h b/Graphics/GraphicsEngineD3D11/interface/TextureD3D11.h index 59ffd8ad..c52b005e 100644 --- a/Graphics/GraphicsEngineD3D11/interface/TextureD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/TextureD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/interface/TextureViewD3D11.h b/Graphics/GraphicsEngineD3D11/interface/TextureViewD3D11.h index 93bd2492..9aa71d9e 100644 --- a/Graphics/GraphicsEngineD3D11/interface/TextureViewD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/TextureViewD3D11.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp index 7c4282d4..6c3f9cbd 100644 --- a/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/BufferD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/BufferViewD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/BufferViewD3D11Impl.cpp index 3aa8ca1b..dd8f53d4 100644 --- a/Graphics/GraphicsEngineD3D11/src/BufferViewD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/BufferViewD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/CommandListD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/CommandListD3D11Impl.cpp index 2c74c3ec..3ed841e9 100644 --- a/Graphics/GraphicsEngineD3D11/src/CommandListD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/CommandListD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/D3D11DebugUtilities.cpp b/Graphics/GraphicsEngineD3D11/src/D3D11DebugUtilities.cpp index 440a616e..4734ea6a 100644 --- a/Graphics/GraphicsEngineD3D11/src/D3D11DebugUtilities.cpp +++ b/Graphics/GraphicsEngineD3D11/src/D3D11DebugUtilities.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/D3D11TypeConversions.cpp b/Graphics/GraphicsEngineD3D11/src/D3D11TypeConversions.cpp index 5c340a30..409be5cc 100644 --- a/Graphics/GraphicsEngineD3D11/src/D3D11TypeConversions.cpp +++ b/Graphics/GraphicsEngineD3D11/src/D3D11TypeConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/DLLMain.cpp b/Graphics/GraphicsEngineD3D11/src/DLLMain.cpp index fff890c0..94065164 100644 --- a/Graphics/GraphicsEngineD3D11/src/DLLMain.cpp +++ b/Graphics/GraphicsEngineD3D11/src/DLLMain.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp index 69514bf0..4416ef1c 100644 --- a/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/DeviceContextD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp index d6d75f41..2084efe2 100644 --- a/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/PipelineStateD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/RenderDeviceD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/RenderDeviceD3D11Impl.cpp index 867d71d7..2e533a89 100644 --- a/Graphics/GraphicsEngineD3D11/src/RenderDeviceD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/RenderDeviceD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/RenderDeviceFactoryD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/RenderDeviceFactoryD3D11.cpp index a6f990c2..fdd9d551 100644 --- a/Graphics/GraphicsEngineD3D11/src/RenderDeviceFactoryD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/RenderDeviceFactoryD3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/SamplerD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/SamplerD3D11Impl.cpp index 29c316a6..fbb48400 100644 --- a/Graphics/GraphicsEngineD3D11/src/SamplerD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/SamplerD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderD3D11Impl.cpp index 83a8c33b..2cf70547 100644 --- a/Graphics/GraphicsEngineD3D11/src/ShaderD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderResourceBindingD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderResourceBindingD3D11Impl.cpp index 37dd96f8..100b4cf9 100644 --- a/Graphics/GraphicsEngineD3D11/src/ShaderResourceBindingD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderResourceBindingD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp index 8054bb57..220676eb 100644 --- a/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderResourceCacheD3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderResourceLayoutD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderResourceLayoutD3D11.cpp index d7c8eb1a..c9d0b158 100644 --- a/Graphics/GraphicsEngineD3D11/src/ShaderResourceLayoutD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderResourceLayoutD3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/ShaderResourcesD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/ShaderResourcesD3D11.cpp index d3b4f82d..e759e78a 100644 --- a/Graphics/GraphicsEngineD3D11/src/ShaderResourcesD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/ShaderResourcesD3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/SwapChainD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/SwapChainD3D11Impl.cpp index 85b908f6..f729bef6 100644 --- a/Graphics/GraphicsEngineD3D11/src/SwapChainD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/SwapChainD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/Texture1D_D3D11.cpp b/Graphics/GraphicsEngineD3D11/src/Texture1D_D3D11.cpp index 7a6cba6e..8c54fb69 100644 --- a/Graphics/GraphicsEngineD3D11/src/Texture1D_D3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/Texture1D_D3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/Texture2D_D3D11.cpp b/Graphics/GraphicsEngineD3D11/src/Texture2D_D3D11.cpp index f2fef036..1e749926 100644 --- a/Graphics/GraphicsEngineD3D11/src/Texture2D_D3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/Texture2D_D3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/Texture3D_D3D11.cpp b/Graphics/GraphicsEngineD3D11/src/Texture3D_D3D11.cpp index bb7bd484..0cbe3b7f 100644 --- a/Graphics/GraphicsEngineD3D11/src/Texture3D_D3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/Texture3D_D3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/TextureBaseD3D11.cpp b/Graphics/GraphicsEngineD3D11/src/TextureBaseD3D11.cpp index 7401a714..12726e4b 100644 --- a/Graphics/GraphicsEngineD3D11/src/TextureBaseD3D11.cpp +++ b/Graphics/GraphicsEngineD3D11/src/TextureBaseD3D11.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/TextureViewD3D11Impl.cpp b/Graphics/GraphicsEngineD3D11/src/TextureViewD3D11Impl.cpp index 9cc8b41d..af0ca4ef 100644 --- a/Graphics/GraphicsEngineD3D11/src/TextureViewD3D11Impl.cpp +++ b/Graphics/GraphicsEngineD3D11/src/TextureViewD3D11Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D11/src/pch.cpp b/Graphics/GraphicsEngineD3D11/src/pch.cpp index 860c4217..802d627e 100644 --- a/Graphics/GraphicsEngineD3D11/src/pch.cpp +++ b/Graphics/GraphicsEngineD3D11/src/pch.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/BufferD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/BufferD3D12Impl.h index 9ee4e25d..15406bc8 100644 --- a/Graphics/GraphicsEngineD3D12/include/BufferD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/BufferD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/BufferViewD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/BufferViewD3D12Impl.h index f5aff0ab..743be25c 100644 --- a/Graphics/GraphicsEngineD3D12/include/BufferViewD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/BufferViewD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/CommandContext.h b/Graphics/GraphicsEngineD3D12/include/CommandContext.h index 71482511..d1512b62 100644 --- a/Graphics/GraphicsEngineD3D12/include/CommandContext.h +++ b/Graphics/GraphicsEngineD3D12/include/CommandContext.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,8 +83,6 @@ public: // Submit the command buffer and reset it. This is encouraged to keep the GPU busy and reduce latency. // Taking too long to build command lists and submit them can idle the GPU. - // Returns a fence value to verify completion. (Use it with the CommandListManager.) - ID3D12GraphicsCommandList* Close(ID3D12CommandAllocator **ppAllocator); void Reset( CommandListManager& CmdListManager ); diff --git a/Graphics/GraphicsEngineD3D12/include/CommandListD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/CommandListD3D12Impl.h index 00e5fcaa..e73e36d1 100644 --- a/Graphics/GraphicsEngineD3D12/include/CommandListD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/CommandListD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/CommandListManager.h b/Graphics/GraphicsEngineD3D12/include/CommandListManager.h index a9b79650..9b0faa4f 100644 --- a/Graphics/GraphicsEngineD3D12/include/CommandListManager.h +++ b/Graphics/GraphicsEngineD3D12/include/CommandListManager.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/D3D12ResourceBase.h b/Graphics/GraphicsEngineD3D12/include/D3D12ResourceBase.h index e8faa4a3..84629c48 100644 --- a/Graphics/GraphicsEngineD3D12/include/D3D12ResourceBase.h +++ b/Graphics/GraphicsEngineD3D12/include/D3D12ResourceBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.h b/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.h index d909bd42..d8741573 100644 --- a/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.h +++ b/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/D3D12TypeDefinitions.h b/Graphics/GraphicsEngineD3D12/include/D3D12TypeDefinitions.h index 892de4aa..761f750b 100644 --- a/Graphics/GraphicsEngineD3D12/include/D3D12TypeDefinitions.h +++ b/Graphics/GraphicsEngineD3D12/include/D3D12TypeDefinitions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/D3D12Utils.h b/Graphics/GraphicsEngineD3D12/include/D3D12Utils.h index 64ee7c40..13dbd204 100644 --- a/Graphics/GraphicsEngineD3D12/include/D3D12Utils.h +++ b/Graphics/GraphicsEngineD3D12/include/D3D12Utils.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/DescriptorHeap.h b/Graphics/GraphicsEngineD3D12/include/DescriptorHeap.h index b96977e6..91c27495 100644 --- a/Graphics/GraphicsEngineD3D12/include/DescriptorHeap.h +++ b/Graphics/GraphicsEngineD3D12/include/DescriptorHeap.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ #include <string> #include <set> #include "ObjectBase.h" -#include "FreeBlockListManagerGPU.h" +#include "VariableSizeGPUAllocationsManager.h" namespace Diligent { @@ -41,14 +41,24 @@ class RenderDeviceD3D12Impl; class IDescriptorAllocator { public: + // Allocate Count descriptors virtual DescriptorHeapAllocation Allocate( uint32_t Count ) = 0; virtual void Free(DescriptorHeapAllocation&& Allocation) = 0; virtual Uint32 GetDescriptorSize()const = 0; }; +// The class represents descriptor heap allocation (continuous descriptor range in a descriptor heap) +// +// m_FirstCpuHandle +// | +// | ~ ~ ~ ~ ~ X X X X X X X ~ ~ ~ ~ ~ ~ | D3D12 Descriptor Heap +// | +// m_FirstGpuHandle +// class DescriptorHeapAllocation { public: + // Creates null allocation DescriptorHeapAllocation() : m_NumHandles(1), // One null descriptor handle m_pDescriptorHeap(nullptr), @@ -58,20 +68,13 @@ public: m_FirstGpuHandle.ptr = 0; } - DescriptorHeapAllocation( IDescriptorAllocator *pAllocator, ID3D12DescriptorHeap *pHeap, D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle, Uint32 NHandles ) : - m_FirstCpuHandle(CpuHandle), - m_pAllocator(pAllocator), - m_pDescriptorHeap(pHeap), - m_NumHandles(NHandles) - { - m_FirstGpuHandle.ptr = 0; - VERIFY_EXPR(m_pAllocator != nullptr && m_pDescriptorHeap != nullptr); - auto DescriptorSize = m_pAllocator->GetDescriptorSize(); - VERIFY(DescriptorSize < std::numeric_limits<Uint16>::max(), "DescriptorSize exceeds allowed limit") - m_DescriptorSize = static_cast<Uint16>( DescriptorSize ); - } - - DescriptorHeapAllocation( IDescriptorAllocator *pAllocator, ID3D12DescriptorHeap *pHeap, D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle, D3D12_GPU_DESCRIPTOR_HANDLE GpuHandle, Uint32 NHandles, Uint16 AllocationManagerId = static_cast<Uint16>(-1) ) : + // Initializes non-null allocation + DescriptorHeapAllocation( IDescriptorAllocator *pAllocator, + ID3D12DescriptorHeap *pHeap, + D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle, + D3D12_GPU_DESCRIPTOR_HANDLE GpuHandle, + Uint32 NHandles, + Uint16 AllocationManagerId = static_cast<Uint16>(-1) ) : m_FirstCpuHandle(CpuHandle), m_FirstGpuHandle(GpuHandle), m_pAllocator(pAllocator), @@ -85,6 +88,7 @@ public: m_DescriptorSize = static_cast<Uint16>( DescriptorSize ); } + // Move constructor (copy is not allowed) DescriptorHeapAllocation(DescriptorHeapAllocation &&Allocation) : m_FirstCpuHandle(Allocation.m_FirstCpuHandle), m_FirstGpuHandle(Allocation.m_FirstGpuHandle), @@ -103,6 +107,7 @@ public: Allocation.m_AllocationManagerId = static_cast<Uint16>(-1); } + // Move assignment (assignment is not allowed) DescriptorHeapAllocation& operator = (DescriptorHeapAllocation &&Allocation) { m_FirstCpuHandle = Allocation.m_FirstCpuHandle; @@ -124,12 +129,16 @@ public: return *this; } + // Destructor automatically releases this allocation through the allocator ~DescriptorHeapAllocation() { if(!IsNull() && m_pAllocator) m_pAllocator->Free(std::move(*this)); + // Allocation must be disposed by the allocator + VERIFY(IsNull(), "Non-null descriptor is being destroyed") } + // Returns CPU descriptor handle at the specified offset D3D12_CPU_DESCRIPTOR_HANDLE GetCpuHandle(Uint32 Offset = 0) const { VERIFY_EXPR(Offset >= 0 && Offset < m_NumHandles); @@ -142,6 +151,7 @@ public: return CPUHandle; } + // Returns GPU descriptor handle at the specified offset D3D12_GPU_DESCRIPTOR_HANDLE GetGpuHandle(Uint32 Offset = 0) const { VERIFY_EXPR(Offset >= 0 && Offset < m_NumHandles); @@ -153,9 +163,10 @@ public: return GPUHandle; } + // Returns pointer to the descriptor heap that contains this allocation ID3D12DescriptorHeap *GetDescriptorHeap(){return m_pDescriptorHeap;} - size_t GetNumHandles(){return m_NumHandles;} + size_t GetNumHandles()const{return m_NumHandles;} bool IsNull() const { return m_FirstCpuHandle.ptr == 0; } bool IsShaderVisible() const { return m_FirstGpuHandle.ptr != 0; } @@ -163,29 +174,59 @@ public: UINT GetDescriptorSize()const{return m_DescriptorSize;} private: + // No copies, only moves are allowed DescriptorHeapAllocation(const DescriptorHeapAllocation&) = delete; DescriptorHeapAllocation& operator= (const DescriptorHeapAllocation&) = delete; + // First CPU descriptor handle in this allocation D3D12_CPU_DESCRIPTOR_HANDLE m_FirstCpuHandle = {0}; + + // First GPU descriptor handle in this allocation D3D12_GPU_DESCRIPTOR_HANDLE m_FirstGpuHandle = {0}; - // Keep strong reference to the parent heap to make sure it is alive while allocation is alive + + // Keep strong reference to the parent heap to make sure it is alive while allocation is alive - TOO EXPENSIVE //RefCntAutoPtr<IDescriptorAllocator> m_pAllocator; + + // Pointer to the descriptor heap allocator that created this allocation IDescriptorAllocator* m_pAllocator = nullptr; + + // Pointer to the D3D12 descriptor heap that contains descriptors in this allocation ID3D12DescriptorHeap* m_pDescriptorHeap = nullptr; + + // Number of descriptors in the allocation Uint32 m_NumHandles = 0; + + // Allocation manager ID. One allocator may support several + // allocation managers. This field is required to identify + // the manager within the allocator that was used to create + // this allocation Uint16 m_AllocationManagerId = static_cast<Uint16>(-1); + + // Descriptor size Uint16 m_DescriptorSize = 0; }; +// The class performs suballocations within one D3D12 descriptor heap. +// It uses VariableSizeGPUAllocationsManager to manage free space in the heap +// +// | X X X X O O O X X O O X O O O O | D3D12 descriptor heap +// +// X - used descriptor +// O - available descriptor +// class DescriptorHeapAllocationManager { public: + // Creates a new D3D12 descriptor heap DescriptorHeapAllocationManager(IMemoryAllocator &Allocator, RenderDeviceD3D12Impl *pDeviceD3D12Impl, IDescriptorAllocator *pParentAllocator, size_t ThisManagerId, const D3D12_DESCRIPTOR_HEAP_DESC &HeapDesc); + + // Uses subrange of descriptors in the existing D3D12 descriptor heap + // that starts at offset FirstDescriptor and uses NumDescriptors descriptors DescriptorHeapAllocationManager(IMemoryAllocator &Allocator, RenderDeviceD3D12Impl *pDeviceD3D12Impl, IDescriptorAllocator *pParentAllocator, @@ -220,36 +261,78 @@ public: rhs.m_ThisManagerId = static_cast<size_t>(-1); } + // No copies or move-assignments DescriptorHeapAllocationManager& operator = (DescriptorHeapAllocationManager&& rhs) = delete; DescriptorHeapAllocationManager(const DescriptorHeapAllocationManager&) = delete; DescriptorHeapAllocationManager& operator = (const DescriptorHeapAllocationManager&) = delete; ~DescriptorHeapAllocationManager(); + // Allocates Count descriptors DescriptorHeapAllocation Allocate( uint32_t Count ); + + // Releases descriptor heap allocation. + // Note that the allocation is not released immediately, but + // added to the release queue in the allocations manager void Free(DescriptorHeapAllocation&& Allocation); + + // Releases all stale allocation from completed frames void ReleaseStaleAllocations(Uint64 NumCompletedFrames); + size_t GetNumAvailableDescriptors()const{return m_FreeBlockManager.GetFreeSize();} private: - FreeBlockListManagerGPU m_FreeBlockManager; + // Allocations manager used to handle descriptor allocations within the heap + VariableSizeGPUAllocationsManager m_FreeBlockManager; + + // Heap description D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc; + + // Strong reference to D3D12 descriptor heap object CComPtr<ID3D12DescriptorHeap> m_pd3d12DescriptorHeap; + + // First CPU descriptor handle in the available descriptor range D3D12_CPU_DESCRIPTOR_HANDLE m_FirstCPUHandle = {0}; + + // First GPU descriptor handle in the available descriptor range D3D12_GPU_DESCRIPTOR_HANDLE m_FirstGPUHandle = {0}; + UINT m_DescriptorSize = 0; + + // Number of descriptors in the allocation. + // If this manager was initialized as a subrange in the existing heap, + // this value may be different from m_HeapDesc.NumDescriptors Uint32 m_NumDescriptorsInAllocation = 0; + std::mutex m_AllocationMutex; RenderDeviceD3D12Impl *m_pDeviceD3D12Impl = nullptr; IDescriptorAllocator *m_pParentAllocator = nullptr; + + // External ID assigned to this descriptor allocations manager size_t m_ThisManagerId = static_cast<size_t>(-1); }; -// This is an unbounded resource descriptor heap. It is intended to provide space for CPU-visible resource descriptors -// as resources are created as well as for static and mutable shader descriptor tables. +// CPU descriptor heap is intended to provide storage for resource view descriptor handles +// It contains a pool of DescriptorHeapAllocationManager object instances, where every instance manages +// its own CPU-only D3D12 descriptor heap: +// +// m_AvailableHeaps[0] m_AvailableHeaps[1] m_AvailableHeaps[2] +// | X X X X X X X X |, | X X X O O X X O |, | X O O O O O O O | +// +// X - used descriptor +// O - available descriptor +// +// Allocation routine goes through the list of managers that have available descriptors and tries to process +// the request using every manager. If there are no available managers or no manager was able to handle the request, +// the function creates a new descriptor heap manager and lets it handle the request +// +// Render device contains four CPUDescriptorHeap object instances (one for each D3D12 heap type). The heaps are accessed +// when a texture or a buffer view is created. +// class CPUDescriptorHeap : public IDescriptorAllocator { public: + // Initializes the heap CPUDescriptorHeap(IMemoryAllocator &Allocator, RenderDeviceD3D12Impl *pDeviceD3D12Impl, Uint32 NumDescriptorsInHeap, @@ -271,7 +354,9 @@ public: protected: + // Pool of descriptor heap managers std::vector<DescriptorHeapAllocationManager, STDAllocatorRawMem<DescriptorHeapAllocationManager> > m_HeapPool; + // Indices of available descriptor heap managers std::set<size_t, std::less<size_t>, STDAllocatorRawMem<size_t> > m_AvailableHeaps; IMemoryAllocator &m_MemAllocator; @@ -280,11 +365,51 @@ protected: D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc; UINT m_DescriptorSize; RenderDeviceD3D12Impl *m_pDeviceD3D12Impl; - Uint32 m_MaxHeapSize = 0; + + // Maximum heap size during the application lifetime - for statistic purposes + Uint32 m_MaxHeapSize = 0; Uint32 m_CurrentSize = 0; // This size does not count stale allocation }; - +// GPU descriptor heap provides storage for shader-visible descriptors +// The heap contains single D3D12 descriptor heap that is broken into two parts. +// The first part stores static and mutable resource descriptor handles. +// The second part is intended to provide temporary storage for dynamic resources +// Space for dynamic resources is allocated in chunks, and then descriptors are suballocated within every +// chunk. DynamicSuballocationsManager facilitates this process +// +// +// static and mutable handles || dynamic space +// || chunk 0 chunk 1 chunk 2 unused +// | X O O X X O X O O O O X X X X O || | X X X O | | X X O O | | O O O O | O O O O || +// | | +// suballocation suballocation +// within chunk 0 within chunk 1 +// +// Render device contains two GPUDescriptorHeap instances (CBV_SRV_UAV and SAMPLER). The heaps +// are used to allocate GPU-visible descriptors for shader resource binding objects. The heaps +// are also used by command contexts (through DynamicSuballocationsManager to allocated dynamic descriptors) +// +// _______________________________________________________________________________________________________________________________ +// | Render Device | +// | | +// | m_CPUDescriptorHeaps[CBV_SRV_UAV] | X X X X X X X X |, | X X X X X X X X |, | X O O X O O O O | | +// | m_CPUDescriptorHeaps[SAMPLER] | X X X X O O O X |, | X O O X O O O O | | +// | m_CPUDescriptorHeaps[RTV] | X X X O O O O O |, | O O O O O O O O | | +// | m_CPUDescriptorHeaps[DSV] | X X X O X O X O | | +// | ctx1 ctx2 | +// | m_GPUDescriptorHeaps[CBV_SRV_UAV] | X O O X X O X O O O O X X X X O || | X X X O | | X X O O | | O O O O | O O O O || | +// | m_GPUDescriptorHeaps[SAMPLER] | X X O O X O X X X O O X O O O O || | X X O O | | X O O O | | O O O O | O O O O || | +// | | +// |_______________________________________________________________________________________________________________________________| +// +// ________________________________________________ ________________________________________________ +// |Device Context 1 | |Device Context 2 | +// | | | | +// | m_DynamicGPUDescriptorAllocator[CBV_SRV_UAV] | | m_DynamicGPUDescriptorAllocator[CBV_SRV_UAV] | +// | m_DynamicGPUDescriptorAllocator[SAMPLER] | | m_DynamicGPUDescriptorAllocator[SAMPLER] | +// |________________________________________________| |________________________________________________| +// class GPUDescriptorHeap : public IDescriptorAllocator { public: @@ -310,29 +435,42 @@ public: void ReleaseStaleAllocations(Uint64 NumCompletedFrames); - D3D12_DESCRIPTOR_HEAP_DESC &GetHeapDesc(){return m_HeapDesc;} + const D3D12_DESCRIPTOR_HEAP_DESC &GetHeapDesc()const{return m_HeapDesc;} protected: D3D12_DESCRIPTOR_HEAP_DESC m_HeapDesc; CComPtr<ID3D12DescriptorHeap> m_pd3d12DescriptorHeap; - UINT m_DescriptorSize = 0; - std::mutex m_Mutex; + std::mutex m_AllocMutex, m_DynAllocMutex; + // Allocation manager for static/mutable part DescriptorHeapAllocationManager m_HeapAllocationManager; + + // Allocation manager for dynamic part DescriptorHeapAllocationManager m_DynamicAllocationsManager; RenderDeviceD3D12Impl *m_pDeviceD3D12; Uint32 m_CurrentSize = 0; + // Maximum static/mutable part size during the application lifetime - for statistic purposes Uint32 m_MaxHeapSize = 0; Uint32 m_CurrentDynamicSize = 0; + // Maximum dynamic part size during the application lifetime - for statistic purposes Uint32 m_MaxDynamicSize = 0; }; +// The class facilitates allocation of dynamic descriptor handles. It requests a chunk of heap +// from the master GPU descriptor heap and then performs linear suballocation within the chunk +// At the end of the frame all allocations are disposed. +// static and mutable handles || dynamic space +// || chunk 0 chunk 2 +// | || | X X X O | | O O O O | || GPU Descriptor Heap +// | | +// m_Suballocations[0] m_Suballocations[1] +// class DynamicSuballocationsManager : public IDescriptorAllocator { public: @@ -351,11 +489,14 @@ public: virtual Uint32 GetDescriptorSize()const override{return m_ParentGPUHeap.GetDescriptorSize();} private: + // List of chunks allocated from the master GPU descriptor heap. All chunks are disposed at the end + // of the frame std::vector<DescriptorHeapAllocation, STDAllocatorRawMem<DescriptorHeapAllocation> > m_Suballocations; Uint32 m_CurrentSuballocationOffset = 0; Uint32 m_DynamicChunkSize = 0; + // Parent GPU descriptor heap that is used to allocate chunks GPUDescriptorHeap &m_ParentGPUHeap; }; diff --git a/Graphics/GraphicsEngineD3D12/include/DeviceContextD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/DeviceContextD3D12Impl.h index ffe8598a..14555715 100644 --- a/Graphics/GraphicsEngineD3D12/include/DeviceContextD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/DeviceContextD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/DynamicUploadHeap.h b/Graphics/GraphicsEngineD3D12/include/DynamicUploadHeap.h index a4799ded..56b17284 100644 --- a/Graphics/GraphicsEngineD3D12/include/DynamicUploadHeap.h +++ b/Graphics/GraphicsEngineD3D12/include/DynamicUploadHeap.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,6 +125,9 @@ public: private: const bool m_bIsCPUAccessible; + // When a chunk of dynamic memory is requested, the heap first tries to allocate the memory in the largest GPU buffer. + // If allocation fails, it a new ring buffer is created that provides enough space and requests memory from that buffer. + // Only the largest buffer is used for allocation and all other buffers are released when GPU is done with corresponding frames std::vector<GPURingBuffer, STDAllocatorRawMem<GPURingBuffer> > m_RingBuffers; IMemoryAllocator &m_Allocator; RenderDeviceD3D12Impl* m_pDeviceD3D12 = nullptr; diff --git a/Graphics/GraphicsEngineD3D12/include/GenerateMips.h b/Graphics/GraphicsEngineD3D12/include/GenerateMips.h index 22e81589..109858a9 100644 --- a/Graphics/GraphicsEngineD3D12/include/GenerateMips.h +++ b/Graphics/GraphicsEngineD3D12/include/GenerateMips.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h index 1ac6564f..84e2fb09 100644 --- a/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h index 0294a8b8..db601579 100644 --- a/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/RenderDeviceD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/RootSignature.h b/Graphics/GraphicsEngineD3D12/include/RootSignature.h index 750b2b9d..eb2a20ba 100644 --- a/Graphics/GraphicsEngineD3D12/include/RootSignature.h +++ b/Graphics/GraphicsEngineD3D12/include/RootSignature.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/SamplerD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/SamplerD3D12Impl.h index 11226b64..fc920441 100644 --- a/Graphics/GraphicsEngineD3D12/include/SamplerD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/SamplerD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/ShaderD3D12Impl.h index b39c70d6..79ef7fec 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/ShaderD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.h index 025db186..b5824b17 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourceCacheD3D12.h b/Graphics/GraphicsEngineD3D12/include/ShaderResourceCacheD3D12.h index aed6d32e..601e28e1 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderResourceCacheD3D12.h +++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourceCacheD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h b/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h index 90d1ba27..b29e7ea4 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h +++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourcesD3D12.h b/Graphics/GraphicsEngineD3D12/include/ShaderResourcesD3D12.h index f58ce20d..940a1350 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderResourcesD3D12.h +++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourcesD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/SwapChainD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/SwapChainD3D12Impl.h index e7e8f312..197ccd68 100644 --- a/Graphics/GraphicsEngineD3D12/include/SwapChainD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/SwapChainD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/TextureD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/TextureD3D12Impl.h index 039de70f..3bee0851 100644 --- a/Graphics/GraphicsEngineD3D12/include/TextureD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/TextureD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/TextureViewD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/TextureViewD3D12Impl.h index 6256ca0a..e07446a5 100644 --- a/Graphics/GraphicsEngineD3D12/include/TextureViewD3D12Impl.h +++ b/Graphics/GraphicsEngineD3D12/include/TextureViewD3D12Impl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/include/pch.h b/Graphics/GraphicsEngineD3D12/include/pch.h index f2f0b7f4..225f72b4 100644 --- a/Graphics/GraphicsEngineD3D12/include/pch.h +++ b/Graphics/GraphicsEngineD3D12/include/pch.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/BufferD3D12.h b/Graphics/GraphicsEngineD3D12/interface/BufferD3D12.h index f3e69a13..823965a9 100644 --- a/Graphics/GraphicsEngineD3D12/interface/BufferD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/BufferD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/BufferViewD3D12.h b/Graphics/GraphicsEngineD3D12/interface/BufferViewD3D12.h index 7d9e45c9..a388e4c6 100644 --- a/Graphics/GraphicsEngineD3D12/interface/BufferViewD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/BufferViewD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/PipelineStateD3D12.h b/Graphics/GraphicsEngineD3D12/interface/PipelineStateD3D12.h index c31ea4cc..e978c014 100644 --- a/Graphics/GraphicsEngineD3D12/interface/PipelineStateD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/PipelineStateD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/RenderDeviceD3D12.h b/Graphics/GraphicsEngineD3D12/interface/RenderDeviceD3D12.h index 309d355e..3d37c0a8 100644 --- a/Graphics/GraphicsEngineD3D12/interface/RenderDeviceD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/RenderDeviceD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/RenderDeviceFactoryD3D12.h b/Graphics/GraphicsEngineD3D12/interface/RenderDeviceFactoryD3D12.h index f3aa45f4..2a81cf76 100644 --- a/Graphics/GraphicsEngineD3D12/interface/RenderDeviceFactoryD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/RenderDeviceFactoryD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/SamplerD3D12.h b/Graphics/GraphicsEngineD3D12/interface/SamplerD3D12.h index 4359fdc5..f8d98e69 100644 --- a/Graphics/GraphicsEngineD3D12/interface/SamplerD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/SamplerD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/ShaderD3D12.h b/Graphics/GraphicsEngineD3D12/interface/ShaderD3D12.h index 50aa22aa..c8bca697 100644 --- a/Graphics/GraphicsEngineD3D12/interface/ShaderD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/ShaderD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/ShaderResourceBindingD3D12.h b/Graphics/GraphicsEngineD3D12/interface/ShaderResourceBindingD3D12.h index 6038b88b..27162053 100644 --- a/Graphics/GraphicsEngineD3D12/interface/ShaderResourceBindingD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/ShaderResourceBindingD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/SwapChainD3D12.h b/Graphics/GraphicsEngineD3D12/interface/SwapChainD3D12.h index eacc0ef4..ab936019 100644 --- a/Graphics/GraphicsEngineD3D12/interface/SwapChainD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/SwapChainD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/TextureD3D12.h b/Graphics/GraphicsEngineD3D12/interface/TextureD3D12.h index 2fe585ce..449f2692 100644 --- a/Graphics/GraphicsEngineD3D12/interface/TextureD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/TextureD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/interface/TextureViewD3D12.h b/Graphics/GraphicsEngineD3D12/interface/TextureViewD3D12.h index 967d28a1..f9c83a61 100644 --- a/Graphics/GraphicsEngineD3D12/interface/TextureViewD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/TextureViewD3D12.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/BufferD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/BufferD3D12Impl.cpp index c7470492..4d9ef799 100644 --- a/Graphics/GraphicsEngineD3D12/src/BufferD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/BufferD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ #include "GraphicsUtilities.h" #include "DXGITypeConversions.h" #include "EngineMemory.h" +#include "StringTools.h" namespace Diligent { @@ -109,6 +110,9 @@ BufferD3D12Impl :: BufferD3D12Impl(FixedBlockMemoryAllocator &BufferObjMemAlloca if(FAILED(hr)) LOG_ERROR_AND_THROW("Failed to create D3D12 buffer") + if( *m_Desc.Name != 0) + m_pd3d12Resource->SetName(WidenString(m_Desc.Name).c_str()); + if( bInitializeBuffer ) { D3D12_HEAP_PROPERTIES UploadHeapProps; diff --git a/Graphics/GraphicsEngineD3D12/src/BufferViewD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/BufferViewD3D12Impl.cpp index e27c91ea..f0f7b2d7 100644 --- a/Graphics/GraphicsEngineD3D12/src/BufferViewD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/BufferViewD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/CommandContext.cpp b/Graphics/GraphicsEngineD3D12/src/CommandContext.cpp index c123993f..72531286 100644 --- a/Graphics/GraphicsEngineD3D12/src/CommandContext.cpp +++ b/Graphics/GraphicsEngineD3D12/src/CommandContext.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -243,7 +243,7 @@ void CommandContext::TransitionResource(D3D12ResourceBase& Resource, IDeviceObje D3D12_RESOURCE_STATES OldState = Resource.GetState(); // Check if required state is already set - if ( (OldState & NewState) != NewState ) + if ( (OldState & NewState) != NewState || NewState == 0 && OldState != 0 ) { // If both old state and new state are read-only states, combine the two if( (OldState & D3D12_RESOURCE_STATE_GENERIC_READ) == OldState && diff --git a/Graphics/GraphicsEngineD3D12/src/CommandListManager.cpp b/Graphics/GraphicsEngineD3D12/src/CommandListManager.cpp index 8ffc64ce..77c72d08 100644 --- a/Graphics/GraphicsEngineD3D12/src/CommandListManager.cpp +++ b/Graphics/GraphicsEngineD3D12/src/CommandListManager.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/D3D12ResourceBase.cpp b/Graphics/GraphicsEngineD3D12/src/D3D12ResourceBase.cpp index b2e9f431..0744fda7 100644 --- a/Graphics/GraphicsEngineD3D12/src/D3D12ResourceBase.cpp +++ b/Graphics/GraphicsEngineD3D12/src/D3D12ResourceBase.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp b/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp index 738fbc98..68082795 100644 --- a/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp +++ b/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/D3D12Utils.cpp b/Graphics/GraphicsEngineD3D12/src/D3D12Utils.cpp index a1f82e1c..c2428e16 100644 --- a/Graphics/GraphicsEngineD3D12/src/D3D12Utils.cpp +++ b/Graphics/GraphicsEngineD3D12/src/D3D12Utils.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/DLLMain.cpp b/Graphics/GraphicsEngineD3D12/src/DLLMain.cpp index fff890c0..94065164 100644 --- a/Graphics/GraphicsEngineD3D12/src/DLLMain.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DLLMain.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp b/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp index 02ea8384..7ba3d2bc 100644 --- a/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DescriptorHeap.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ namespace Diligent { - +// Creates a new descriptor heap and reference the entire heap DescriptorHeapAllocationManager::DescriptorHeapAllocationManager(IMemoryAllocator &Allocator, RenderDeviceD3D12Impl *pDeviceD3D12Impl, IDescriptorAllocator *pParentAllocator, @@ -54,6 +54,8 @@ DescriptorHeapAllocationManager::DescriptorHeapAllocationManager(IMemoryAllocato m_FirstGPUHandle = m_pd3d12DescriptorHeap->GetGPUDescriptorHandleForHeapStart(); } +// Uses subrange of descriptors in the existing D3D12 descriptor heap +// that starts at offset FirstDescriptor and uses NumDescriptors descriptors DescriptorHeapAllocationManager::DescriptorHeapAllocationManager(IMemoryAllocator &Allocator, RenderDeviceD3D12Impl *pDeviceD3D12Impl, IDescriptorAllocator *pParentAllocator, @@ -90,39 +92,47 @@ DescriptorHeapAllocationManager::~DescriptorHeapAllocationManager() DescriptorHeapAllocation DescriptorHeapAllocationManager::Allocate(uint32_t Count) { std::lock_guard<std::mutex> LockGuard(m_AllocationMutex); + // Methods of VariableSizeGPUAllocationsManager class are not thread safe! + // Use variable-size GPU allocations manager to allocate the requested number of descriptors auto DescriptorHandleOffset = m_FreeBlockManager.Allocate(Count); - if (DescriptorHandleOffset == FreeBlockListManagerGPU::InvalidOffset) + if (DescriptorHandleOffset == VariableSizeGPUAllocationsManager::InvalidOffset) { return DescriptorHeapAllocation(); } + // Compute the first CPU and GPU descriptor handles in the allocation by + // offseting the first CPU and GPU descriptor handle in the range auto CPUHandle = m_FirstCPUHandle; CPUHandle.ptr += DescriptorHandleOffset * m_DescriptorSize; - auto GPUHandle = m_FirstGPUHandle; + auto GPUHandle = m_FirstGPUHandle; // Will be null if the heap is not GPU-visible if(m_HeapDesc.Flags & D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE) GPUHandle.ptr += DescriptorHandleOffset * m_DescriptorSize; - VERIFY(m_ThisManagerId < std::numeric_limits<Uint16>::max(), "ManagerID exceed allowed limit"); - DescriptorHeapAllocation Allocation( m_pParentAllocator, m_pd3d12DescriptorHeap, CPUHandle, GPUHandle, Count, static_cast<Uint16>(m_ThisManagerId)); - - return Allocation; + VERIFY(m_ThisManagerId < std::numeric_limits<Uint16>::max(), "ManagerID exceeds 16-bit range"); + return DescriptorHeapAllocation( m_pParentAllocator, m_pd3d12DescriptorHeap, CPUHandle, GPUHandle, Count, static_cast<Uint16>(m_ThisManagerId)); } void DescriptorHeapAllocationManager::Free(DescriptorHeapAllocation&& Allocation) { std::lock_guard<std::mutex> LockGuard(m_AllocationMutex); + // Methods of VariableSizeGPUAllocationsManager class are not thread safe! VERIFY(Allocation.GetAllocationManagerId() == m_ThisManagerId, "Invalid descriptor heap manager Id") auto DescriptorOffset = (Allocation.GetCpuHandle().ptr - m_FirstCPUHandle.ptr) / m_DescriptorSize; + // Note that the allocation is not released immediately, but added to the release queue in the allocations manager m_FreeBlockManager.Free(DescriptorOffset, Allocation.GetNumHandles(), m_pDeviceD3D12Impl->GetCurrentFrame()); + // Clear the allocation Allocation = DescriptorHeapAllocation(); } void DescriptorHeapAllocationManager::ReleaseStaleAllocations(Uint64 NumCompletedFrames) { + std::lock_guard<std::mutex> LockGuard(m_AllocationMutex); + // Methods of VariableSizeGPUAllocationsManager class are not thread safe! + m_FreeBlockManager.ReleaseCompletedFrames(NumCompletedFrames); } @@ -163,21 +173,37 @@ DescriptorHeapAllocation CPUDescriptorHeap::Allocate( uint32_t Count ) { std::lock_guard<std::mutex> LockGuard(m_AllocationMutex); DescriptorHeapAllocation Allocation; + // Go through all descriptor heap managers that have free descriptors for (auto AvailableHeapIt = m_AvailableHeaps.begin(); AvailableHeapIt != m_AvailableHeaps.end(); ++AvailableHeapIt) { + // Try to allocate descriptor using the current descriptor heap manager Allocation = m_HeapPool[*AvailableHeapIt].Allocate(Count); + // Remove the manager from the pool if it has no more available descriptors if(m_HeapPool[*AvailableHeapIt].GetNumAvailableDescriptors() == 0) m_AvailableHeaps.erase(*AvailableHeapIt); + // Terminate the loop if descriptor was successfully allocated, otherwise + // go to the next manager if(Allocation.GetCpuHandle().ptr != 0) break; } + // If there were no available descriptor heap managers or no manager was able + // to suffice the allocation request, create a new manager if(Allocation.GetCpuHandle().ptr == 0) { + // Make sure the heap is large enough to accomodate the requested number of descriptors + if(Count > m_HeapDesc.NumDescriptors) + { + LOG_WARNING_MESSAGE("Number of requested descriptors exceeds the descriptor heap size. Increasing the number of descriptors in the heap") + } + m_HeapDesc.NumDescriptors = std::max(m_HeapDesc.NumDescriptors, static_cast<UINT>(Count)); + // Create a new descriptor heap manager. Note that this constructor creates a new D3D12 descriptor + // heap and references the entire heap. Pool index is used as manager ID m_HeapPool.emplace_back(m_MemAllocator, m_pDeviceD3D12Impl, this, m_HeapPool.size(), m_HeapDesc); auto NewHeapIt = m_AvailableHeaps.insert(m_HeapPool.size()-1); + // Use the new manager to allocate descriptor handles Allocation = m_HeapPool[*NewHeapIt.first].Allocate(Count); } @@ -201,6 +227,7 @@ void CPUDescriptorHeap::ReleaseStaleAllocations(Uint64 NumCompletedFrames) for (size_t HeapManagerInd = 0; HeapManagerInd < m_HeapPool.size(); ++HeapManagerInd) { m_HeapPool[HeapManagerInd].ReleaseStaleAllocations(NumCompletedFrames); + // Return the manager to the pool of available managers if it has available descriptors if(m_HeapPool[HeapManagerInd].GetNumAvailableDescriptors() > 0) m_AvailableHeaps.insert(HeapManagerInd); } @@ -241,7 +268,7 @@ GPUDescriptorHeap::~GPUDescriptorHeap() DescriptorHeapAllocation GPUDescriptorHeap::Allocate(uint32_t Count) { - std::lock_guard<std::mutex> LockGuard(m_Mutex); + std::lock_guard<std::mutex> LockGuard(m_AllocMutex); DescriptorHeapAllocation Allocation = m_HeapAllocationManager.Allocate(Count); m_CurrentSize += (Allocation.GetCpuHandle().ptr != 0) ? Count : 0; @@ -252,7 +279,7 @@ DescriptorHeapAllocation GPUDescriptorHeap::Allocate(uint32_t Count) DescriptorHeapAllocation GPUDescriptorHeap::AllocateDynamic(uint32_t Count) { - std::lock_guard<std::mutex> LockGuard(m_Mutex); + std::lock_guard<std::mutex> LockGuard(m_DynAllocMutex); DescriptorHeapAllocation Allocation = m_DynamicAllocationsManager.Allocate(Count); m_CurrentDynamicSize += (Allocation.GetCpuHandle().ptr != 0) ? Count : 0; @@ -266,15 +293,15 @@ void GPUDescriptorHeap::Free(DescriptorHeapAllocation&& Allocation) auto MgrId = Allocation.GetAllocationManagerId(); VERIFY(MgrId == 0 || MgrId == 1, "Unexpected allocation manager ID"); - std::lock_guard<std::mutex> LockGuard(m_Mutex); - if(MgrId == 0) { + std::lock_guard<std::mutex> LockGuard(m_AllocMutex); m_CurrentSize -= static_cast<Uint32>(Allocation.GetNumHandles()); m_HeapAllocationManager.Free(std::move(Allocation)); } else { + std::lock_guard<std::mutex> LockGuard(m_DynAllocMutex); m_CurrentDynamicSize -= static_cast<Uint32>(Allocation.GetNumHandles()); m_DynamicAllocationsManager.Free(std::move(Allocation)); } @@ -282,8 +309,15 @@ void GPUDescriptorHeap::Free(DescriptorHeapAllocation&& Allocation) void GPUDescriptorHeap::ReleaseStaleAllocations(Uint64 NumCompletedFrames) { - m_HeapAllocationManager.ReleaseStaleAllocations(NumCompletedFrames); - m_DynamicAllocationsManager.ReleaseStaleAllocations(NumCompletedFrames); + { + std::lock_guard<std::mutex> LockGuard(m_AllocMutex); + m_HeapAllocationManager.ReleaseStaleAllocations(NumCompletedFrames); + } + + { + std::lock_guard<std::mutex> LockGuard(m_DynAllocMutex); + m_DynamicAllocationsManager.ReleaseStaleAllocations(NumCompletedFrames); + } } @@ -299,14 +333,20 @@ DynamicSuballocationsManager::DynamicSuballocationsManager(IMemoryAllocator &All void DynamicSuballocationsManager::DiscardAllocations(Uint64 FrameNumber) { + // Clear the list and dispose all allocated chunks of GPU descriptor heap. m_Suballocations.clear(); } DescriptorHeapAllocation DynamicSuballocationsManager::Allocate(Uint32 Count) { + // This method is intentionally lock-free as it is expected to + // be called through device context from single thread only + + // Check if there are no chunks or the last chunk does not have enough space if( m_Suballocations.empty() || m_CurrentSuballocationOffset + Count > m_Suballocations.back().GetNumHandles() ) { + // Request a new chunk from the GPU descriptor heap auto SuballocationSize = std::max(m_DynamicChunkSize, Count); auto NewDynamicSubAllocation = m_ParentGPUHeap.AllocateDynamic(SuballocationSize); if (NewDynamicSubAllocation.GetCpuHandle().ptr == 0) @@ -318,6 +358,7 @@ DescriptorHeapAllocation DynamicSuballocationsManager::Allocate(Uint32 Count) m_CurrentSuballocationOffset = 0; } + // Perform suballocation from the last chunk auto &CurrentSuballocation = m_Suballocations.back(); auto ManagerId = CurrentSuballocation.GetAllocationManagerId(); @@ -335,7 +376,7 @@ DescriptorHeapAllocation DynamicSuballocationsManager::Allocate(Uint32 Count) void DynamicSuballocationsManager::Free(DescriptorHeapAllocation&& Allocation) { - // Do nothing + // Do nothing. Dynamic allocations are not disposed individually, but as whole chunks at the end of the frame Allocation = DescriptorHeapAllocation(); } diff --git a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp index 5ebfb4b4..258e6ebf 100644 --- a/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DeviceContextD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/DynamicUploadHeap.cpp b/Graphics/GraphicsEngineD3D12/src/DynamicUploadHeap.cpp index c747a731..292957cb 100644 --- a/Graphics/GraphicsEngineD3D12/src/DynamicUploadHeap.cpp +++ b/Graphics/GraphicsEngineD3D12/src/DynamicUploadHeap.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/GenerateMips.cpp b/Graphics/GraphicsEngineD3D12/src/GenerateMips.cpp index ee382930..5ef672d4 100644 --- a/Graphics/GraphicsEngineD3D12/src/GenerateMips.cpp +++ b/Graphics/GraphicsEngineD3D12/src/GenerateMips.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -166,14 +166,19 @@ namespace Diligent // TODO: Shouldn't we transition top mip to shader resource state? D3D12_CPU_DESCRIPTOR_HANDLE DstDescriptorRange = DescriptorAlloc.GetCpuHandle(); - UINT DstRangeSize = 1+NumMips; + const Uint32 MaxMipsHandledByCS = 4; // Max number of mip levels processed by one CS shader invocation + UINT DstRangeSize = 1 + MaxMipsHandledByCS; D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRanges[5] = {}; SrcDescriptorRanges[0] = SRVDescriptorHandle; UINT SrcRangeSizes[5] = {1,1,1,1,1}; - for(Uint32 u=0; u < NumMips; ++u) - SrcDescriptorRanges[1+u] = pTexD3D12->GetUAVDescriptorHandle(TopMip+u+1, 0); - - pd3d12Device->CopyDescriptors(1, &DstDescriptorRange, &DstRangeSize, 1+NumMips, SrcDescriptorRanges, SrcRangeSizes, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); + // On Resource Binding Tier 2 hardware, all descriptor tables of type CBV and UAV declared in the set + // Root Signature must be populated and initialized, even if the shaders do not need the descriptor. + // So we must populate all 4 slots even though we may actually process less than 4 mip levels + // Copy top mip level UAV descriptor handle to all unused slots + for(Uint32 u=0; u < MaxMipsHandledByCS; ++u) + SrcDescriptorRanges[1+u] = pTexD3D12->GetUAVDescriptorHandle( std::min( TopMip+u+1, TexDesc.MipLevels-1), 0); + + pd3d12Device->CopyDescriptors(1, &DstDescriptorRange, &DstRangeSize, 1+MaxMipsHandledByCS, SrcDescriptorRanges, SrcRangeSizes, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); ComputeCtx.Dispatch((DstWidth+7)/8, (DstHeight+7)/8); diff --git a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp index c2ed2d83..d52c3383 100644 --- a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/RenderDeviceD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/RenderDeviceD3D12Impl.cpp index 51c89306..c2576e8f 100644 --- a/Graphics/GraphicsEngineD3D12/src/RenderDeviceD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/RenderDeviceD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/RenderDeviceFactoryD3D12.cpp b/Graphics/GraphicsEngineD3D12/src/RenderDeviceFactoryD3D12.cpp index 762e8a03..17ce22ae 100644 --- a/Graphics/GraphicsEngineD3D12/src/RenderDeviceFactoryD3D12.cpp +++ b/Graphics/GraphicsEngineD3D12/src/RenderDeviceFactoryD3D12.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp b/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp index 272895af..3fc4f814 100644 --- a/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp +++ b/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -449,6 +449,8 @@ void RootSignature::Finalize(ID3D12Device *pd3d12Device) hr = pd3d12Device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), __uuidof(m_pd3d12RootSignature), reinterpret_cast<void**>( static_cast<ID3D12RootSignature**>(&m_pd3d12RootSignature))); CHECK_D3D_RESULT_THROW(hr, "Failed to create root signature") + //if( *m_Desc.Name != 0) + // m_pd3d12RootSignature->SetName(WidenString(m_Desc.Name).c_str()); bool bHasDynamicResources = m_TotalSrvCbvUavSlots[SHADER_VARIABLE_TYPE_DYNAMIC]!=0 || m_TotalSamplerSlots[SHADER_VARIABLE_TYPE_DYNAMIC]!=0; if(bHasDynamicResources) diff --git a/Graphics/GraphicsEngineD3D12/src/SamplerD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/SamplerD3D12Impl.cpp index e6e95bac..0d443e85 100644 --- a/Graphics/GraphicsEngineD3D12/src/SamplerD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/SamplerD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderD3D12Impl.cpp index fd43fa49..84a4df8e 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp index 118707a2..6287695e 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderResourceCacheD3D12.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderResourceCacheD3D12.cpp index 700b49b5..25eefe9e 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderResourceCacheD3D12.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderResourceCacheD3D12.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderResourceLayoutD3D12.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderResourceLayoutD3D12.cpp index 924131e4..c870b5f0 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderResourceLayoutD3D12.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderResourceLayoutD3D12.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderResourcesD3D12.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderResourcesD3D12.cpp index e7543ce6..c42f663e 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderResourcesD3D12.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderResourcesD3D12.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/SwapChainD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/SwapChainD3D12Impl.cpp index e1be6145..2e42ca44 100644 --- a/Graphics/GraphicsEngineD3D12/src/SwapChainD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/SwapChainD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -125,6 +125,9 @@ void SwapChainD3D12Impl::InitBuffersAndViews() if(FAILED(hr)) LOG_ERROR_AND_THROW("Failed to get back buffer ", backbuff," from the swap chain"); + hr = pBackBuffer->SetName(L"Main back buffer"); + VERIFY_EXPR(SUCCEEDED(hr)); + TextureDesc BackBufferDesc; BackBufferDesc.Format = m_SwapChainDesc.ColorBufferFormat; String Name = "Main back buffer "; @@ -152,7 +155,7 @@ void SwapChainD3D12Impl::InitBuffersAndViews() DepthBufferDesc.ClearValue.Format = DepthBufferDesc.Format; DepthBufferDesc.ClearValue.DepthStencil.Depth = m_SwapChainDesc.DefaultDepthValue; DepthBufferDesc.ClearValue.DepthStencil.Stencil = m_SwapChainDesc.DefaultStencilValue; - String Name = "Main depth buffer"; + DepthBufferDesc.Name = "Main depth buffer"; RefCntAutoPtr<ITexture> pDepthBufferTex; m_pRenderDevice->CreateTexture(DepthBufferDesc, TextureData(), static_cast<ITexture**>(&pDepthBufferTex) ); m_pDepthBufferDSV = pDepthBufferTex->GetDefaultView(TEXTURE_VIEW_DEPTH_STENCIL); diff --git a/Graphics/GraphicsEngineD3D12/src/TextureD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/TextureD3D12Impl.cpp index d59f1947..8361421f 100644 --- a/Graphics/GraphicsEngineD3D12/src/TextureD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/TextureD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ #include "DXGITypeConversions.h" #include "d3dx12_win.h" #include "EngineMemory.h" +#include "StringTools.h" using namespace Diligent; @@ -142,6 +143,9 @@ TextureD3D12Impl :: TextureD3D12Impl(FixedBlockMemoryAllocator &TexObjAllocator, if(FAILED(hr)) LOG_ERROR_AND_THROW("Failed to create D3D12 texture") + if( *m_Desc.Name != 0) + m_pd3d12Resource->SetName(WidenString(m_Desc.Name).c_str()); + if(bInitializeTexture) { Uint32 ExpectedNumSubresources = static_cast<Uint32>(Desc.MipLevels * (Desc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? 1 : Desc.DepthOrArraySize) ); diff --git a/Graphics/GraphicsEngineD3D12/src/TextureViewD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/TextureViewD3D12Impl.cpp index 0b93926b..57749298 100644 --- a/Graphics/GraphicsEngineD3D12/src/TextureViewD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/TextureViewD3D12Impl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3D12/src/pch.cpp b/Graphics/GraphicsEngineD3D12/src/pch.cpp index 997e0f4a..d5f45c6a 100644 --- a/Graphics/GraphicsEngineD3D12/src/pch.cpp +++ b/Graphics/GraphicsEngineD3D12/src/pch.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/D3DErrors.h b/Graphics/GraphicsEngineD3DBase/include/D3DErrors.h index 5280820f..e70e4f87 100644 --- a/Graphics/GraphicsEngineD3DBase/include/D3DErrors.h +++ b/Graphics/GraphicsEngineD3DBase/include/D3DErrors.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/D3DShaderResourceLoader.h b/Graphics/GraphicsEngineD3DBase/include/D3DShaderResourceLoader.h index 7e58c910..b21d4692 100644 --- a/Graphics/GraphicsEngineD3DBase/include/D3DShaderResourceLoader.h +++ b/Graphics/GraphicsEngineD3DBase/include/D3DShaderResourceLoader.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/D3DTypeConversionImpl.h b/Graphics/GraphicsEngineD3DBase/include/D3DTypeConversionImpl.h index ebb8825b..b855019a 100644 --- a/Graphics/GraphicsEngineD3DBase/include/D3DTypeConversionImpl.h +++ b/Graphics/GraphicsEngineD3DBase/include/D3DTypeConversionImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/D3DViewDescConversionImpl.h b/Graphics/GraphicsEngineD3DBase/include/D3DViewDescConversionImpl.h index baa0a3ab..ef7a2b3a 100644 --- a/Graphics/GraphicsEngineD3DBase/include/D3DViewDescConversionImpl.h +++ b/Graphics/GraphicsEngineD3DBase/include/D3DViewDescConversionImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/DXGITypeConversions.h b/Graphics/GraphicsEngineD3DBase/include/DXGITypeConversions.h index 1f0889d8..c705ca13 100644 --- a/Graphics/GraphicsEngineD3DBase/include/DXGITypeConversions.h +++ b/Graphics/GraphicsEngineD3DBase/include/DXGITypeConversions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/RenderDeviceD3DBase.h b/Graphics/GraphicsEngineD3DBase/include/RenderDeviceD3DBase.h index be7e940d..25028925 100644 --- a/Graphics/GraphicsEngineD3DBase/include/RenderDeviceD3DBase.h +++ b/Graphics/GraphicsEngineD3DBase/include/RenderDeviceD3DBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/ShaderD3DBase.h b/Graphics/GraphicsEngineD3DBase/include/ShaderD3DBase.h index 0fd007fa..d529db6a 100644 --- a/Graphics/GraphicsEngineD3DBase/include/ShaderD3DBase.h +++ b/Graphics/GraphicsEngineD3DBase/include/ShaderD3DBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h index ad63d64b..acf580eb 100644 --- a/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h +++ b/Graphics/GraphicsEngineD3DBase/include/ShaderResources.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/include/ShaderVariableD3DBase.h b/Graphics/GraphicsEngineD3DBase/include/ShaderVariableD3DBase.h index 6a8372bb..befdde09 100644 --- a/Graphics/GraphicsEngineD3DBase/include/ShaderVariableD3DBase.h +++ b/Graphics/GraphicsEngineD3DBase/include/ShaderVariableD3DBase.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/src/DXGITypeConversions.cpp b/Graphics/GraphicsEngineD3DBase/src/DXGITypeConversions.cpp index 39c92997..29087ed6 100644 --- a/Graphics/GraphicsEngineD3DBase/src/DXGITypeConversions.cpp +++ b/Graphics/GraphicsEngineD3DBase/src/DXGITypeConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/src/ShaderD3DBase.cpp b/Graphics/GraphicsEngineD3DBase/src/ShaderD3DBase.cpp index 9650fba3..bf975a22 100644 --- a/Graphics/GraphicsEngineD3DBase/src/ShaderD3DBase.cpp +++ b/Graphics/GraphicsEngineD3DBase/src/ShaderD3DBase.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp b/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp index dd3b691c..de120e99 100644 --- a/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp +++ b/Graphics/GraphicsEngineD3DBase/src/ShaderResources.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/AsyncWritableResource.h b/Graphics/GraphicsEngineOpenGL/include/AsyncWritableResource.h index 27e53f9d..46aa70e9 100644 --- a/Graphics/GraphicsEngineOpenGL/include/AsyncWritableResource.h +++ b/Graphics/GraphicsEngineOpenGL/include/AsyncWritableResource.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.h index 65c2b9f2..9055e87f 100644 --- a/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.h index 330ddf23..676c864d 100644 --- a/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.h index 95a87c60..1c037fe0 100644 --- a/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/FBOCache.h b/Graphics/GraphicsEngineOpenGL/include/FBOCache.h index 717b1772..109f2776 100644 --- a/Graphics/GraphicsEngineOpenGL/include/FBOCache.h +++ b/Graphics/GraphicsEngineOpenGL/include/FBOCache.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLContextAndroid.h b/Graphics/GraphicsEngineOpenGL/include/GLContextAndroid.h index 10085b2e..5216fdbf 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLContextAndroid.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLContextAndroid.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLContextState.h b/Graphics/GraphicsEngineOpenGL/include/GLContextState.h index 2de6619c..93ac12f6 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLContextState.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLContextState.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLContextWindows.h b/Graphics/GraphicsEngineOpenGL/include/GLContextWindows.h index 641b18c6..5c3d92bc 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLContextWindows.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLContextWindows.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLObjectWrapper.h b/Graphics/GraphicsEngineOpenGL/include/GLObjectWrapper.h index 4fa03ac0..ef22f830 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLObjectWrapper.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLObjectWrapper.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLProgram.h b/Graphics/GraphicsEngineOpenGL/include/GLProgram.h index b0bff833..14de5069 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLProgram.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLProgram.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h index edb0890d..c7573abb 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLProgramResources.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions.h b/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions.h index cb2fde6f..3c058506 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions_inc.h b/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions_inc.h index 8bde9043..337e464a 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions_inc.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLSLDefinitions_inc.h @@ -1,4 +1,4 @@ -"/* Copyright 2015-2016 Egor Yusov\n" +"/* Copyright 2015-2017 Egor Yusov\n" " * \n" " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" " * you may not use this file except in compliance with the License.\n" diff --git a/Graphics/GraphicsEngineOpenGL/include/GLStubs.h b/Graphics/GraphicsEngineOpenGL/include/GLStubs.h index 8d38827e..fbe2791a 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLStubs.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLStubs.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/GLTypeConversions.h b/Graphics/GraphicsEngineOpenGL/include/GLTypeConversions.h index 929251fa..60efec17 100644 --- a/Graphics/GraphicsEngineOpenGL/include/GLTypeConversions.h +++ b/Graphics/GraphicsEngineOpenGL/include/GLTypeConversions.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/HLSL2GLSLConverter.h b/Graphics/GraphicsEngineOpenGL/include/HLSL2GLSLConverter.h index 5e5429fe..ce74d7ef 100644 --- a/Graphics/GraphicsEngineOpenGL/include/HLSL2GLSLConverter.h +++ b/Graphics/GraphicsEngineOpenGL/include/HLSL2GLSLConverter.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.h index 507334bf..99e077f4 100644 --- a/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLESImpl.h b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLESImpl.h index 0a054e24..69b526f1 100644 --- a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLESImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLESImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.h index 2ae32545..7ee04f4e 100644 --- a/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/RenderDeviceGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.h index dfddb3f7..178564f5 100644 --- a/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.h index cb17a1ce..5892428f 100644 --- a/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.h index 1ba6ec43..533a2d84 100644 --- a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/SwapChainGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/SwapChainGLImpl.h index 32c678e4..7987d603 100644 --- a/Graphics/GraphicsEngineOpenGL/include/SwapChainGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/SwapChainGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/TexRegionRender.h b/Graphics/GraphicsEngineOpenGL/include/TexRegionRender.h index 93534c92..f0006632 100644 --- a/Graphics/GraphicsEngineOpenGL/include/TexRegionRender.h +++ b/Graphics/GraphicsEngineOpenGL/include/TexRegionRender.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/Texture1DArray_OGL.h b/Graphics/GraphicsEngineOpenGL/include/Texture1DArray_OGL.h index 36ca0529..8e9d52ab 100644 --- a/Graphics/GraphicsEngineOpenGL/include/Texture1DArray_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/Texture1DArray_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/Texture1D_OGL.h b/Graphics/GraphicsEngineOpenGL/include/Texture1D_OGL.h index 022e5b40..451be77d 100644 --- a/Graphics/GraphicsEngineOpenGL/include/Texture1D_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/Texture1D_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/Texture2DArray_OGL.h b/Graphics/GraphicsEngineOpenGL/include/Texture2DArray_OGL.h index 7dbd6518..ffd2b699 100644 --- a/Graphics/GraphicsEngineOpenGL/include/Texture2DArray_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/Texture2DArray_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/Texture2D_OGL.h b/Graphics/GraphicsEngineOpenGL/include/Texture2D_OGL.h index 67b4f741..f62d6400 100644 --- a/Graphics/GraphicsEngineOpenGL/include/Texture2D_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/Texture2D_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/Texture3D_OGL.h b/Graphics/GraphicsEngineOpenGL/include/Texture3D_OGL.h index 734830ab..7409fa91 100644 --- a/Graphics/GraphicsEngineOpenGL/include/Texture3D_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/Texture3D_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.h b/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.h index a2af9c09..488650f1 100644 --- a/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureCubeArray_OGL.h b/Graphics/GraphicsEngineOpenGL/include/TextureCubeArray_OGL.h index 7b2ff823..4067f5d7 100644 --- a/Graphics/GraphicsEngineOpenGL/include/TextureCubeArray_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/TextureCubeArray_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureCube_OGL.h b/Graphics/GraphicsEngineOpenGL/include/TextureCube_OGL.h index a5ff2917..42e9500a 100644 --- a/Graphics/GraphicsEngineOpenGL/include/TextureCube_OGL.h +++ b/Graphics/GraphicsEngineOpenGL/include/TextureCube_OGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.h b/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.h index f2634e0e..2bfe34b8 100644 --- a/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.h +++ b/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/VAOCache.h b/Graphics/GraphicsEngineOpenGL/include/VAOCache.h index 85e69a5f..00e4d60c 100644 --- a/Graphics/GraphicsEngineOpenGL/include/VAOCache.h +++ b/Graphics/GraphicsEngineOpenGL/include/VAOCache.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/include/pch.h b/Graphics/GraphicsEngineOpenGL/include/pch.h index f1fcf923..68a1a7e5 100644 --- a/Graphics/GraphicsEngineOpenGL/include/pch.h +++ b/Graphics/GraphicsEngineOpenGL/include/pch.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/BaseInterfacesGL.h b/Graphics/GraphicsEngineOpenGL/interface/BaseInterfacesGL.h index 90b55f4b..7460cc40 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/BaseInterfacesGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/BaseInterfacesGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/BufferGL.h b/Graphics/GraphicsEngineOpenGL/interface/BufferGL.h index 4d675853..6be40c70 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/BufferGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/BufferGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/BufferViewGL.h b/Graphics/GraphicsEngineOpenGL/interface/BufferViewGL.h index 7c1d7380..5ce9757d 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/BufferViewGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/BufferViewGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/DeviceContextGL.h b/Graphics/GraphicsEngineOpenGL/interface/DeviceContextGL.h index 111f5cae..2f8bb330 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/DeviceContextGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/DeviceContextGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/PipelineStateGL.h b/Graphics/GraphicsEngineOpenGL/interface/PipelineStateGL.h index 0d5601fa..b58c086b 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/PipelineStateGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/PipelineStateGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h index 698607a9..3f5dc2aa 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceFactoryOpenGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGL.h b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGL.h index 30fcbf62..14f59fe0 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGLES.h b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGLES.h index bdb7792d..cf667d80 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGLES.h +++ b/Graphics/GraphicsEngineOpenGL/interface/RenderDeviceGLES.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/SamplerGL.h b/Graphics/GraphicsEngineOpenGL/interface/SamplerGL.h index 4508b0db..acd33216 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/SamplerGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/SamplerGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/ShaderGL.h b/Graphics/GraphicsEngineOpenGL/interface/ShaderGL.h index 462ab137..ccde049a 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/ShaderGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/ShaderGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/ShaderResourceBindingGL.h b/Graphics/GraphicsEngineOpenGL/interface/ShaderResourceBindingGL.h index 6ff7da92..ab920b54 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/ShaderResourceBindingGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/ShaderResourceBindingGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/SwapChainGL.h b/Graphics/GraphicsEngineOpenGL/interface/SwapChainGL.h index 260bb375..1b12865a 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/SwapChainGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/SwapChainGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/TextureGL.h b/Graphics/GraphicsEngineOpenGL/interface/TextureGL.h index b7c67811..c8810052 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/TextureGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/TextureGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/interface/TextureViewGL.h b/Graphics/GraphicsEngineOpenGL/interface/TextureViewGL.h index c91eb81f..2e5879d0 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/TextureViewGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/TextureViewGL.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp index 1e3639da..e4f148ca 100644 --- a/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp index 05388c2c..ad598f97 100644 --- a/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp b/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp index fff890c0..94065164 100644 --- a/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/DLLMain.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp index bf369989..6077b027 100644 --- a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/FBOCache.cpp b/Graphics/GraphicsEngineOpenGL/src/FBOCache.cpp index 4ad5cb20..f697ae26 100644 --- a/Graphics/GraphicsEngineOpenGL/src/FBOCache.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/FBOCache.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLContextAndroid.cpp b/Graphics/GraphicsEngineOpenGL/src/GLContextAndroid.cpp index a0277b5c..0a8b0442 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLContextAndroid.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLContextAndroid.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp b/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp index cc007610..d7e38217 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLContextWindows.cpp b/Graphics/GraphicsEngineOpenGL/src/GLContextWindows.cpp index 5826f827..3cdbd005 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLContextWindows.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLContextWindows.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLObjectWrapper.cpp b/Graphics/GraphicsEngineOpenGL/src/GLObjectWrapper.cpp index 68589a2b..e249a40f 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLObjectWrapper.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLObjectWrapper.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLProgram.cpp b/Graphics/GraphicsEngineOpenGL/src/GLProgram.cpp index 5c8ff350..85f1c5e7 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLProgram.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLProgram.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp b/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp index 5b525bff..b3978069 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLProgramResources.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLStubs.cpp b/Graphics/GraphicsEngineOpenGL/src/GLStubs.cpp index 585d79cd..5a0ff686 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLStubs.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLStubs.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/GLTypeConversions.cpp b/Graphics/GraphicsEngineOpenGL/src/GLTypeConversions.cpp index 2fe7950b..d67f75cb 100644 --- a/Graphics/GraphicsEngineOpenGL/src/GLTypeConversions.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/GLTypeConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/HLSL2GLSLConverter.cpp b/Graphics/GraphicsEngineOpenGL/src/HLSL2GLSLConverter.cpp index bade1f8b..4333f60d 100644 --- a/Graphics/GraphicsEngineOpenGL/src/HLSL2GLSLConverter.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/HLSL2GLSLConverter.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp index 9701a47a..8ef0bedd 100644 --- a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp index fefecf2a..04eb5e59 100644 --- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceFactoryOpenGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLESImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLESImpl.cpp index 400cf697..2897d97d 100644 --- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLESImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLESImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp index ad5f8d4c..5899b647 100644 --- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/SamplerGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/SamplerGLImpl.cpp index 146caa60..5d236421 100644 --- a/Graphics/GraphicsEngineOpenGL/src/SamplerGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/SamplerGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp index 37551e5b..c51ee3bf 100644 --- a/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp index c5bd0f75..c209e76a 100644 --- a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp index c70ce61a..69373f90 100644 --- a/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/TexRegionRender.cpp b/Graphics/GraphicsEngineOpenGL/src/TexRegionRender.cpp index 64da6934..73c64ff7 100644 --- a/Graphics/GraphicsEngineOpenGL/src/TexRegionRender.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/TexRegionRender.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp index 5ef553d0..3446cb3a 100644 --- a/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp index 37cf920a..4835c053 100644 --- a/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp index 1ac3ca74..dce1e2dc 100644 --- a/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp index c9f77d80..4705795f 100644 --- a/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp index 833cd5a4..2d45f91f 100644 --- a/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp index 47a8b32f..b5c1ec71 100644 --- a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp index d235fa2d..3658b7d9 100644 --- a/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp index 875c1855..2d7f4362 100644 --- a/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureViewGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureViewGLImpl.cpp index b3b4210c..483f4141 100644 --- a/Graphics/GraphicsEngineOpenGL/src/TextureViewGLImpl.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/TextureViewGLImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp index 00309b77..3b4e9ef9 100644 --- a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsEngineOpenGL/src/pch.cpp b/Graphics/GraphicsEngineOpenGL/src/pch.cpp index bd78824e..ca5ae6c9 100644 --- a/Graphics/GraphicsEngineOpenGL/src/pch.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/pch.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems b/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems index 4ca8db57..050502cc 100644 --- a/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems +++ b/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems @@ -18,8 +18,8 @@ </ItemGroup> <ItemGroup> <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\BasicShaderSourceStreamFactory.h" /> - <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\FreeBlockListManager.h" /> - <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\FreeBlockListManagerGPU.h" /> + <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\VariableSizeAllocationsManager.h" /> + <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\VariableSizeGPUAllocationsManager.h" /> <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\GraphicsUtilities.h" /> <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\pch.h" /> <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\RingBuffer.h" /> diff --git a/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems.filters b/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems.filters index 0c8d5aa8..8d2bdcc1 100644 --- a/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems.filters +++ b/Graphics/GraphicsTools/build/Windows.Shared/GraphicsTools.Shared.vcxitems.filters @@ -24,10 +24,10 @@ <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\RingBuffer.h"> <Filter>include</Filter> </ClInclude> - <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\FreeBlockListManager.h"> + <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\VariableSizeAllocationsManager.h"> <Filter>include</Filter> </ClInclude> - <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\FreeBlockListManagerGPU.h"> + <ClInclude Include="$(MSBuildThisFileDirectory)..\..\include\VariableSizeGPUAllocationsManager.h"> <Filter>include</Filter> </ClInclude> </ItemGroup> diff --git a/Graphics/GraphicsTools/include/BasicShaderSourceStreamFactory.h b/Graphics/GraphicsTools/include/BasicShaderSourceStreamFactory.h index 86e2650b..24e87df5 100644 --- a/Graphics/GraphicsTools/include/BasicShaderSourceStreamFactory.h +++ b/Graphics/GraphicsTools/include/BasicShaderSourceStreamFactory.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/include/GraphicsUtilities.h b/Graphics/GraphicsTools/include/GraphicsUtilities.h index 6e6b34f6..f13684fd 100644 --- a/Graphics/GraphicsTools/include/GraphicsUtilities.h +++ b/Graphics/GraphicsTools/include/GraphicsUtilities.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/include/RingBuffer.h b/Graphics/GraphicsTools/include/RingBuffer.h index 043e884d..6ac15fc1 100644 --- a/Graphics/GraphicsTools/include/RingBuffer.h +++ b/Graphics/GraphicsTools/include/RingBuffer.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,10 @@ #pragma once +/// \file +/// Implementation of Diligent::RingBuffer class + + #include <deque> #include "MemoryAllocator.h" #include "STDAllocator.h" @@ -30,6 +34,7 @@ namespace Diligent { + /// Implementation of a ring buffer. The class is not thread-safe. class RingBuffer { public: diff --git a/Graphics/GraphicsTools/include/ShaderMacroHelper.h b/Graphics/GraphicsTools/include/ShaderMacroHelper.h index f64c2349..1beec624 100644 --- a/Graphics/GraphicsTools/include/ShaderMacroHelper.h +++ b/Graphics/GraphicsTools/include/ShaderMacroHelper.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/include/VariableSizeAllocationsManager.h b/Graphics/GraphicsTools/include/VariableSizeAllocationsManager.h new file mode 100644 index 00000000..86b8f6e1 --- /dev/null +++ b/Graphics/GraphicsTools/include/VariableSizeAllocationsManager.h @@ -0,0 +1,329 @@ +/* Copyright 2015-2017 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#pragma once + +#include <map> +#include "MemoryAllocator.h" +#include "STDAllocator.h" +#include "DebugUtilities.h" + +namespace Diligent +{ + // The class handles free memory block management to accommodate variable-size allocation requests. + // It keeps track of free blocks only and does not record allocation sizes. The class uses two ordered maps + // to facilitate operations. The first map keeps blocks sorted by their offsets. The second multimap keeps blocks + // sorted by their sizes. The elements of the two maps reference each other, which enables efficient block + // insertion, removal and merging. + // + // 8 32 64 104 + // |<---16--->| |<-----24------>| |<---16--->| |<-----32----->| + // + // + // m_FreeBlocksBySize m_FreeBlocksByOffset + // size->offset offset->size + // + // 16 ------------------> 8 ----------> {size = 16, &m_FreeBlocksBySize[0]} + // + // 16 ------. .-------> 32 ----------> {size = 24, &m_FreeBlocksBySize[2]} + // '.' + // 24 -------' '--------> 64 ----------> {size = 16, &m_FreeBlocksBySize[1]} + // + // 32 ------------------> 104 ----------> {size = 32, &m_FreeBlocksBySize[3]} + // + class VariableSizeAllocationsManager + { + public: + typedef size_t OffsetType; + static const OffsetType InvalidOffset = static_cast<OffsetType>(-1); + + private: + struct FreeBlockInfo; + + // Type of the map that keeps memory blocks sorted by their offsets + using TFreeBlocksByOffsetMap = + std::map<OffsetType, + FreeBlockInfo, + std::less<OffsetType>, // Standard ordering + STDAllocatorRawMem<std::pair<OffsetType, FreeBlockInfo>> // Raw memory allocator + >; + + // Type of the map that keeps memory blocks sorted by their sizes + using TFreeBlocksBySizeMap = + std::multimap<OffsetType, + TFreeBlocksByOffsetMap::iterator, + std::less<OffsetType>, // Standard ordering + STDAllocatorRawMem<std::pair<OffsetType, TFreeBlocksByOffsetMap::iterator>> // Raw memory allocator + >; + + struct FreeBlockInfo + { + // Block size (no reserved space for the size of the allocation) + OffsetType Size; + + // Iterator referencing this block in the multimap sorted by the block size + TFreeBlocksBySizeMap::iterator OrderBySizeIt; + + FreeBlockInfo(OffsetType _Size) : Size(_Size){} + }; + + public: + VariableSizeAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator) : + m_MaxSize(MaxSize), + m_FreeSize(MaxSize), + m_FreeBlocksByOffset( STD_ALLOCATOR_RAW_MEM(TFreeBlocksByOffsetMap::value_type, Allocator, "Allocator for map<OffsetType, FreeBlockInfo>") ), + m_FreeBlocksBySize( STD_ALLOCATOR_RAW_MEM(TFreeBlocksBySizeMap::value_type, Allocator, "Allocator for multimap<OffsetType, TFreeBlocksByOffsetMap::iterator>") ) + { + // Insert single maximum-size block + AddNewBlock(0, m_MaxSize); + +#ifdef _DEBUG + DbgVerifyList(); +#endif + } + + ~VariableSizeAllocationsManager() + { +#ifdef _DEBUG + if( !m_FreeBlocksByOffset.empty() || !m_FreeBlocksBySize.empty() ) + { + VERIFY(m_FreeBlocksByOffset.size() == 1, "Single free block is expected"); + VERIFY(m_FreeBlocksByOffset.begin()->first == 0, "Head chunk offset is expected to be 0"); + VERIFY(m_FreeBlocksByOffset.begin()->second.Size == m_MaxSize, "Head chunk size is expected to be ", m_MaxSize); + VERIFY_EXPR(m_FreeBlocksByOffset.begin()->second.OrderBySizeIt == m_FreeBlocksBySize.begin()); + VERIFY(m_FreeBlocksBySize.size() == m_FreeBlocksByOffset.size(), "Sizes of the two maps must be equal"); + + VERIFY(m_FreeBlocksBySize.size() == 1, "Single free block is expected"); + VERIFY(m_FreeBlocksBySize.begin()->first == m_MaxSize, "Head chunk size is expected to be ", m_MaxSize); + VERIFY(m_FreeBlocksBySize.begin()->second == m_FreeBlocksByOffset.begin(), "Incorrect first block"); + } +#endif + } + + VariableSizeAllocationsManager(VariableSizeAllocationsManager&& rhs) : + m_FreeBlocksByOffset(std::move(rhs.m_FreeBlocksByOffset)), + m_FreeBlocksBySize(std::move(rhs.m_FreeBlocksBySize)), + m_MaxSize(rhs.m_MaxSize), + m_FreeSize(rhs.m_FreeSize) + { + //rhs.m_MaxSize = 0; - const + rhs.m_FreeSize = 0; + } + + VariableSizeAllocationsManager& operator = (VariableSizeAllocationsManager&& rhs) = default; + VariableSizeAllocationsManager(const VariableSizeAllocationsManager&) = delete; + VariableSizeAllocationsManager& operator = (const VariableSizeAllocationsManager&) = delete; + + OffsetType Allocate(OffsetType Size) + { + VERIFY_EXPR(Size != 0); + if(m_FreeSize < Size) + return InvalidOffset; + + // Get the first block that is large enough to encompass Size bytes + // lower_bound() returns an iterator pointing to the first element that + // is not less (i.e. >= ) than key + auto SmallestBlockItIt = m_FreeBlocksBySize.lower_bound(Size); + if(SmallestBlockItIt == m_FreeBlocksBySize.end()) + return InvalidOffset; + + auto SmallestBlockIt = SmallestBlockItIt->second; + VERIFY_EXPR(Size <= SmallestBlockIt->second.Size); + VERIFY_EXPR(SmallestBlockIt->second.Size == SmallestBlockItIt->first); + + // SmallestBlockIt.Offset + // | | + // |<------SmallestBlockIt.Size------>| + // |<------Size------>|<---NewSize--->| + // | | + // Offset NewOffset + // + auto Offset = SmallestBlockIt->first; + auto NewOffset = Offset + Size; + auto NewSize = SmallestBlockIt->second.Size - Size; + VERIFY_EXPR(SmallestBlockItIt == SmallestBlockIt->second.OrderBySizeIt); + m_FreeBlocksBySize.erase(SmallestBlockItIt); + m_FreeBlocksByOffset.erase(SmallestBlockIt); + if (NewSize > 0) + { + AddNewBlock(NewOffset, NewSize); + } + + m_FreeSize -= Size; + +#ifdef _DEBUG + DbgVerifyList(); +#endif + return Offset; + } + + void Free(OffsetType Offset, OffsetType Size) + { + VERIFY_EXPR(Offset+Size <= m_MaxSize); + + // Find the first element whose offset is greater than the specified offset. + // upper_bound() returns an iterator pointing to the first element in the + // container whose key is considered to go after k. + auto NextBlockIt = m_FreeBlocksByOffset.upper_bound(Offset); +#ifdef _DEBUG + { + auto LowBnd = m_FreeBlocksByOffset.lower_bound(Offset); // First element whose offset is >= + // Since zero-size allocations are not allowed, lower bound must always be equal to the upper bound + VERIFY_EXPR(LowBnd == NextBlockIt); + } +#endif + // Block being deallocated must not overlap with the next block + VERIFY_EXPR(NextBlockIt == m_FreeBlocksByOffset.end() || Offset+Size <= NextBlockIt->first); + auto PrevBlockIt = NextBlockIt; + if(PrevBlockIt != m_FreeBlocksByOffset.begin()) + { + --PrevBlockIt; + // Block being deallocated must not overlap with the previous block + VERIFY_EXPR(Offset >= PrevBlockIt->first + PrevBlockIt->second.Size); + } + else + PrevBlockIt = m_FreeBlocksByOffset.end(); + + OffsetType NewSize, NewOffset; + if(PrevBlockIt != m_FreeBlocksByOffset.end() && Offset == PrevBlockIt->first + PrevBlockIt->second.Size) + { + // PrevBlock.Offset Offset + // | | + // |<-----PrevBlock.Size----->|<------Size-------->| + // + NewSize = PrevBlockIt->second.Size + Size; + NewOffset = PrevBlockIt->first; + + if (NextBlockIt != m_FreeBlocksByOffset.end() && Offset + Size == NextBlockIt->first) + { + // PrevBlock.Offset Offset NextBlock.Offset + // | | | + // |<-----PrevBlock.Size----->|<------Size-------->|<-----NextBlock.Size----->| + // + NewSize += NextBlockIt->second.Size; + m_FreeBlocksBySize.erase(PrevBlockIt->second.OrderBySizeIt); + m_FreeBlocksBySize.erase(NextBlockIt->second.OrderBySizeIt); + // Delete the range of two blocks + ++NextBlockIt; + m_FreeBlocksByOffset.erase(PrevBlockIt, NextBlockIt); + } + else + { + // PrevBlock.Offset Offset NextBlock.Offset + // | | | + // |<-----PrevBlock.Size----->|<------Size-------->| ~ ~ ~ |<-----NextBlock.Size----->| + // + m_FreeBlocksBySize.erase(PrevBlockIt->second.OrderBySizeIt); + m_FreeBlocksByOffset.erase(PrevBlockIt); + } + } + else if (NextBlockIt != m_FreeBlocksByOffset.end() && Offset + Size == NextBlockIt->first) + { + // PrevBlock.Offset Offset NextBlock.Offset + // | | | + // |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->|<-----NextBlock.Size----->| + // + NewSize = Size + NextBlockIt->second.Size; + NewOffset = Offset; + m_FreeBlocksBySize.erase(NextBlockIt->second.OrderBySizeIt); + m_FreeBlocksByOffset.erase(NextBlockIt); + } + else + { + // PrevBlock.Offset Offset NextBlock.Offset + // | | | + // |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->| ~ ~ ~ |<-----NextBlock.Size----->| + // + NewSize = Size; + NewOffset = Offset; + } + + AddNewBlock(NewOffset, NewSize); + + m_FreeSize += Size; +#ifdef _DEBUG + DbgVerifyList(); +#endif + } + + OffsetType GetMaxSize()const{return m_MaxSize;} + bool IsFull()const{ return m_FreeSize==0; }; + bool IsEmpty()const{ return m_FreeSize==m_MaxSize; }; + OffsetType GetFreeSize()const{return m_FreeSize;} + +#ifdef _DEBUG + size_t DbgGetNumFreeBlocks()const{return m_FreeBlocksByOffset.size();} +#endif + + private: + void AddNewBlock(OffsetType Offset, OffsetType Size) + { + auto NewBlockIt = m_FreeBlocksByOffset.emplace(Offset, Size); + VERIFY_EXPR(NewBlockIt.second); + auto OrderIt = m_FreeBlocksBySize.emplace(Size, NewBlockIt.first); + NewBlockIt.first->second.OrderBySizeIt = OrderIt; + } + + +#ifdef _DEBUG + void DbgVerifyList() + { + OffsetType TotalFreeSize = 0; + + auto BlockIt = m_FreeBlocksByOffset.begin(); + auto PrevBlockIt = m_FreeBlocksByOffset.end(); + VERIFY_EXPR(m_FreeBlocksByOffset.size() == m_FreeBlocksBySize.size()); + while (BlockIt != m_FreeBlocksByOffset.end()) + { + VERIFY_EXPR(BlockIt->first >= 0 && BlockIt->first + BlockIt->second.Size <= m_MaxSize); + VERIFY_EXPR(BlockIt == BlockIt->second.OrderBySizeIt->second); + VERIFY_EXPR(BlockIt->second.Size == BlockIt->second.OrderBySizeIt->first); + // PrevBlock.Offset BlockIt.first + // | | + // ~ ~ |<-----PrevBlock.Size----->| ~ ~ ~ |<------Size-------->| ~ ~ ~ + // + VERIFY(PrevBlockIt == m_FreeBlocksByOffset.end() || BlockIt->first > PrevBlockIt->first + PrevBlockIt->second.Size, "Unmerged adjacent or overlapping blocks detected" ); + TotalFreeSize += BlockIt->second.Size; + + PrevBlockIt = BlockIt; + ++BlockIt; + } + + auto OrderIt = m_FreeBlocksBySize.begin(); + while (OrderIt != m_FreeBlocksBySize.end()) + { + VERIFY_EXPR(OrderIt->first == OrderIt->second->second.Size); + ++OrderIt; + } + + VERIFY_EXPR(TotalFreeSize == m_FreeSize); + } +#endif + + TFreeBlocksByOffsetMap m_FreeBlocksByOffset; + TFreeBlocksBySizeMap m_FreeBlocksBySize; + + const OffsetType m_MaxSize = 0; + OffsetType m_FreeSize = 0; + }; +} diff --git a/Graphics/GraphicsTools/include/VariableSizeGPUAllocationsManager.h b/Graphics/GraphicsTools/include/VariableSizeGPUAllocationsManager.h new file mode 100644 index 00000000..04a347d3 --- /dev/null +++ b/Graphics/GraphicsTools/include/VariableSizeGPUAllocationsManager.h @@ -0,0 +1,90 @@ +/* Copyright 2015-2017 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#pragma once + +#include <deque> +#include "VariableSizeAllocationsManager.h" +#include "STDAllocator.h" + +namespace Diligent +{ + // Class extends basic variable-size memory block allocator by deferring deallocation + // of freed blocks untill the corresponding frame is completed + class VariableSizeGPUAllocationsManager : public VariableSizeAllocationsManager + { + private: + struct FreedAllocationInfo + { + OffsetType Offset; + OffsetType Size; + Uint64 FrameNumber; + FreedAllocationInfo(OffsetType _Offset, OffsetType _Size, Uint64 _FrameNumber) : + Offset(_Offset), Size(_Size), FrameNumber(_FrameNumber) + {} + }; + + public: + VariableSizeGPUAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator) : + VariableSizeAllocationsManager(MaxSize, Allocator), + m_StaleAllocations(0, FreedAllocationInfo(0,0,0), STD_ALLOCATOR_RAW_MEM(FreedAllocationInfo, Allocator, "Allocator for deque< FreedAllocationInfo>" )) + {} + + ~VariableSizeGPUAllocationsManager() + { + VERIFY(m_StaleAllocations.empty(), "Not all stale allocations released"); + } + + // = default causes compiler error when instantiating std::vector::emplace_back() in Visual Studio 2015 (Version 14.0.23107.0 D14REL) + VariableSizeGPUAllocationsManager(VariableSizeGPUAllocationsManager&& rhs) : + VariableSizeAllocationsManager(std::move(rhs)), + m_StaleAllocations(std::move(rhs.m_StaleAllocations)) + { + } + + VariableSizeGPUAllocationsManager& operator = (VariableSizeGPUAllocationsManager&& rhs) = default; + VariableSizeGPUAllocationsManager(const VariableSizeGPUAllocationsManager&) = delete; + VariableSizeGPUAllocationsManager& operator = (const VariableSizeGPUAllocationsManager&) = delete; + + void Free(OffsetType Offset, OffsetType Size, Uint64 FrameNumber) + { + // Do not release the block immediately, but add + // it to the queue instead + m_StaleAllocations.emplace_back(Offset, Size, FrameNumber); + } + + void ReleaseCompletedFrames(Uint64 NumCompletedFrames) + { + // Free all allocations from the beginning of the queue that belong to completed frames + while(!m_StaleAllocations.empty() && m_StaleAllocations.front().FrameNumber < NumCompletedFrames) + { + auto &OldestAllocation = m_StaleAllocations.front(); + VariableSizeAllocationsManager::Free(OldestAllocation.Offset, OldestAllocation.Size); + m_StaleAllocations.pop_front(); + } + } + + private: + std::deque< FreedAllocationInfo, STDAllocatorRawMem<FreedAllocationInfo> > m_StaleAllocations; + }; +} diff --git a/Graphics/GraphicsTools/include/pch.h b/Graphics/GraphicsTools/include/pch.h index 41fa3c3b..690233d1 100644 --- a/Graphics/GraphicsTools/include/pch.h +++ b/Graphics/GraphicsTools/include/pch.h @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/src/BasicShaderSourceStreamFactory.cpp b/Graphics/GraphicsTools/src/BasicShaderSourceStreamFactory.cpp index e15635e8..6c1db669 100644 --- a/Graphics/GraphicsTools/src/BasicShaderSourceStreamFactory.cpp +++ b/Graphics/GraphicsTools/src/BasicShaderSourceStreamFactory.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/src/GraphicsUtilities.cpp b/Graphics/GraphicsTools/src/GraphicsUtilities.cpp index f3a7d873..e0ae1dce 100644 --- a/Graphics/GraphicsTools/src/GraphicsUtilities.cpp +++ b/Graphics/GraphicsTools/src/GraphicsUtilities.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/Graphics/GraphicsTools/src/pch.cpp b/Graphics/GraphicsTools/src/pch.cpp index 997e0f4a..d5f45c6a 100644 --- a/Graphics/GraphicsTools/src/pch.cpp +++ b/Graphics/GraphicsTools/src/pch.cpp @@ -1,4 +1,4 @@ -/* Copyright 2015-2016 Egor Yusov +/* Copyright 2015-2017 Egor Yusov * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. |
