From 3f454feae201906ed8fc28a7c7bf83019765d244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Wed, 13 Dec 2017 17:59:47 -0800 Subject: [PATCH] D3D12: More optimal indirect command layout. --- src/renderer_d3d12.cpp | 4 ++-- src/renderer_d3d12.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 46ca3637e..239dcdf03 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -3555,12 +3555,12 @@ data.NumQualityLevels = 0; D3D12_INDIRECT_ARGUMENT_DESC drawArgDesc[] = { - { D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, { { Rdt::CBV } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 0 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 1 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 2 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 3 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 4 } } }, + { D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, { { Rdt::CBV } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_DRAW, { { 0 } } }, }; @@ -3580,13 +3580,13 @@ data.NumQualityLevels = 0; D3D12_INDIRECT_ARGUMENT_DESC drawIndexedArgDesc[] = { - { D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, { { Rdt::CBV } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 0 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 1 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 2 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 3 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, { { 4 } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW, { { 0 } } }, + { D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, { { Rdt::CBV } } }, { D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED, { { 0 } } }, }; diff --git a/src/renderer_d3d12.h b/src/renderer_d3d12.h index 06e576d23..04ede7a7d 100644 --- a/src/renderer_d3d12.h +++ b/src/renderer_d3d12.h @@ -419,16 +419,16 @@ namespace bgfx { namespace d3d12 struct DrawIndirectCommand { - D3D12_GPU_VIRTUAL_ADDRESS cbv; D3D12_VERTEX_BUFFER_VIEW vbv[BGFX_CONFIG_MAX_VERTEX_STREAMS+1]; + D3D12_GPU_VIRTUAL_ADDRESS cbv; D3D12_DRAW_ARGUMENTS draw; }; struct DrawIndexedIndirectCommand { - D3D12_GPU_VIRTUAL_ADDRESS cbv; D3D12_VERTEX_BUFFER_VIEW vbv[BGFX_CONFIG_MAX_VERTEX_STREAMS+1]; D3D12_INDEX_BUFFER_VIEW ibv; + D3D12_GPU_VIRTUAL_ADDRESS cbv; D3D12_DRAW_INDEXED_ARGUMENTS drawIndexed; };