From 68c7d5cda2d6f2eb7bfb3a7e15860eb3ded25424 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 4 Apr 2023 18:00:16 -0400 Subject: Preliminary support for realtime clock (#2772) * #include an absolute path didn't work - because paths were taken to always be relative. * Initial support for realtime clock. * Add realtime-clock render feature where seems appropriate. * Fixes to make NVAPI compile properly. Change realtime-clock.slang check to use maths that can't overflow. --- tools/gfx/d3d12/d3d12-device.cpp | 9 +++++++++ tools/gfx/d3d12/d3d12-pipeline-state.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'tools/gfx/d3d12') diff --git a/tools/gfx/d3d12/d3d12-device.cpp b/tools/gfx/d3d12/d3d12-device.cpp index 8f1a3e366..312c81d75 100644 --- a/tools/gfx/d3d12/d3d12-device.cpp +++ b/tools/gfx/d3d12/d3d12-device.cpp @@ -24,6 +24,10 @@ # define ENABLE_DEBUG_LAYER 0 #endif +#ifdef GFX_NVAPI +# include "../nvapi/nvapi-include.h" +#endif + namespace gfx { namespace d3d12 @@ -597,6 +601,11 @@ Result DeviceImpl::initialize(const Desc& desc) m_features.add("atomic-float"); } + // If we have NVAPI well assume we have realtime clock + { + m_features.add("realtime-clock"); + } + m_nvapi = true; #endif } diff --git a/tools/gfx/d3d12/d3d12-pipeline-state.cpp b/tools/gfx/d3d12/d3d12-pipeline-state.cpp index adfdcd518..35313f676 100644 --- a/tools/gfx/d3d12/d3d12-pipeline-state.cpp +++ b/tools/gfx/d3d12/d3d12-pipeline-state.cpp @@ -240,7 +240,7 @@ Result PipelineStateImpl::ensureAPIPipelineStateCreated() SIZE_T(programImpl->m_shaders[0].code.getCount()) }; #ifdef GFX_NVAPI - if (m_nvapi) + if (m_device->m_nvapi) { // Also fill the extension structure. // Use the same UAV slot index and register space that are declared in the shader. -- cgit v1.2.3