summaryrefslogtreecommitdiffstats
path: root/tools/render-test/main.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-04-02 19:59:33 -0400
committerTim Foley <tfoleyNV@users.noreply.github.com>2018-04-02 16:59:33 -0700
commit38d5ef4764e9271ce2360f42b0759a236cddd9fe (patch)
tree6c8eafb72eb997167dd77e3d1d5abc3582c5789a /tools/render-test/main.cpp
parent5a0273848aa4b854bb3c99a81701b044a8929bf8 (diff)
Feature/dx12 (#469)
* Fix signed/unsigned comparison warning. * Split out d3d functions that will work across dx11 and 12. * Improve slang-test/README.md around command line options. * Make Guid comparison honor alignment for comparisons, such that mechanism work on architectures that can only do aligned accesses. * Initial setup of D3D12 Renderer, with presentFrame and clearFrame. * More support for D3D12 * Added FreeList * Added D3D12CircularResourceHeap * First attempt at createBuffer * First pass at map/unmap. * First pass binding vertex/constant buffers, and setting up InputLayout. Note that memory is not kept in scope on binding yet. * First pass of D3DDescriptorHeap * Small tidy up in render-d3d11. Added D3DDescriptorHeap to project. * First pass at D3D12 bind state. * Fix typos in D3D12Resource * Tidy up Dx11 render binding a little to match more with Dx12 style. * First pass at Dx12 BindingState * Handling of the command list d3d12. Support for submitGpuWork and waitForGpu. * First attempt at Dx12 capture of backbuffer to file. * First attempt at D3D12 binding for graphics. * D3D12 setup viewport etc - does now render triangle in render0.hlsl. * First pass at support for compute on D3D12Renderer * Use spaces over tabs in D3DUtil * Tabs to spaces in D3D12DescriptorHeap * Convert tab->spaces on render-d3d12.cpp
Diffstat (limited to 'tools/render-test/main.cpp')
-rw-r--r--tools/render-test/main.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/render-test/main.cpp b/tools/render-test/main.cpp
index b333e57bd..6233b7617 100644
--- a/tools/render-test/main.cpp
+++ b/tools/render-test/main.cpp
@@ -3,6 +3,7 @@
#include "options.h"
#include "render.h"
#include "render-d3d11.h"
+#include "render-d3d12.h"
#include "render-gl.h"
#include "render-vk.h"
@@ -334,7 +335,11 @@ SlangResult innerMain(int argc, char** argv)
nativeLanguage = SLANG_SOURCE_LANGUAGE_HLSL;
break;
- // TODO: `RendererID::D3D12`
+ case RendererID::D3D12:
+ renderer = createD3D12Renderer();
+ slangTarget = SLANG_HLSL;
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_HLSL;
+ break;
case RendererID::GL:
renderer = createGLRenderer();
@@ -412,6 +417,11 @@ SlangResult innerMain(int argc, char** argv)
// If we are in a mode where output is requested, we need to snapshot the back buffer here
if (gOptions.outputPath)
{
+ // Submit the work
+ renderer->submitGpuWork();
+ // Wait until everything is complete
+ renderer->waitForGpu();
+
if (gOptions.shaderType == ShaderProgramType::Compute || gOptions.shaderType == ShaderProgramType::GraphicsCompute)
renderer->serializeOutput(app.getBindingState(), gOptions.outputPath);
else