summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-08-08 00:48:50 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-08-08 00:48:50 +0000
commitbe9345461894a67484fe2f217f86a8e68b2737aa (patch)
tree4b8c375c008a80655e328a848d76dc42259fa09e /Graphics/GraphicsEngineD3D12
parentAdded render pass test references stubs for D3D12 and GL (diff)
downloadDiligentCore-be9345461894a67484fe2f217f86a8e68b2737aa.tar.gz
DiligentCore-be9345461894a67484fe2f217f86a8e68b2737aa.zip
D3D12 backend: added attachment load/store op conversions to D3D12 types
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.hpp4
-rw-r--r--Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp31
2 files changed, 35 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.hpp b/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.hpp
index bdaa3f5e..89e52955 100644
--- a/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.hpp
+++ b/Graphics/GraphicsEngineD3D12/include/D3D12TypeConversions.hpp
@@ -31,6 +31,7 @@
/// Type conversion routines
#include "GraphicsTypes.h"
+#include "RenderPass.h"
namespace Diligent
{
@@ -71,4 +72,7 @@ RESOURCE_STATE D3D12ResourceStatesToResourceStateFlags(D3D12_RESOURCE
D3D12_QUERY_HEAP_TYPE QueryTypeToD3D12QueryHeapType(QUERY_TYPE QueryType);
D3D12_QUERY_TYPE QueryTypeToD3D12QueryType(QUERY_TYPE QueryType);
+D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE AttachmentLoadOpToD3D12BeginningAccessType(ATTACHMENT_LOAD_OP LoadOp);
+D3D12_RENDER_PASS_ENDING_ACCESS_TYPE AttachmentStoreOpToD3D12EndingAccessType(ATTACHMENT_STORE_OP StoreOp);
+
} // namespace Diligent
diff --git a/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp b/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp
index 6043cac5..04304938 100644
--- a/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp
+++ b/Graphics/GraphicsEngineD3D12/src/D3D12TypeConversions.cpp
@@ -502,4 +502,35 @@ D3D12_QUERY_HEAP_TYPE QueryTypeToD3D12QueryHeapType(QUERY_TYPE QueryType)
// clang-format on
}
+D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE AttachmentLoadOpToD3D12BeginningAccessType(ATTACHMENT_LOAD_OP LoadOp)
+{
+ // clang-format off
+ switch (LoadOp)
+ {
+ case ATTACHMENT_LOAD_OP_LOAD: return D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE;
+ case ATTACHMENT_LOAD_OP_CLEAR: return D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR;
+ case ATTACHMENT_LOAD_OP_DISCARD: return D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD;
+
+ default:
+ UNEXPECTED("Unexpected attachment load op");
+ return D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE;
+ }
+ // clang-format on
+}
+
+D3D12_RENDER_PASS_ENDING_ACCESS_TYPE AttachmentStoreOpToD3D12EndingAccessType(ATTACHMENT_STORE_OP StoreOp)
+{
+ // clang-format off
+ switch (StoreOp)
+ {
+ case ATTACHMENT_STORE_OP_STORE: return D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE;
+ case ATTACHMENT_STORE_OP_DISCARD: return D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD;
+
+ default:
+ UNEXPECTED("Unexpected attachment store op");
+ return D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE;
+ }
+ // clang-format on
+}
+
} // namespace Diligent