From 47565688e7202dcc012f127a50876b3885d534c8 Mon Sep 17 00:00:00 2001 From: patrikjuvonen <22572159+patrikjuvonen@users.noreply.github.com> Date: Mon, 19 Dec 2022 18:27:13 +0200 Subject: [PATCH] Update nvapi from r510 to r525 --- vendor/nvapi/NvApiDriverSettings.c | 970 ++++++++++++ vendor/nvapi/NvApiDriverSettings.h | 118 +- vendor/nvapi/amd64/nvapi64.lib | Bin 848094 -> 880026 bytes vendor/nvapi/nvHLSLExtns.h | 2206 ++++++++++++++++++++++++++++ vendor/nvapi/nvHLSLExtnsInternal.h | 767 ++++++++++ vendor/nvapi/nvShaderExtnEnums.h | 141 ++ vendor/nvapi/nvapi.h | 1350 ++++++++++++++++- vendor/nvapi/nvapi_lite_common.h | 71 + vendor/nvapi/x86/nvapi.lib | Bin 386478 -> 394740 bytes 9 files changed, 5531 insertions(+), 92 deletions(-) create mode 100644 vendor/nvapi/NvApiDriverSettings.c create mode 100644 vendor/nvapi/nvHLSLExtns.h create mode 100644 vendor/nvapi/nvHLSLExtnsInternal.h create mode 100644 vendor/nvapi/nvShaderExtnEnums.h diff --git a/vendor/nvapi/NvApiDriverSettings.c b/vendor/nvapi/NvApiDriverSettings.c new file mode 100644 index 0000000000..2fb52dd755 --- /dev/null +++ b/vendor/nvapi/NvApiDriverSettings.c @@ -0,0 +1,970 @@ +/***************************************************************************\ +|* *| +|* Copyright NVIDIA Corporation. All rights reserved. *| +|* *| +|* NOTICE TO USER: *| +|* *| +|* This source code is subject to NVIDIA ownership rights under U.S. *| +|* and international Copyright laws. Users and possessors of this *| +|* source code are hereby granted a nonexclusive, royalty-free *| +|* license to use this code in individual and commercial software. *| +|* *| +|* NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE *| +|* CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR *| +|* IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH *| +|* REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF *| +|* MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR *| +|* PURPOSE. IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, *| +|* INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES *| +|* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN *| +|* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING *| +|* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE *| +|* CODE. *| +|* *| +|* U.S. Government End Users. This source code is a "commercial item" *| +|* as that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting *| +|* of "commercial computer software" and "commercial computer software *| +|* documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) *| +|* and is provided to the U.S. Government only as a commercial end item. *| +|* Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through *| +|* 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the *| +|* source code with only those rights set forth herein. *| +|* *| +|* Any use of this source code in individual and commercial software must *| +|* include, in the user documentation and internal comments to the code, *| +|* the above Disclaimer and U.S. Government End Users Notice. *| +|* *| +|* *| +\***************************************************************************/ + +#include "NvApiDriverSettings.h" + +EValues_OGL_AA_LINE_GAMMA g_valuesOGL_AA_LINE_GAMMA[OGL_AA_LINE_GAMMA_NUM_VALUES] = +{ + OGL_AA_LINE_GAMMA_DISABLED, + OGL_AA_LINE_GAMMA_ENABLED, + OGL_AA_LINE_GAMMA_MIN, + OGL_AA_LINE_GAMMA_MAX, +}; + +EValues_OGL_CPL_GDI_COMPATIBILITY g_valuesOGL_CPL_GDI_COMPATIBILITY[OGL_CPL_GDI_COMPATIBILITY_NUM_VALUES] = +{ + OGL_CPL_GDI_COMPATIBILITY_PREFER_DISABLED, + OGL_CPL_GDI_COMPATIBILITY_PREFER_ENABLED, + OGL_CPL_GDI_COMPATIBILITY_AUTO, +}; + +EValues_OGL_CPL_PREFER_DXPRESENT g_valuesOGL_CPL_PREFER_DXPRESENT[OGL_CPL_PREFER_DXPRESENT_NUM_VALUES] = +{ + OGL_CPL_PREFER_DXPRESENT_PREFER_DISABLED, + OGL_CPL_PREFER_DXPRESENT_PREFER_ENABLED, + OGL_CPL_PREFER_DXPRESENT_AUTO, +}; + +EValues_OGL_DEEP_COLOR_SCANOUT g_valuesOGL_DEEP_COLOR_SCANOUT[OGL_DEEP_COLOR_SCANOUT_NUM_VALUES] = +{ + OGL_DEEP_COLOR_SCANOUT_DISABLE, + OGL_DEEP_COLOR_SCANOUT_ENABLE, +}; + +EValues_OGL_DEFAULT_SWAP_INTERVAL g_valuesOGL_DEFAULT_SWAP_INTERVAL[OGL_DEFAULT_SWAP_INTERVAL_NUM_VALUES] = +{ + OGL_DEFAULT_SWAP_INTERVAL_TEAR, + OGL_DEFAULT_SWAP_INTERVAL_VSYNC_ONE, + OGL_DEFAULT_SWAP_INTERVAL_VSYNC, + OGL_DEFAULT_SWAP_INTERVAL_VALUE_MASK, + OGL_DEFAULT_SWAP_INTERVAL_FORCE_MASK, + OGL_DEFAULT_SWAP_INTERVAL_FORCE_OFF, + OGL_DEFAULT_SWAP_INTERVAL_FORCE_ON, + OGL_DEFAULT_SWAP_INTERVAL_APP_CONTROLLED, + OGL_DEFAULT_SWAP_INTERVAL_DISABLE, +}; + +EValues_OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL g_valuesOGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL[OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_NUM_VALUES] = +{ + OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ZERO_SCANLINES, + OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ONE_FULL_FRAME_OF_SCANLINES, +}; + +EValues_OGL_DEFAULT_SWAP_INTERVAL_SIGN g_valuesOGL_DEFAULT_SWAP_INTERVAL_SIGN[OGL_DEFAULT_SWAP_INTERVAL_SIGN_NUM_VALUES] = +{ + OGL_DEFAULT_SWAP_INTERVAL_SIGN_POSITIVE, + OGL_DEFAULT_SWAP_INTERVAL_SIGN_NEGATIVE, +}; + +EValues_OGL_EVENT_LOG_SEVERITY_THRESHOLD g_valuesOGL_EVENT_LOG_SEVERITY_THRESHOLD[OGL_EVENT_LOG_SEVERITY_THRESHOLD_NUM_VALUES] = +{ + OGL_EVENT_LOG_SEVERITY_THRESHOLD_DISABLE, + OGL_EVENT_LOG_SEVERITY_THRESHOLD_CRITICAL, + OGL_EVENT_LOG_SEVERITY_THRESHOLD_WARNING, + OGL_EVENT_LOG_SEVERITY_THRESHOLD_INFORMATION, + OGL_EVENT_LOG_SEVERITY_THRESHOLD_ALL, +}; + +EValues_OGL_FORCE_BLIT g_valuesOGL_FORCE_BLIT[OGL_FORCE_BLIT_NUM_VALUES] = +{ + OGL_FORCE_BLIT_ON, + OGL_FORCE_BLIT_OFF, +}; + +EValues_OGL_FORCE_STEREO g_valuesOGL_FORCE_STEREO[OGL_FORCE_STEREO_NUM_VALUES] = +{ + OGL_FORCE_STEREO_OFF, + OGL_FORCE_STEREO_ON, +}; + +const wchar_t * g_valuesOGL_IMPLICIT_GPU_AFFINITY[OGL_IMPLICIT_GPU_AFFINITY_NUM_VALUES] = +{ + OGL_IMPLICIT_GPU_AFFINITY_AUTOSELECT +}; + +EValues_OGL_OVERLAY_PIXEL_TYPE g_valuesOGL_OVERLAY_PIXEL_TYPE[OGL_OVERLAY_PIXEL_TYPE_NUM_VALUES] = +{ + OGL_OVERLAY_PIXEL_TYPE_NONE, + OGL_OVERLAY_PIXEL_TYPE_CI, + OGL_OVERLAY_PIXEL_TYPE_RGBA, + OGL_OVERLAY_PIXEL_TYPE_CI_AND_RGBA, +}; + +EValues_OGL_OVERLAY_SUPPORT g_valuesOGL_OVERLAY_SUPPORT[OGL_OVERLAY_SUPPORT_NUM_VALUES] = +{ + OGL_OVERLAY_SUPPORT_OFF, + OGL_OVERLAY_SUPPORT_ON, + OGL_OVERLAY_SUPPORT_FORCE_SW, +}; + +EValues_OGL_QUALITY_ENHANCEMENTS g_valuesOGL_QUALITY_ENHANCEMENTS[OGL_QUALITY_ENHANCEMENTS_NUM_VALUES] = +{ + OGL_QUALITY_ENHANCEMENTS_HQUAL, + OGL_QUALITY_ENHANCEMENTS_QUAL, + OGL_QUALITY_ENHANCEMENTS_PERF, + OGL_QUALITY_ENHANCEMENTS_HPERF, +}; + +EValues_OGL_SINGLE_BACKDEPTH_BUFFER g_valuesOGL_SINGLE_BACKDEPTH_BUFFER[OGL_SINGLE_BACKDEPTH_BUFFER_NUM_VALUES] = +{ + OGL_SINGLE_BACKDEPTH_BUFFER_DISABLE, + OGL_SINGLE_BACKDEPTH_BUFFER_ENABLE, + OGL_SINGLE_BACKDEPTH_BUFFER_USE_HW_DEFAULT, +}; + +EValues_OGL_SLI_CFR_MODE g_valuesOGL_SLI_CFR_MODE[OGL_SLI_CFR_MODE_NUM_VALUES] = +{ + OGL_SLI_CFR_MODE_DISABLE, + OGL_SLI_CFR_MODE_ENABLE, + OGL_SLI_CFR_MODE_CLASSIC_SFR, +}; + +EValues_OGL_SLI_MULTICAST g_valuesOGL_SLI_MULTICAST[OGL_SLI_MULTICAST_NUM_VALUES] = +{ + OGL_SLI_MULTICAST_DISABLE, + OGL_SLI_MULTICAST_ENABLE, + OGL_SLI_MULTICAST_FORCE_DISABLE, + OGL_SLI_MULTICAST_ALLOW_MOSAIC, +}; + +EValues_OGL_THREAD_CONTROL g_valuesOGL_THREAD_CONTROL[OGL_THREAD_CONTROL_NUM_VALUES] = +{ + OGL_THREAD_CONTROL_ENABLE, + OGL_THREAD_CONTROL_DISABLE, +}; + +EValues_OGL_TMON_LEVEL g_valuesOGL_TMON_LEVEL[OGL_TMON_LEVEL_NUM_VALUES] = +{ + OGL_TMON_LEVEL_DISABLE, + OGL_TMON_LEVEL_CRITICAL, + OGL_TMON_LEVEL_WARNING, + OGL_TMON_LEVEL_INFORMATION, + OGL_TMON_LEVEL_MOST, + OGL_TMON_LEVEL_VERBOSE, +}; + +EValues_OGL_TRIPLE_BUFFER g_valuesOGL_TRIPLE_BUFFER[OGL_TRIPLE_BUFFER_NUM_VALUES] = +{ + OGL_TRIPLE_BUFFER_DISABLED, + OGL_TRIPLE_BUFFER_ENABLED, +}; + +EValues_AA_BEHAVIOR_FLAGS g_valuesAA_BEHAVIOR_FLAGS[AA_BEHAVIOR_FLAGS_NUM_VALUES] = +{ + AA_BEHAVIOR_FLAGS_NONE, + AA_BEHAVIOR_FLAGS_TREAT_OVERRIDE_AS_APP_CONTROLLED, + AA_BEHAVIOR_FLAGS_TREAT_OVERRIDE_AS_ENHANCE, + AA_BEHAVIOR_FLAGS_DISABLE_OVERRIDE, + AA_BEHAVIOR_FLAGS_TREAT_ENHANCE_AS_APP_CONTROLLED, + AA_BEHAVIOR_FLAGS_TREAT_ENHANCE_AS_OVERRIDE, + AA_BEHAVIOR_FLAGS_DISABLE_ENHANCE, + AA_BEHAVIOR_FLAGS_MAP_VCAA_TO_MULTISAMPLING, + AA_BEHAVIOR_FLAGS_SLI_DISABLE_TRANSPARENCY_SUPERSAMPLING, + AA_BEHAVIOR_FLAGS_DISABLE_CPLAA, + AA_BEHAVIOR_FLAGS_SKIP_RT_DIM_CHECK_FOR_ENHANCE, + AA_BEHAVIOR_FLAGS_DISABLE_SLIAA, + AA_BEHAVIOR_FLAGS_DEFAULT, + AA_BEHAVIOR_FLAGS_AA_RT_BPP_DIV_4, + AA_BEHAVIOR_FLAGS_AA_RT_BPP_DIV_4_SHIFT, + AA_BEHAVIOR_FLAGS_NON_AA_RT_BPP_DIV_4, + AA_BEHAVIOR_FLAGS_NON_AA_RT_BPP_DIV_4_SHIFT, + AA_BEHAVIOR_FLAGS_MASK, +}; + +EValues_AA_MODE_ALPHATOCOVERAGE g_valuesAA_MODE_ALPHATOCOVERAGE[AA_MODE_ALPHATOCOVERAGE_NUM_VALUES] = +{ + AA_MODE_ALPHATOCOVERAGE_MODE_MASK, + AA_MODE_ALPHATOCOVERAGE_MODE_OFF, + AA_MODE_ALPHATOCOVERAGE_MODE_ON, + AA_MODE_ALPHATOCOVERAGE_MODE_MAX, +}; + +EValues_AA_MODE_GAMMACORRECTION g_valuesAA_MODE_GAMMACORRECTION[AA_MODE_GAMMACORRECTION_NUM_VALUES] = +{ + AA_MODE_GAMMACORRECTION_MASK, + AA_MODE_GAMMACORRECTION_OFF, + AA_MODE_GAMMACORRECTION_ON_IF_FOS, + AA_MODE_GAMMACORRECTION_ON_ALWAYS, + AA_MODE_GAMMACORRECTION_MAX, + AA_MODE_GAMMACORRECTION_DEFAULT, + AA_MODE_GAMMACORRECTION_DEFAULT_TESLA, + AA_MODE_GAMMACORRECTION_DEFAULT_FERMI, +}; + +EValues_AA_MODE_METHOD g_valuesAA_MODE_METHOD[AA_MODE_METHOD_NUM_VALUES] = +{ + AA_MODE_METHOD_NONE, + AA_MODE_METHOD_SUPERSAMPLE_2X_H, + AA_MODE_METHOD_SUPERSAMPLE_2X_V, + AA_MODE_METHOD_SUPERSAMPLE_1_5X1_5, + AA_MODE_METHOD_FREE_0x03, + AA_MODE_METHOD_FREE_0x04, + AA_MODE_METHOD_SUPERSAMPLE_4X, + AA_MODE_METHOD_SUPERSAMPLE_4X_BIAS, + AA_MODE_METHOD_SUPERSAMPLE_4X_GAUSSIAN, + AA_MODE_METHOD_FREE_0x08, + AA_MODE_METHOD_FREE_0x09, + AA_MODE_METHOD_SUPERSAMPLE_9X, + AA_MODE_METHOD_SUPERSAMPLE_9X_BIAS, + AA_MODE_METHOD_SUPERSAMPLE_16X, + AA_MODE_METHOD_SUPERSAMPLE_16X_BIAS, + AA_MODE_METHOD_MULTISAMPLE_2X_DIAGONAL, + AA_MODE_METHOD_MULTISAMPLE_2X_QUINCUNX, + AA_MODE_METHOD_MULTISAMPLE_4X, + AA_MODE_METHOD_FREE_0x11, + AA_MODE_METHOD_MULTISAMPLE_4X_GAUSSIAN, + AA_MODE_METHOD_MIXEDSAMPLE_4X_SKEWED_4TAP, + AA_MODE_METHOD_FREE_0x14, + AA_MODE_METHOD_FREE_0x15, + AA_MODE_METHOD_MIXEDSAMPLE_6X, + AA_MODE_METHOD_MIXEDSAMPLE_6X_SKEWED_6TAP, + AA_MODE_METHOD_MIXEDSAMPLE_8X, + AA_MODE_METHOD_MIXEDSAMPLE_8X_SKEWED_8TAP, + AA_MODE_METHOD_MIXEDSAMPLE_16X, + AA_MODE_METHOD_MULTISAMPLE_4X_GAMMA, + AA_MODE_METHOD_MULTISAMPLE_16X, + AA_MODE_METHOD_VCAA_32X_8v24, + AA_MODE_METHOD_CORRUPTION_CHECK, + AA_MODE_METHOD_6X_CT, + AA_MODE_METHOD_MULTISAMPLE_2X_DIAGONAL_GAMMA, + AA_MODE_METHOD_SUPERSAMPLE_4X_GAMMA, + AA_MODE_METHOD_MULTISAMPLE_4X_FOSGAMMA, + AA_MODE_METHOD_MULTISAMPLE_2X_DIAGONAL_FOSGAMMA, + AA_MODE_METHOD_SUPERSAMPLE_4X_FOSGAMMA, + AA_MODE_METHOD_MULTISAMPLE_8X, + AA_MODE_METHOD_VCAA_8X_4v4, + AA_MODE_METHOD_VCAA_16X_4v12, + AA_MODE_METHOD_VCAA_16X_8v8, + AA_MODE_METHOD_MIXEDSAMPLE_32X, + AA_MODE_METHOD_SUPERVCAA_64X_4v12, + AA_MODE_METHOD_SUPERVCAA_64X_8v8, + AA_MODE_METHOD_MIXEDSAMPLE_64X, + AA_MODE_METHOD_MIXEDSAMPLE_128X, + AA_MODE_METHOD_COUNT, + AA_MODE_METHOD_METHOD_MASK, + AA_MODE_METHOD_METHOD_MAX, +}; + +EValues_AA_MODE_REPLAY g_valuesAA_MODE_REPLAY[AA_MODE_REPLAY_NUM_VALUES] = +{ + AA_MODE_REPLAY_SAMPLES_MASK, + AA_MODE_REPLAY_SAMPLES_ONE, + AA_MODE_REPLAY_SAMPLES_TWO, + AA_MODE_REPLAY_SAMPLES_FOUR, + AA_MODE_REPLAY_SAMPLES_EIGHT, + AA_MODE_REPLAY_SAMPLES_MAX, + AA_MODE_REPLAY_MODE_MASK, + AA_MODE_REPLAY_MODE_OFF, + AA_MODE_REPLAY_MODE_ALPHA_TEST, + AA_MODE_REPLAY_MODE_PIXEL_KILL, + AA_MODE_REPLAY_MODE_DYN_BRANCH, + AA_MODE_REPLAY_MODE_OPTIMAL, + AA_MODE_REPLAY_MODE_ALL, + AA_MODE_REPLAY_MODE_MAX, + AA_MODE_REPLAY_TRANSPARENCY, + AA_MODE_REPLAY_DISALLOW_TRAA, + AA_MODE_REPLAY_TRANSPARENCY_DEFAULT, + AA_MODE_REPLAY_TRANSPARENCY_DEFAULT_TESLA, + AA_MODE_REPLAY_TRANSPARENCY_DEFAULT_FERMI, + AA_MODE_REPLAY_MASK, +}; + +EValues_AA_MODE_SELECTOR g_valuesAA_MODE_SELECTOR[AA_MODE_SELECTOR_NUM_VALUES] = +{ + AA_MODE_SELECTOR_MASK, + AA_MODE_SELECTOR_APP_CONTROL, + AA_MODE_SELECTOR_OVERRIDE, + AA_MODE_SELECTOR_ENHANCE, + AA_MODE_SELECTOR_MAX, +}; + +EValues_AA_MODE_SELECTOR_SLIAA g_valuesAA_MODE_SELECTOR_SLIAA[AA_MODE_SELECTOR_SLIAA_NUM_VALUES] = +{ + AA_MODE_SELECTOR_SLIAA_DISABLED, + AA_MODE_SELECTOR_SLIAA_ENABLED, +}; + +EValues_ANISO_MODE_LEVEL g_valuesANISO_MODE_LEVEL[ANISO_MODE_LEVEL_NUM_VALUES] = +{ + ANISO_MODE_LEVEL_MASK, + ANISO_MODE_LEVEL_NONE_POINT, + ANISO_MODE_LEVEL_NONE_LINEAR, + ANISO_MODE_LEVEL_MAX, + ANISO_MODE_LEVEL_DEFAULT, +}; + +EValues_ANISO_MODE_SELECTOR g_valuesANISO_MODE_SELECTOR[ANISO_MODE_SELECTOR_NUM_VALUES] = +{ + ANISO_MODE_SELECTOR_MASK, + ANISO_MODE_SELECTOR_APP, + ANISO_MODE_SELECTOR_USER, + ANISO_MODE_SELECTOR_COND, + ANISO_MODE_SELECTOR_MAX, + ANISO_MODE_SELECTOR_DEFAULT, +}; + +EValues_ANSEL_ALLOW g_valuesANSEL_ALLOW[ANSEL_ALLOW_NUM_VALUES] = +{ + ANSEL_ALLOW_DISALLOWED, + ANSEL_ALLOW_ALLOWED, +}; + +EValues_ANSEL_ALLOWLISTED g_valuesANSEL_ALLOWLISTED[ANSEL_ALLOWLISTED_NUM_VALUES] = +{ + ANSEL_ALLOWLISTED_DISALLOWED, + ANSEL_ALLOWLISTED_ALLOWED, +}; + +EValues_ANSEL_ENABLE g_valuesANSEL_ENABLE[ANSEL_ENABLE_NUM_VALUES] = +{ + ANSEL_ENABLE_OFF, + ANSEL_ENABLE_ON, +}; + +EValues_APPLICATION_PROFILE_NOTIFICATION_TIMEOUT g_valuesAPPLICATION_PROFILE_NOTIFICATION_TIMEOUT[APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_NUM_VALUES] = +{ + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_DISABLED, + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_NINE_SECONDS, + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_FIFTEEN_SECONDS, + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_THIRTY_SECONDS, + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_ONE_MINUTE, + APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_TWO_MINUTES, +}; + +EValues_BATTERY_BOOST_APP_FPS g_valuesBATTERY_BOOST_APP_FPS[BATTERY_BOOST_APP_FPS_NUM_VALUES] = +{ + BATTERY_BOOST_APP_FPS_MIN, + BATTERY_BOOST_APP_FPS_MAX, + BATTERY_BOOST_APP_FPS_NO_OVERRIDE, +}; + +EValues_CPL_HIDDEN_PROFILE g_valuesCPL_HIDDEN_PROFILE[CPL_HIDDEN_PROFILE_NUM_VALUES] = +{ + CPL_HIDDEN_PROFILE_DISABLED, + CPL_HIDDEN_PROFILE_ENABLED, +}; + +const wchar_t * g_valuesCUDA_EXCLUDED_GPUS[CUDA_EXCLUDED_GPUS_NUM_VALUES] = +{ + CUDA_EXCLUDED_GPUS_NONE +}; + +const wchar_t * g_valuesD3DOGL_GPU_MAX_POWER[D3DOGL_GPU_MAX_POWER_NUM_VALUES] = +{ + D3DOGL_GPU_MAX_POWER_DEFAULTPOWER +}; + +EValues_EXPORT_PERF_COUNTERS g_valuesEXPORT_PERF_COUNTERS[EXPORT_PERF_COUNTERS_NUM_VALUES] = +{ + EXPORT_PERF_COUNTERS_OFF, + EXPORT_PERF_COUNTERS_ON, +}; + +EValues_EXTERNAL_QUIET_MODE g_valuesEXTERNAL_QUIET_MODE[EXTERNAL_QUIET_MODE_NUM_VALUES] = +{ + EXTERNAL_QUIET_MODE_ON, + EXTERNAL_QUIET_MODE_OFF, +}; + +EValues_FRL_FPS g_valuesFRL_FPS[FRL_FPS_NUM_VALUES] = +{ + FRL_FPS_DISABLED, + FRL_FPS_MIN, + FRL_FPS_MAX, +}; + +EValues_FXAA_ALLOW g_valuesFXAA_ALLOW[FXAA_ALLOW_NUM_VALUES] = +{ + FXAA_ALLOW_DISALLOWED, + FXAA_ALLOW_ALLOWED, +}; + +EValues_FXAA_ENABLE g_valuesFXAA_ENABLE[FXAA_ENABLE_NUM_VALUES] = +{ + FXAA_ENABLE_OFF, + FXAA_ENABLE_ON, +}; + +EValues_FXAA_INDICATOR_ENABLE g_valuesFXAA_INDICATOR_ENABLE[FXAA_INDICATOR_ENABLE_NUM_VALUES] = +{ + FXAA_INDICATOR_ENABLE_OFF, + FXAA_INDICATOR_ENABLE_ON, +}; + +EValues_LATENCY_INDICATOR_AUTOALIGN g_valuesLATENCY_INDICATOR_AUTOALIGN[LATENCY_INDICATOR_AUTOALIGN_NUM_VALUES] = +{ + LATENCY_INDICATOR_AUTOALIGN_DISABLED, + LATENCY_INDICATOR_AUTOALIGN_ENABLED, +}; + +EValues_MCSFRSHOWSPLIT g_valuesMCSFRSHOWSPLIT[MCSFRSHOWSPLIT_NUM_VALUES] = +{ + MCSFRSHOWSPLIT_DISABLED, + MCSFRSHOWSPLIT_ENABLED, +}; + +EValues_NV_QUALITY_UPSCALING g_valuesNV_QUALITY_UPSCALING[NV_QUALITY_UPSCALING_NUM_VALUES] = +{ + NV_QUALITY_UPSCALING_OFF, + NV_QUALITY_UPSCALING_ON, +}; + +EValues_OPTIMUS_MAXAA g_valuesOPTIMUS_MAXAA[OPTIMUS_MAXAA_NUM_VALUES] = +{ + OPTIMUS_MAXAA_MIN, + OPTIMUS_MAXAA_MAX, +}; + +EValues_PHYSXINDICATOR g_valuesPHYSXINDICATOR[PHYSXINDICATOR_NUM_VALUES] = +{ + PHYSXINDICATOR_DISABLED, + PHYSXINDICATOR_ENABLED, +}; + +EValues_PREFERRED_PSTATE g_valuesPREFERRED_PSTATE[PREFERRED_PSTATE_NUM_VALUES] = +{ + PREFERRED_PSTATE_ADAPTIVE, + PREFERRED_PSTATE_PREFER_MAX, + PREFERRED_PSTATE_DRIVER_CONTROLLED, + PREFERRED_PSTATE_PREFER_CONSISTENT_PERFORMANCE, + PREFERRED_PSTATE_PREFER_MIN, + PREFERRED_PSTATE_OPTIMAL_POWER, + PREFERRED_PSTATE_MIN, + PREFERRED_PSTATE_MAX, +}; + +EValues_PREVENT_UI_AF_OVERRIDE g_valuesPREVENT_UI_AF_OVERRIDE[PREVENT_UI_AF_OVERRIDE_NUM_VALUES] = +{ + PREVENT_UI_AF_OVERRIDE_OFF, + PREVENT_UI_AF_OVERRIDE_ON, +}; + +EValues_SHIM_MCCOMPAT g_valuesSHIM_MCCOMPAT[SHIM_MCCOMPAT_NUM_VALUES] = +{ + SHIM_MCCOMPAT_INTEGRATED, + SHIM_MCCOMPAT_ENABLE, + SHIM_MCCOMPAT_USER_EDITABLE, + SHIM_MCCOMPAT_MASK, + SHIM_MCCOMPAT_VIDEO_MASK, + SHIM_MCCOMPAT_VARYING_BIT, + SHIM_MCCOMPAT_AUTO_SELECT, + SHIM_MCCOMPAT_OVERRIDE_BIT, +}; + +EValues_SHIM_RENDERING_MODE g_valuesSHIM_RENDERING_MODE[SHIM_RENDERING_MODE_NUM_VALUES] = +{ + SHIM_RENDERING_MODE_INTEGRATED, + SHIM_RENDERING_MODE_ENABLE, + SHIM_RENDERING_MODE_USER_EDITABLE, + SHIM_RENDERING_MODE_MASK, + SHIM_RENDERING_MODE_VIDEO_MASK, + SHIM_RENDERING_MODE_VARYING_BIT, + SHIM_RENDERING_MODE_AUTO_SELECT, + SHIM_RENDERING_MODE_OVERRIDE_BIT, +}; + +EValues_SHIM_RENDERING_OPTIONS g_valuesSHIM_RENDERING_OPTIONS[SHIM_RENDERING_OPTIONS_NUM_VALUES] = +{ + SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE, + SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT, + SHIM_RENDERING_OPTIONS_EHSHELL_DETECT, + SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT, + SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT, + SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES, + SHIM_RENDERING_OPTIONS_RESERVED1, + SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT, + SHIM_RENDERING_OPTIONS_RESERVED2, + SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE, + SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS, + SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS, + SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS, + SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT, + SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING, + SHIM_RENDERING_OPTIONS_DISABLE_CUDA, + SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO, + SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS, + SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT, + SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO, + SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID, + SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD, + SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT, + SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG, + SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP, + SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH, + SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH, + SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY, +}; + +EValues_SLI_GPU_COUNT g_valuesSLI_GPU_COUNT[SLI_GPU_COUNT_NUM_VALUES] = +{ + SLI_GPU_COUNT_AUTOSELECT, + SLI_GPU_COUNT_ONE, + SLI_GPU_COUNT_TWO, + SLI_GPU_COUNT_THREE, + SLI_GPU_COUNT_FOUR, +}; + +EValues_SLI_PREDEFINED_GPU_COUNT g_valuesSLI_PREDEFINED_GPU_COUNT[SLI_PREDEFINED_GPU_COUNT_NUM_VALUES] = +{ + SLI_PREDEFINED_GPU_COUNT_AUTOSELECT, + SLI_PREDEFINED_GPU_COUNT_ONE, + SLI_PREDEFINED_GPU_COUNT_TWO, + SLI_PREDEFINED_GPU_COUNT_THREE, + SLI_PREDEFINED_GPU_COUNT_FOUR, +}; + +EValues_SLI_PREDEFINED_GPU_COUNT_DX10 g_valuesSLI_PREDEFINED_GPU_COUNT_DX10[SLI_PREDEFINED_GPU_COUNT_DX10_NUM_VALUES] = +{ + SLI_PREDEFINED_GPU_COUNT_DX10_AUTOSELECT, + SLI_PREDEFINED_GPU_COUNT_DX10_ONE, + SLI_PREDEFINED_GPU_COUNT_DX10_TWO, + SLI_PREDEFINED_GPU_COUNT_DX10_THREE, + SLI_PREDEFINED_GPU_COUNT_DX10_FOUR, +}; + +EValues_SLI_PREDEFINED_MODE g_valuesSLI_PREDEFINED_MODE[SLI_PREDEFINED_MODE_NUM_VALUES] = +{ + SLI_PREDEFINED_MODE_AUTOSELECT, + SLI_PREDEFINED_MODE_FORCE_SINGLE, + SLI_PREDEFINED_MODE_FORCE_AFR, + SLI_PREDEFINED_MODE_FORCE_AFR2, + SLI_PREDEFINED_MODE_FORCE_SFR, + SLI_PREDEFINED_MODE_FORCE_AFR_OF_SFR__FALLBACK_3AFR, +}; + +EValues_SLI_PREDEFINED_MODE_DX10 g_valuesSLI_PREDEFINED_MODE_DX10[SLI_PREDEFINED_MODE_DX10_NUM_VALUES] = +{ + SLI_PREDEFINED_MODE_DX10_AUTOSELECT, + SLI_PREDEFINED_MODE_DX10_FORCE_SINGLE, + SLI_PREDEFINED_MODE_DX10_FORCE_AFR, + SLI_PREDEFINED_MODE_DX10_FORCE_AFR2, + SLI_PREDEFINED_MODE_DX10_FORCE_SFR, + SLI_PREDEFINED_MODE_DX10_FORCE_AFR_OF_SFR__FALLBACK_3AFR, +}; + +EValues_SLI_RENDERING_MODE g_valuesSLI_RENDERING_MODE[SLI_RENDERING_MODE_NUM_VALUES] = +{ + SLI_RENDERING_MODE_AUTOSELECT, + SLI_RENDERING_MODE_FORCE_SINGLE, + SLI_RENDERING_MODE_FORCE_AFR, + SLI_RENDERING_MODE_FORCE_AFR2, + SLI_RENDERING_MODE_FORCE_SFR, + SLI_RENDERING_MODE_FORCE_AFR_OF_SFR__FALLBACK_3AFR, +}; + +EValues_VRPRERENDERLIMIT g_valuesVRPRERENDERLIMIT[VRPRERENDERLIMIT_NUM_VALUES] = +{ + VRPRERENDERLIMIT_MIN, + VRPRERENDERLIMIT_MAX, + VRPRERENDERLIMIT_APP_CONTROLLED, + VRPRERENDERLIMIT_DEFAULT, +}; + +EValues_VRRFEATUREINDICATOR g_valuesVRRFEATUREINDICATOR[VRRFEATUREINDICATOR_NUM_VALUES] = +{ + VRRFEATUREINDICATOR_DISABLED, + VRRFEATUREINDICATOR_ENABLED, +}; + +EValues_VRROVERLAYINDICATOR g_valuesVRROVERLAYINDICATOR[VRROVERLAYINDICATOR_NUM_VALUES] = +{ + VRROVERLAYINDICATOR_DISABLED, + VRROVERLAYINDICATOR_ENABLED, +}; + +EValues_VRRREQUESTSTATE g_valuesVRRREQUESTSTATE[VRRREQUESTSTATE_NUM_VALUES] = +{ + VRRREQUESTSTATE_DISABLED, + VRRREQUESTSTATE_FULLSCREEN_ONLY, + VRRREQUESTSTATE_FULLSCREEN_AND_WINDOWED, +}; + +EValues_VRR_APP_OVERRIDE g_valuesVRR_APP_OVERRIDE[VRR_APP_OVERRIDE_NUM_VALUES] = +{ + VRR_APP_OVERRIDE_ALLOW, + VRR_APP_OVERRIDE_FORCE_OFF, + VRR_APP_OVERRIDE_DISALLOW, + VRR_APP_OVERRIDE_ULMB, + VRR_APP_OVERRIDE_FIXED_REFRESH, +}; + +EValues_VRR_APP_OVERRIDE_REQUEST_STATE g_valuesVRR_APP_OVERRIDE_REQUEST_STATE[VRR_APP_OVERRIDE_REQUEST_STATE_NUM_VALUES] = +{ + VRR_APP_OVERRIDE_REQUEST_STATE_ALLOW, + VRR_APP_OVERRIDE_REQUEST_STATE_FORCE_OFF, + VRR_APP_OVERRIDE_REQUEST_STATE_DISALLOW, + VRR_APP_OVERRIDE_REQUEST_STATE_ULMB, + VRR_APP_OVERRIDE_REQUEST_STATE_FIXED_REFRESH, +}; + +EValues_VRR_MODE g_valuesVRR_MODE[VRR_MODE_NUM_VALUES] = +{ + VRR_MODE_DISABLED, + VRR_MODE_FULLSCREEN_ONLY, + VRR_MODE_FULLSCREEN_AND_WINDOWED, +}; + +EValues_VSYNCSMOOTHAFR g_valuesVSYNCSMOOTHAFR[VSYNCSMOOTHAFR_NUM_VALUES] = +{ + VSYNCSMOOTHAFR_OFF, + VSYNCSMOOTHAFR_ON, +}; + +EValues_VSYNCVRRCONTROL g_valuesVSYNCVRRCONTROL[VSYNCVRRCONTROL_NUM_VALUES] = +{ + VSYNCVRRCONTROL_DISABLE, + VSYNCVRRCONTROL_ENABLE, + VSYNCVRRCONTROL_NOTSUPPORTED, +}; + +EValues_VSYNC_BEHAVIOR_FLAGS g_valuesVSYNC_BEHAVIOR_FLAGS[VSYNC_BEHAVIOR_FLAGS_NUM_VALUES] = +{ + VSYNC_BEHAVIOR_FLAGS_NONE, + VSYNC_BEHAVIOR_FLAGS_DEFAULT, + VSYNC_BEHAVIOR_FLAGS_IGNORE_FLIPINTERVAL_MULTIPLE, +}; + +EValues_WKS_API_STEREO_EYES_EXCHANGE g_valuesWKS_API_STEREO_EYES_EXCHANGE[WKS_API_STEREO_EYES_EXCHANGE_NUM_VALUES] = +{ + WKS_API_STEREO_EYES_EXCHANGE_OFF, + WKS_API_STEREO_EYES_EXCHANGE_ON, +}; + +EValues_WKS_API_STEREO_MODE g_valuesWKS_API_STEREO_MODE[WKS_API_STEREO_MODE_NUM_VALUES] = +{ + WKS_API_STEREO_MODE_SHUTTER_GLASSES, + WKS_API_STEREO_MODE_VERTICAL_INTERLACED, + WKS_API_STEREO_MODE_TWINVIEW, + WKS_API_STEREO_MODE_NV17_SHUTTER_GLASSES_AUTO, + WKS_API_STEREO_MODE_NV17_SHUTTER_GLASSES_DAC0, + WKS_API_STEREO_MODE_NV17_SHUTTER_GLASSES_DAC1, + WKS_API_STEREO_MODE_COLOR_LINE, + WKS_API_STEREO_MODE_COLOR_INTERLEAVED, + WKS_API_STEREO_MODE_ANAGLYPH, + WKS_API_STEREO_MODE_HORIZONTAL_INTERLACED, + WKS_API_STEREO_MODE_SIDE_FIELD, + WKS_API_STEREO_MODE_SUB_FIELD, + WKS_API_STEREO_MODE_CHECKERBOARD, + WKS_API_STEREO_MODE_INVERSE_CHECKERBOARD, + WKS_API_STEREO_MODE_TRIDELITY_SL, + WKS_API_STEREO_MODE_TRIDELITY_MV, + WKS_API_STEREO_MODE_SEEFRONT, + WKS_API_STEREO_MODE_STEREO_MIRROR, + WKS_API_STEREO_MODE_FRAME_SEQUENTIAL, + WKS_API_STEREO_MODE_AUTODETECT_PASSIVE_MODE, + WKS_API_STEREO_MODE_AEGIS_DT_FRAME_SEQUENTIAL, + WKS_API_STEREO_MODE_OEM_EMITTER_FRAME_SEQUENTIAL, + WKS_API_STEREO_MODE_DP_INBAND, + WKS_API_STEREO_MODE_USE_HW_DEFAULT, + WKS_API_STEREO_MODE_DEFAULT_GL, +}; + +EValues_WKS_MEMORY_ALLOCATION_POLICY g_valuesWKS_MEMORY_ALLOCATION_POLICY[WKS_MEMORY_ALLOCATION_POLICY_NUM_VALUES] = +{ + WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED, + WKS_MEMORY_ALLOCATION_POLICY_MODERATE_PRE_ALLOCATION, + WKS_MEMORY_ALLOCATION_POLICY_AGGRESSIVE_PRE_ALLOCATION, +}; + +EValues_WKS_STEREO_DONGLE_SUPPORT g_valuesWKS_STEREO_DONGLE_SUPPORT[WKS_STEREO_DONGLE_SUPPORT_NUM_VALUES] = +{ + WKS_STEREO_DONGLE_SUPPORT_OFF, + WKS_STEREO_DONGLE_SUPPORT_DAC, + WKS_STEREO_DONGLE_SUPPORT_DLP, +}; + +EValues_WKS_STEREO_SUPPORT g_valuesWKS_STEREO_SUPPORT[WKS_STEREO_SUPPORT_NUM_VALUES] = +{ + WKS_STEREO_SUPPORT_OFF, + WKS_STEREO_SUPPORT_ON, +}; + +EValues_WKS_STEREO_SWAP_MODE g_valuesWKS_STEREO_SWAP_MODE[WKS_STEREO_SWAP_MODE_NUM_VALUES] = +{ + WKS_STEREO_SWAP_MODE_APPLICATION_CONTROL, + WKS_STEREO_SWAP_MODE_PER_EYE, + WKS_STEREO_SWAP_MODE_PER_EYE_PAIR, + WKS_STEREO_SWAP_MODE_LEGACY_BEHAVIOR, + WKS_STEREO_SWAP_MODE_PER_EYE_FOR_SWAP_GROUP, +}; + +EValues_AO_MODE g_valuesAO_MODE[AO_MODE_NUM_VALUES] = +{ + AO_MODE_OFF, + AO_MODE_LOW, + AO_MODE_MEDIUM, + AO_MODE_HIGH, +}; + +EValues_AO_MODE_ACTIVE g_valuesAO_MODE_ACTIVE[AO_MODE_ACTIVE_NUM_VALUES] = +{ + AO_MODE_ACTIVE_DISABLED, + AO_MODE_ACTIVE_ENABLED, +}; + +EValues_AUTO_LODBIASADJUST g_valuesAUTO_LODBIASADJUST[AUTO_LODBIASADJUST_NUM_VALUES] = +{ + AUTO_LODBIASADJUST_OFF, + AUTO_LODBIASADJUST_ON, +}; + +EValues_EXPORT_PERF_COUNTERS_DX9_ONLY g_valuesEXPORT_PERF_COUNTERS_DX9_ONLY[EXPORT_PERF_COUNTERS_DX9_ONLY_NUM_VALUES] = +{ + EXPORT_PERF_COUNTERS_DX9_ONLY_OFF, + EXPORT_PERF_COUNTERS_DX9_ONLY_ON, +}; + +EValues_LODBIASADJUST g_valuesLODBIASADJUST[LODBIASADJUST_NUM_VALUES] = +{ + LODBIASADJUST_MIN, + LODBIASADJUST_MAX, +}; + +EValues_MAXWELL_B_SAMPLE_INTERLEAVE g_valuesMAXWELL_B_SAMPLE_INTERLEAVE[MAXWELL_B_SAMPLE_INTERLEAVE_NUM_VALUES] = +{ + MAXWELL_B_SAMPLE_INTERLEAVE_OFF, + MAXWELL_B_SAMPLE_INTERLEAVE_ON, +}; + +EValues_PRERENDERLIMIT g_valuesPRERENDERLIMIT[PRERENDERLIMIT_NUM_VALUES] = +{ + PRERENDERLIMIT_MIN, + PRERENDERLIMIT_MAX, + PRERENDERLIMIT_APP_CONTROLLED, +}; + +EValues_PS_SHADERDISKCACHE g_valuesPS_SHADERDISKCACHE[PS_SHADERDISKCACHE_NUM_VALUES] = +{ + PS_SHADERDISKCACHE_OFF, + PS_SHADERDISKCACHE_ON, +}; + +EValues_PS_SHADERDISKCACHE_MAX_SIZE g_valuesPS_SHADERDISKCACHE_MAX_SIZE[PS_SHADERDISKCACHE_MAX_SIZE_NUM_VALUES] = +{ + PS_SHADERDISKCACHE_MAX_SIZE_MIN, + PS_SHADERDISKCACHE_MAX_SIZE_MAX, +}; + +EValues_PS_TEXFILTER_ANISO_OPTS2 g_valuesPS_TEXFILTER_ANISO_OPTS2[PS_TEXFILTER_ANISO_OPTS2_NUM_VALUES] = +{ + PS_TEXFILTER_ANISO_OPTS2_OFF, + PS_TEXFILTER_ANISO_OPTS2_ON, +}; + +EValues_PS_TEXFILTER_BILINEAR_IN_ANISO g_valuesPS_TEXFILTER_BILINEAR_IN_ANISO[PS_TEXFILTER_BILINEAR_IN_ANISO_NUM_VALUES] = +{ + PS_TEXFILTER_BILINEAR_IN_ANISO_OFF, + PS_TEXFILTER_BILINEAR_IN_ANISO_ON, +}; + +EValues_PS_TEXFILTER_DISABLE_TRILIN_SLOPE g_valuesPS_TEXFILTER_DISABLE_TRILIN_SLOPE[PS_TEXFILTER_DISABLE_TRILIN_SLOPE_NUM_VALUES] = +{ + PS_TEXFILTER_DISABLE_TRILIN_SLOPE_OFF, + PS_TEXFILTER_DISABLE_TRILIN_SLOPE_ON, +}; + +EValues_PS_TEXFILTER_NO_NEG_LODBIAS g_valuesPS_TEXFILTER_NO_NEG_LODBIAS[PS_TEXFILTER_NO_NEG_LODBIAS_NUM_VALUES] = +{ + PS_TEXFILTER_NO_NEG_LODBIAS_OFF, + PS_TEXFILTER_NO_NEG_LODBIAS_ON, +}; + +EValues_QUALITY_ENHANCEMENTS g_valuesQUALITY_ENHANCEMENTS[QUALITY_ENHANCEMENTS_NUM_VALUES] = +{ + QUALITY_ENHANCEMENTS_HIGHQUALITY, + QUALITY_ENHANCEMENTS_QUALITY, + QUALITY_ENHANCEMENTS_PERFORMANCE, + QUALITY_ENHANCEMENTS_HIGHPERFORMANCE, +}; + +EValues_QUALITY_ENHANCEMENT_SUBSTITUTION g_valuesQUALITY_ENHANCEMENT_SUBSTITUTION[QUALITY_ENHANCEMENT_SUBSTITUTION_NUM_VALUES] = +{ + QUALITY_ENHANCEMENT_SUBSTITUTION_NO_SUBSTITUTION, + QUALITY_ENHANCEMENT_SUBSTITUTION_HIGHQUALITY_BECOMES_QUALITY, +}; + +EValues_REFRESH_RATE_OVERRIDE g_valuesREFRESH_RATE_OVERRIDE[REFRESH_RATE_OVERRIDE_NUM_VALUES] = +{ + REFRESH_RATE_OVERRIDE_APPLICATION_CONTROLLED, + REFRESH_RATE_OVERRIDE_HIGHEST_AVAILABLE, + REFRESH_RATE_OVERRIDE_LOW_LATENCY_RR_MASK, +}; + +EValues_SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE g_valuesSET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE[SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_NUM_VALUES] = +{ + SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_OFF, + SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_ON, +}; + +EValues_SET_VAB_DATA g_valuesSET_VAB_DATA[SET_VAB_DATA_NUM_VALUES] = +{ + SET_VAB_DATA_ZERO, + SET_VAB_DATA_UINT_ONE, + SET_VAB_DATA_FLOAT_ONE, + SET_VAB_DATA_FLOAT_POS_INF, + SET_VAB_DATA_FLOAT_NAN, + SET_VAB_DATA_USE_API_DEFAULTS, +}; + +EValues_VSYNCMODE g_valuesVSYNCMODE[VSYNCMODE_NUM_VALUES] = +{ + VSYNCMODE_PASSIVE, + VSYNCMODE_FORCEOFF, + VSYNCMODE_FORCEON, + VSYNCMODE_FLIPINTERVAL2, + VSYNCMODE_FLIPINTERVAL3, + VSYNCMODE_FLIPINTERVAL4, + VSYNCMODE_VIRTUAL, +}; + +EValues_VSYNCTEARCONTROL g_valuesVSYNCTEARCONTROL[VSYNCTEARCONTROL_NUM_VALUES] = +{ + VSYNCTEARCONTROL_DISABLE, + VSYNCTEARCONTROL_ENABLE, +}; + + +SettingDWORDNameString mapSettingDWORD[TOTAL_DWORD_SETTING_NUM] = +{ + {OGL_AA_LINE_GAMMA_ID, OGL_AA_LINE_GAMMA_STRING, 4, (NvU32 *)g_valuesOGL_AA_LINE_GAMMA, OGL_AA_LINE_GAMMA_DISABLED}, + {OGL_CPL_GDI_COMPATIBILITY_ID, OGL_CPL_GDI_COMPATIBILITY_STRING, 3, (NvU32 *)g_valuesOGL_CPL_GDI_COMPATIBILITY, OGL_CPL_GDI_COMPATIBILITY_AUTO}, + {OGL_CPL_PREFER_DXPRESENT_ID, OGL_CPL_PREFER_DXPRESENT_STRING, 3, (NvU32 *)g_valuesOGL_CPL_PREFER_DXPRESENT, OGL_CPL_PREFER_DXPRESENT_AUTO}, + {OGL_DEEP_COLOR_SCANOUT_ID, OGL_DEEP_COLOR_SCANOUT_STRING, 2, (NvU32 *)g_valuesOGL_DEEP_COLOR_SCANOUT, OGL_DEEP_COLOR_SCANOUT_ENABLE}, + {OGL_DEFAULT_SWAP_INTERVAL_ID, OGL_DEFAULT_SWAP_INTERVAL_STRING, 9, (NvU32 *)g_valuesOGL_DEFAULT_SWAP_INTERVAL, OGL_DEFAULT_SWAP_INTERVAL_VSYNC_ONE}, + {OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ID, OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_STRING, 2, (NvU32 *)g_valuesOGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL, 0x00000000}, + {OGL_DEFAULT_SWAP_INTERVAL_SIGN_ID, OGL_DEFAULT_SWAP_INTERVAL_SIGN_STRING, 2, (NvU32 *)g_valuesOGL_DEFAULT_SWAP_INTERVAL_SIGN, OGL_DEFAULT_SWAP_INTERVAL_SIGN_POSITIVE}, + {OGL_EVENT_LOG_SEVERITY_THRESHOLD_ID, OGL_EVENT_LOG_SEVERITY_THRESHOLD_STRING, 5, (NvU32 *)g_valuesOGL_EVENT_LOG_SEVERITY_THRESHOLD, OGL_EVENT_LOG_SEVERITY_THRESHOLD_ALL}, + {OGL_EXTENSION_STRING_VERSION_ID, OGL_EXTENSION_STRING_VERSION_STRING, 0, NULL, 0x00000000}, + {OGL_FORCE_BLIT_ID, OGL_FORCE_BLIT_STRING, 2, (NvU32 *)g_valuesOGL_FORCE_BLIT, OGL_FORCE_BLIT_OFF}, + {OGL_FORCE_STEREO_ID, OGL_FORCE_STEREO_STRING, 2, (NvU32 *)g_valuesOGL_FORCE_STEREO, OGL_FORCE_STEREO_OFF}, + {OGL_MAX_FRAMES_ALLOWED_ID, OGL_MAX_FRAMES_ALLOWED_STRING, 0, NULL, 0x00000002}, + {OGL_OVERLAY_PIXEL_TYPE_ID, OGL_OVERLAY_PIXEL_TYPE_STRING, 4, (NvU32 *)g_valuesOGL_OVERLAY_PIXEL_TYPE, OGL_OVERLAY_PIXEL_TYPE_CI}, + {OGL_OVERLAY_SUPPORT_ID, OGL_OVERLAY_SUPPORT_STRING, 3, (NvU32 *)g_valuesOGL_OVERLAY_SUPPORT, OGL_OVERLAY_SUPPORT_OFF}, + {OGL_QUALITY_ENHANCEMENTS_ID, OGL_QUALITY_ENHANCEMENTS_STRING, 4, (NvU32 *)g_valuesOGL_QUALITY_ENHANCEMENTS, OGL_QUALITY_ENHANCEMENTS_QUAL}, + {OGL_SINGLE_BACKDEPTH_BUFFER_ID, OGL_SINGLE_BACKDEPTH_BUFFER_STRING, 3, (NvU32 *)g_valuesOGL_SINGLE_BACKDEPTH_BUFFER, OGL_SINGLE_BACKDEPTH_BUFFER_DISABLE}, + {OGL_SLI_CFR_MODE_ID, OGL_SLI_CFR_MODE_STRING, 3, (NvU32 *)g_valuesOGL_SLI_CFR_MODE, OGL_SLI_CFR_MODE_DISABLE}, + {OGL_SLI_MULTICAST_ID, OGL_SLI_MULTICAST_STRING, 4, (NvU32 *)g_valuesOGL_SLI_MULTICAST, OGL_SLI_MULTICAST_DISABLE}, + {OGL_THREAD_CONTROL_ID, OGL_THREAD_CONTROL_STRING, 2, (NvU32 *)g_valuesOGL_THREAD_CONTROL, 0x00000000}, + {OGL_TMON_LEVEL_ID, OGL_TMON_LEVEL_STRING, 6, (NvU32 *)g_valuesOGL_TMON_LEVEL, OGL_TMON_LEVEL_MOST}, + {OGL_TRIPLE_BUFFER_ID, OGL_TRIPLE_BUFFER_STRING, 2, (NvU32 *)g_valuesOGL_TRIPLE_BUFFER, OGL_TRIPLE_BUFFER_DISABLED}, + {AA_BEHAVIOR_FLAGS_ID, AA_BEHAVIOR_FLAGS_STRING, 18, (NvU32 *)g_valuesAA_BEHAVIOR_FLAGS, AA_BEHAVIOR_FLAGS_DEFAULT}, + {AA_MODE_ALPHATOCOVERAGE_ID, AA_MODE_ALPHATOCOVERAGE_STRING, 4, (NvU32 *)g_valuesAA_MODE_ALPHATOCOVERAGE, 0x00000000}, + {AA_MODE_GAMMACORRECTION_ID, AA_MODE_GAMMACORRECTION_STRING, 8, (NvU32 *)g_valuesAA_MODE_GAMMACORRECTION, 0x00000000}, + {AA_MODE_METHOD_ID, AA_MODE_METHOD_STRING, 50, (NvU32 *)g_valuesAA_MODE_METHOD, AA_MODE_METHOD_NONE}, + {AA_MODE_REPLAY_ID, AA_MODE_REPLAY_STRING, 20, (NvU32 *)g_valuesAA_MODE_REPLAY, 0x00000000}, + {AA_MODE_SELECTOR_ID, AA_MODE_SELECTOR_STRING, 5, (NvU32 *)g_valuesAA_MODE_SELECTOR, AA_MODE_SELECTOR_APP_CONTROL}, + {AA_MODE_SELECTOR_SLIAA_ID, AA_MODE_SELECTOR_SLIAA_STRING, 2, (NvU32 *)g_valuesAA_MODE_SELECTOR_SLIAA, AA_MODE_SELECTOR_SLIAA_DISABLED}, + {ANISO_MODE_LEVEL_ID, ANISO_MODE_LEVEL_STRING, 5, (NvU32 *)g_valuesANISO_MODE_LEVEL, ANISO_MODE_LEVEL_DEFAULT}, + {ANISO_MODE_SELECTOR_ID, ANISO_MODE_SELECTOR_STRING, 6, (NvU32 *)g_valuesANISO_MODE_SELECTOR, ANISO_MODE_SELECTOR_DEFAULT}, + {ANSEL_ALLOW_ID, ANSEL_ALLOW_STRING, 2, (NvU32 *)g_valuesANSEL_ALLOW, ANSEL_ALLOW_ALLOWED}, + {ANSEL_ALLOWLISTED_ID, ANSEL_ALLOWLISTED_STRING, 2, (NvU32 *)g_valuesANSEL_ALLOWLISTED, ANSEL_ALLOWLISTED_DISALLOWED}, + {ANSEL_ENABLE_ID, ANSEL_ENABLE_STRING, 2, (NvU32 *)g_valuesANSEL_ENABLE, ANSEL_ENABLE_ON}, + {APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_ID, APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_STRING, 6, (NvU32 *)g_valuesAPPLICATION_PROFILE_NOTIFICATION_TIMEOUT, APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_DISABLED}, + {APPLICATION_STEAM_ID_ID, APPLICATION_STEAM_ID_STRING, 0, NULL, 0x00000000}, + {BATTERY_BOOST_APP_FPS_ID, BATTERY_BOOST_APP_FPS_STRING, 3, (NvU32 *)g_valuesBATTERY_BOOST_APP_FPS, BATTERY_BOOST_APP_FPS_NO_OVERRIDE}, + {CPL_HIDDEN_PROFILE_ID, CPL_HIDDEN_PROFILE_STRING, 2, (NvU32 *)g_valuesCPL_HIDDEN_PROFILE, CPL_HIDDEN_PROFILE_DISABLED}, + {EXPORT_PERF_COUNTERS_ID, EXPORT_PERF_COUNTERS_STRING, 2, (NvU32 *)g_valuesEXPORT_PERF_COUNTERS, EXPORT_PERF_COUNTERS_OFF}, + {EXTERNAL_QUIET_MODE_ID, EXTERNAL_QUIET_MODE_STRING, 2, (NvU32 *)g_valuesEXTERNAL_QUIET_MODE, EXTERNAL_QUIET_MODE_OFF}, + {FRL_FPS_ID, FRL_FPS_STRING, 3, (NvU32 *)g_valuesFRL_FPS, FRL_FPS_DISABLED}, + {FXAA_ALLOW_ID, FXAA_ALLOW_STRING, 2, (NvU32 *)g_valuesFXAA_ALLOW, FXAA_ALLOW_ALLOWED}, + {FXAA_ENABLE_ID, FXAA_ENABLE_STRING, 2, (NvU32 *)g_valuesFXAA_ENABLE, FXAA_ENABLE_OFF}, + {FXAA_INDICATOR_ENABLE_ID, FXAA_INDICATOR_ENABLE_STRING, 2, (NvU32 *)g_valuesFXAA_INDICATOR_ENABLE, FXAA_INDICATOR_ENABLE_OFF}, + {LATENCY_INDICATOR_AUTOALIGN_ID, LATENCY_INDICATOR_AUTOALIGN_STRING, 2, (NvU32 *)g_valuesLATENCY_INDICATOR_AUTOALIGN, LATENCY_INDICATOR_AUTOALIGN_ENABLED}, + {MCSFRSHOWSPLIT_ID, MCSFRSHOWSPLIT_STRING, 2, (NvU32 *)g_valuesMCSFRSHOWSPLIT, MCSFRSHOWSPLIT_DISABLED}, + {NV_QUALITY_UPSCALING_ID, NV_QUALITY_UPSCALING_STRING, 2, (NvU32 *)g_valuesNV_QUALITY_UPSCALING, NV_QUALITY_UPSCALING_OFF}, + {OPTIMUS_MAXAA_ID, OPTIMUS_MAXAA_STRING, 2, (NvU32 *)g_valuesOPTIMUS_MAXAA, 0x00000000}, + {PHYSXINDICATOR_ID, PHYSXINDICATOR_STRING, 2, (NvU32 *)g_valuesPHYSXINDICATOR, PHYSXINDICATOR_DISABLED}, + {PREFERRED_PSTATE_ID, PREFERRED_PSTATE_STRING, 8, (NvU32 *)g_valuesPREFERRED_PSTATE, PREFERRED_PSTATE_OPTIMAL_POWER}, + {PREVENT_UI_AF_OVERRIDE_ID, PREVENT_UI_AF_OVERRIDE_STRING, 2, (NvU32 *)g_valuesPREVENT_UI_AF_OVERRIDE, PREVENT_UI_AF_OVERRIDE_OFF}, + {SHIM_MAXRES_ID, SHIM_MAXRES_STRING, 0, NULL, 0x00000000}, + {SHIM_MCCOMPAT_ID, SHIM_MCCOMPAT_STRING, 8, (NvU32 *)g_valuesSHIM_MCCOMPAT, SHIM_MCCOMPAT_AUTO_SELECT}, + {SHIM_RENDERING_MODE_ID, SHIM_RENDERING_MODE_STRING, 8, (NvU32 *)g_valuesSHIM_RENDERING_MODE, SHIM_RENDERING_MODE_AUTO_SELECT}, + {SHIM_RENDERING_OPTIONS_ID, SHIM_RENDERING_OPTIONS_STRING, 28, (NvU32 *)g_valuesSHIM_RENDERING_OPTIONS, 0x00000000}, + {SLI_GPU_COUNT_ID, SLI_GPU_COUNT_STRING, 5, (NvU32 *)g_valuesSLI_GPU_COUNT, SLI_GPU_COUNT_AUTOSELECT}, + {SLI_PREDEFINED_GPU_COUNT_ID, SLI_PREDEFINED_GPU_COUNT_STRING, 5, (NvU32 *)g_valuesSLI_PREDEFINED_GPU_COUNT, SLI_PREDEFINED_GPU_COUNT_AUTOSELECT}, + {SLI_PREDEFINED_GPU_COUNT_DX10_ID, SLI_PREDEFINED_GPU_COUNT_DX10_STRING, 5, (NvU32 *)g_valuesSLI_PREDEFINED_GPU_COUNT_DX10, SLI_PREDEFINED_GPU_COUNT_DX10_AUTOSELECT}, + {SLI_PREDEFINED_MODE_ID, SLI_PREDEFINED_MODE_STRING, 6, (NvU32 *)g_valuesSLI_PREDEFINED_MODE, SLI_PREDEFINED_MODE_AUTOSELECT}, + {SLI_PREDEFINED_MODE_DX10_ID, SLI_PREDEFINED_MODE_DX10_STRING, 6, (NvU32 *)g_valuesSLI_PREDEFINED_MODE_DX10, SLI_PREDEFINED_MODE_DX10_AUTOSELECT}, + {SLI_RENDERING_MODE_ID, SLI_RENDERING_MODE_STRING, 6, (NvU32 *)g_valuesSLI_RENDERING_MODE, SLI_RENDERING_MODE_AUTOSELECT}, + {VRPRERENDERLIMIT_ID, VRPRERENDERLIMIT_STRING, 4, (NvU32 *)g_valuesVRPRERENDERLIMIT, VRPRERENDERLIMIT_DEFAULT}, + {VRRFEATUREINDICATOR_ID, VRRFEATUREINDICATOR_STRING, 2, (NvU32 *)g_valuesVRRFEATUREINDICATOR, VRRFEATUREINDICATOR_ENABLED}, + {VRROVERLAYINDICATOR_ID, VRROVERLAYINDICATOR_STRING, 2, (NvU32 *)g_valuesVRROVERLAYINDICATOR, VRROVERLAYINDICATOR_ENABLED}, + {VRRREQUESTSTATE_ID, VRRREQUESTSTATE_STRING, 3, (NvU32 *)g_valuesVRRREQUESTSTATE, VRRREQUESTSTATE_FULLSCREEN_ONLY}, + {VRR_APP_OVERRIDE_ID, VRR_APP_OVERRIDE_STRING, 5, (NvU32 *)g_valuesVRR_APP_OVERRIDE, VRR_APP_OVERRIDE_ALLOW}, + {VRR_APP_OVERRIDE_REQUEST_STATE_ID, VRR_APP_OVERRIDE_REQUEST_STATE_STRING, 5, (NvU32 *)g_valuesVRR_APP_OVERRIDE_REQUEST_STATE, VRR_APP_OVERRIDE_REQUEST_STATE_ALLOW}, + {VRR_MODE_ID, VRR_MODE_STRING, 3, (NvU32 *)g_valuesVRR_MODE, VRR_MODE_FULLSCREEN_ONLY}, + {VSYNCSMOOTHAFR_ID, VSYNCSMOOTHAFR_STRING, 2, (NvU32 *)g_valuesVSYNCSMOOTHAFR, VSYNCSMOOTHAFR_OFF}, + {VSYNCVRRCONTROL_ID, VSYNCVRRCONTROL_STRING, 3, (NvU32 *)g_valuesVSYNCVRRCONTROL, VSYNCVRRCONTROL_ENABLE}, + {VSYNC_BEHAVIOR_FLAGS_ID, VSYNC_BEHAVIOR_FLAGS_STRING, 3, (NvU32 *)g_valuesVSYNC_BEHAVIOR_FLAGS, VSYNC_BEHAVIOR_FLAGS_DEFAULT}, + {WKS_API_STEREO_EYES_EXCHANGE_ID, WKS_API_STEREO_EYES_EXCHANGE_STRING, 2, (NvU32 *)g_valuesWKS_API_STEREO_EYES_EXCHANGE, WKS_API_STEREO_EYES_EXCHANGE_OFF}, + {WKS_API_STEREO_MODE_ID, WKS_API_STEREO_MODE_STRING, 25, (NvU32 *)g_valuesWKS_API_STEREO_MODE, WKS_API_STEREO_MODE_SHUTTER_GLASSES}, + {WKS_MEMORY_ALLOCATION_POLICY_ID, WKS_MEMORY_ALLOCATION_POLICY_STRING, 3, (NvU32 *)g_valuesWKS_MEMORY_ALLOCATION_POLICY, WKS_MEMORY_ALLOCATION_POLICY_AS_NEEDED}, + {WKS_STEREO_DONGLE_SUPPORT_ID, WKS_STEREO_DONGLE_SUPPORT_STRING, 3, (NvU32 *)g_valuesWKS_STEREO_DONGLE_SUPPORT, WKS_STEREO_DONGLE_SUPPORT_DAC}, + {WKS_STEREO_SUPPORT_ID, WKS_STEREO_SUPPORT_STRING, 2, (NvU32 *)g_valuesWKS_STEREO_SUPPORT, WKS_STEREO_SUPPORT_OFF}, + {WKS_STEREO_SWAP_MODE_ID, WKS_STEREO_SWAP_MODE_STRING, 5, (NvU32 *)g_valuesWKS_STEREO_SWAP_MODE, WKS_STEREO_SWAP_MODE_APPLICATION_CONTROL}, + {AO_MODE_ID, AO_MODE_STRING, 4, (NvU32 *)g_valuesAO_MODE, AO_MODE_OFF}, + {AO_MODE_ACTIVE_ID, AO_MODE_ACTIVE_STRING, 2, (NvU32 *)g_valuesAO_MODE_ACTIVE, AO_MODE_ACTIVE_DISABLED}, + {AUTO_LODBIASADJUST_ID, AUTO_LODBIASADJUST_STRING, 2, (NvU32 *)g_valuesAUTO_LODBIASADJUST, AUTO_LODBIASADJUST_ON}, + {EXPORT_PERF_COUNTERS_DX9_ONLY_ID, EXPORT_PERF_COUNTERS_DX9_ONLY_STRING, 2, (NvU32 *)g_valuesEXPORT_PERF_COUNTERS_DX9_ONLY, EXPORT_PERF_COUNTERS_DX9_ONLY_OFF}, + {LODBIASADJUST_ID, LODBIASADJUST_STRING, 2, (NvU32 *)g_valuesLODBIASADJUST, 0x00000000}, + {MAXWELL_B_SAMPLE_INTERLEAVE_ID, MAXWELL_B_SAMPLE_INTERLEAVE_STRING, 2, (NvU32 *)g_valuesMAXWELL_B_SAMPLE_INTERLEAVE, MAXWELL_B_SAMPLE_INTERLEAVE_OFF}, + {PRERENDERLIMIT_ID, PRERENDERLIMIT_STRING, 3, (NvU32 *)g_valuesPRERENDERLIMIT, PRERENDERLIMIT_APP_CONTROLLED}, + {PS_SHADERDISKCACHE_ID, PS_SHADERDISKCACHE_STRING, 2, (NvU32 *)g_valuesPS_SHADERDISKCACHE, PS_SHADERDISKCACHE_ON}, + {PS_SHADERDISKCACHE_MAX_SIZE_ID, PS_SHADERDISKCACHE_MAX_SIZE_STRING, 2, (NvU32 *)g_valuesPS_SHADERDISKCACHE_MAX_SIZE, 0x00000000}, + {PS_TEXFILTER_ANISO_OPTS2_ID, PS_TEXFILTER_ANISO_OPTS2_STRING, 2, (NvU32 *)g_valuesPS_TEXFILTER_ANISO_OPTS2, PS_TEXFILTER_ANISO_OPTS2_OFF}, + {PS_TEXFILTER_BILINEAR_IN_ANISO_ID, PS_TEXFILTER_BILINEAR_IN_ANISO_STRING, 2, (NvU32 *)g_valuesPS_TEXFILTER_BILINEAR_IN_ANISO, PS_TEXFILTER_BILINEAR_IN_ANISO_OFF}, + {PS_TEXFILTER_DISABLE_TRILIN_SLOPE_ID, PS_TEXFILTER_DISABLE_TRILIN_SLOPE_STRING, 2, (NvU32 *)g_valuesPS_TEXFILTER_DISABLE_TRILIN_SLOPE, PS_TEXFILTER_DISABLE_TRILIN_SLOPE_OFF}, + {PS_TEXFILTER_NO_NEG_LODBIAS_ID, PS_TEXFILTER_NO_NEG_LODBIAS_STRING, 2, (NvU32 *)g_valuesPS_TEXFILTER_NO_NEG_LODBIAS, PS_TEXFILTER_NO_NEG_LODBIAS_OFF}, + {QUALITY_ENHANCEMENTS_ID, QUALITY_ENHANCEMENTS_STRING, 4, (NvU32 *)g_valuesQUALITY_ENHANCEMENTS, QUALITY_ENHANCEMENTS_QUALITY}, + {QUALITY_ENHANCEMENT_SUBSTITUTION_ID, QUALITY_ENHANCEMENT_SUBSTITUTION_STRING, 2, (NvU32 *)g_valuesQUALITY_ENHANCEMENT_SUBSTITUTION, QUALITY_ENHANCEMENT_SUBSTITUTION_NO_SUBSTITUTION}, + {REFRESH_RATE_OVERRIDE_ID, REFRESH_RATE_OVERRIDE_STRING, 3, (NvU32 *)g_valuesREFRESH_RATE_OVERRIDE, REFRESH_RATE_OVERRIDE_APPLICATION_CONTROLLED}, + {SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_ID, SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_STRING, 2, (NvU32 *)g_valuesSET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE, SET_POWER_THROTTLE_FOR_PCIe_COMPLIANCE_OFF}, + {SET_VAB_DATA_ID, SET_VAB_DATA_STRING, 6, (NvU32 *)g_valuesSET_VAB_DATA, SET_VAB_DATA_USE_API_DEFAULTS}, + {VSYNCMODE_ID, VSYNCMODE_STRING, 7, (NvU32 *)g_valuesVSYNCMODE, VSYNCMODE_PASSIVE}, + {VSYNCTEARCONTROL_ID, VSYNCTEARCONTROL_STRING, 2, (NvU32 *)g_valuesVSYNCTEARCONTROL, VSYNCTEARCONTROL_DISABLE}, +}; + +SettingWSTRINGNameString mapSettingWSTRING[TOTAL_WSTRING_SETTING_NUM] = +{ + {OGL_IMPLICIT_GPU_AFFINITY_ID, OGL_IMPLICIT_GPU_AFFINITY_STRING, 1, (const wchar_t **)g_valuesOGL_IMPLICIT_GPU_AFFINITY, L"autoselect"}, + {CUDA_EXCLUDED_GPUS_ID, CUDA_EXCLUDED_GPUS_STRING, 1, (const wchar_t **)g_valuesCUDA_EXCLUDED_GPUS, L"none"}, + {D3DOGL_GPU_MAX_POWER_ID, D3DOGL_GPU_MAX_POWER_STRING, 1, (const wchar_t **)g_valuesD3DOGL_GPU_MAX_POWER, L"0"}, + {ICAFE_LOGO_CONFIG_ID, ICAFE_LOGO_CONFIG_STRING, 0, NULL, L""}, +}; + diff --git a/vendor/nvapi/NvApiDriverSettings.h b/vendor/nvapi/NvApiDriverSettings.h index fc001dca5b..100f9c8faa 100644 --- a/vendor/nvapi/NvApiDriverSettings.h +++ b/vendor/nvapi/NvApiDriverSettings.h @@ -41,6 +41,8 @@ #define _NVAPI_DRIVER_SETTINGS_H_ #define OGL_AA_LINE_GAMMA_STRING L"Antialiasing - Line gamma" +#define OGL_CPL_GDI_COMPATIBILITY_STRING L"OpenGL GDI compatibility" +#define OGL_CPL_PREFER_DXPRESENT_STRING L"Vulkan/OpenGL present method" #define OGL_DEEP_COLOR_SCANOUT_STRING L"Deep color for 3D applications" #define OGL_DEFAULT_SWAP_INTERVAL_STRING L"OpenGL default swap interval" #define OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_STRING L"OpenGL default swap interval fraction" @@ -141,6 +143,8 @@ enum ESetting { OGL_AA_LINE_GAMMA_ID = 0x2089BF6C, + OGL_CPL_GDI_COMPATIBILITY_ID = 0x2072C5A3, + OGL_CPL_PREFER_DXPRESENT_ID = 0x20D690F8, OGL_DEEP_COLOR_SCANOUT_ID = 0x2097C2F6, OGL_DEFAULT_SWAP_INTERVAL_ID = 0x206A6582, OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ID = 0x206C4581, @@ -238,9 +242,9 @@ enum ESetting { SET_VAB_DATA_ID = 0x00AB8687, VSYNCMODE_ID = 0x00A879CF, VSYNCTEARCONTROL_ID = 0x005A375C, - TOTAL_DWORD_SETTING_NUM = 94, + TOTAL_DWORD_SETTING_NUM = 96, TOTAL_WSTRING_SETTING_NUM = 4, - TOTAL_SETTING_NUM = 98, + TOTAL_SETTING_NUM = 100, INVALID_SETTING_ID = 0xFFFFFFFF }; @@ -253,6 +257,22 @@ enum EValues_OGL_AA_LINE_GAMMA { OGL_AA_LINE_GAMMA_DEFAULT = OGL_AA_LINE_GAMMA_DISABLED }; +enum EValues_OGL_CPL_GDI_COMPATIBILITY { + OGL_CPL_GDI_COMPATIBILITY_PREFER_DISABLED = 0x00000000, + OGL_CPL_GDI_COMPATIBILITY_PREFER_ENABLED = 0x00000001, + OGL_CPL_GDI_COMPATIBILITY_AUTO = 0x00000002, + OGL_CPL_GDI_COMPATIBILITY_NUM_VALUES = 3, + OGL_CPL_GDI_COMPATIBILITY_DEFAULT = OGL_CPL_GDI_COMPATIBILITY_AUTO +}; + +enum EValues_OGL_CPL_PREFER_DXPRESENT { + OGL_CPL_PREFER_DXPRESENT_PREFER_DISABLED = 0x00000000, + OGL_CPL_PREFER_DXPRESENT_PREFER_ENABLED = 0x00000001, + OGL_CPL_PREFER_DXPRESENT_AUTO = 0x00000002, + OGL_CPL_PREFER_DXPRESENT_NUM_VALUES = 3, + OGL_CPL_PREFER_DXPRESENT_DEFAULT = OGL_CPL_PREFER_DXPRESENT_AUTO +}; + enum EValues_OGL_DEEP_COLOR_SCANOUT { OGL_DEEP_COLOR_SCANOUT_DISABLE = 0, OGL_DEEP_COLOR_SCANOUT_ENABLE = 1, @@ -278,7 +298,7 @@ enum EValues_OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL { OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ZERO_SCANLINES = 0, OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_ONE_FULL_FRAME_OF_SCANLINES = 100, OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_NUM_VALUES = 2, - OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_DEFAULT = 0 + OGL_DEFAULT_SWAP_INTERVAL_FRACTIONAL_DEFAULT = 0U }; enum EValues_OGL_DEFAULT_SWAP_INTERVAL_SIGN { @@ -372,7 +392,7 @@ enum EValues_OGL_THREAD_CONTROL { OGL_THREAD_CONTROL_ENABLE = 0x00000001, OGL_THREAD_CONTROL_DISABLE = 0x00000002, OGL_THREAD_CONTROL_NUM_VALUES = 2, - OGL_THREAD_CONTROL_DEFAULT = 0 + OGL_THREAD_CONTROL_DEFAULT = 0U }; enum EValues_OGL_TMON_LEVEL { @@ -706,62 +726,62 @@ enum EValues_PREVENT_UI_AF_OVERRIDE { }; enum EValues_SHIM_MCCOMPAT { - SHIM_MCCOMPAT_INTEGRATED = 0x00000000, - SHIM_MCCOMPAT_ENABLE = 0x00000001, - SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002, - SHIM_MCCOMPAT_MASK = 0x00000003, - SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004, - SHIM_MCCOMPAT_VARYING_BIT = 0x00000008, - SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010, - SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000, + SHIM_MCCOMPAT_INTEGRATED = 0x00000000U, + SHIM_MCCOMPAT_ENABLE = 0x00000001U, + SHIM_MCCOMPAT_USER_EDITABLE = 0x00000002U, + SHIM_MCCOMPAT_MASK = 0x00000003U, + SHIM_MCCOMPAT_VIDEO_MASK = 0x00000004U, + SHIM_MCCOMPAT_VARYING_BIT = 0x00000008U, + SHIM_MCCOMPAT_AUTO_SELECT = 0x00000010U, + SHIM_MCCOMPAT_OVERRIDE_BIT = 0x80000000U, SHIM_MCCOMPAT_NUM_VALUES = 8, SHIM_MCCOMPAT_DEFAULT = SHIM_MCCOMPAT_AUTO_SELECT }; enum EValues_SHIM_RENDERING_MODE { - SHIM_RENDERING_MODE_INTEGRATED = 0x00000000, - SHIM_RENDERING_MODE_ENABLE = 0x00000001, - SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002, - SHIM_RENDERING_MODE_MASK = 0x00000003, - SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004, - SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008, - SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010, - SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000, + SHIM_RENDERING_MODE_INTEGRATED = 0x00000000U, + SHIM_RENDERING_MODE_ENABLE = 0x00000001U, + SHIM_RENDERING_MODE_USER_EDITABLE = 0x00000002U, + SHIM_RENDERING_MODE_MASK = 0x00000003U, + SHIM_RENDERING_MODE_VIDEO_MASK = 0x00000004U, + SHIM_RENDERING_MODE_VARYING_BIT = 0x00000008U, + SHIM_RENDERING_MODE_AUTO_SELECT = 0x00000010U, + SHIM_RENDERING_MODE_OVERRIDE_BIT = 0x80000000U, SHIM_RENDERING_MODE_NUM_VALUES = 8, SHIM_RENDERING_MODE_DEFAULT = SHIM_RENDERING_MODE_AUTO_SELECT }; enum EValues_SHIM_RENDERING_OPTIONS { - SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000, - SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001, - SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002, - SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004, - SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008, - SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010, - SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020, - SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040, - SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080, - SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100, - SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200, - SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400, - SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800, - SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000, - SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000, - SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000, - SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000, - SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000, - SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000, - SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000, - SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000, - SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000, - SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000, - SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000, - SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000, - SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000, - SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000, - SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000, + SHIM_RENDERING_OPTIONS_DEFAULT_RENDERING_MODE = 0x00000000U, + SHIM_RENDERING_OPTIONS_DISABLE_ASYNC_PRESENT = 0x00000001U, + SHIM_RENDERING_OPTIONS_EHSHELL_DETECT = 0x00000002U, + SHIM_RENDERING_OPTIONS_FLASHPLAYER_HOST_DETECT = 0x00000004U, + SHIM_RENDERING_OPTIONS_VIDEO_DRM_APP_DETECT = 0x00000008U, + SHIM_RENDERING_OPTIONS_IGNORE_OVERRIDES = 0x00000010U, + SHIM_RENDERING_OPTIONS_RESERVED1 = 0x00000020U, + SHIM_RENDERING_OPTIONS_ENABLE_DWM_ASYNC_PRESENT = 0x00000040U, + SHIM_RENDERING_OPTIONS_RESERVED2 = 0x00000080U, + SHIM_RENDERING_OPTIONS_ALLOW_INHERITANCE = 0x00000100U, + SHIM_RENDERING_OPTIONS_DISABLE_WRAPPERS = 0x00000200U, + SHIM_RENDERING_OPTIONS_DISABLE_DXGI_WRAPPERS = 0x00000400U, + SHIM_RENDERING_OPTIONS_PRUNE_UNSUPPORTED_FORMATS = 0x00000800U, + SHIM_RENDERING_OPTIONS_ENABLE_ALPHA_FORMAT = 0x00001000U, + SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING = 0x00002000U, + SHIM_RENDERING_OPTIONS_DISABLE_CUDA = 0x00004000U, + SHIM_RENDERING_OPTIONS_ALLOW_CP_CAPS_FOR_VIDEO = 0x00008000U, + SHIM_RENDERING_OPTIONS_IGPU_TRANSCODING_FWD_OPTIMUS = 0x00010000U, + SHIM_RENDERING_OPTIONS_DISABLE_DURING_SECURE_BOOT = 0x00020000U, + SHIM_RENDERING_OPTIONS_INVERT_FOR_QUADRO = 0x00040000U, + SHIM_RENDERING_OPTIONS_INVERT_FOR_MSHYBRID = 0x00080000U, + SHIM_RENDERING_OPTIONS_REGISTER_PROCESS_ENABLE_GOLD = 0x00100000U, + SHIM_RENDERING_OPTIONS_HANDLE_WINDOWED_MODE_PERF_OPT = 0x00200000U, + SHIM_RENDERING_OPTIONS_HANDLE_WIN7_ASYNC_RUNTIME_BUG = 0x00400000U, + SHIM_RENDERING_OPTIONS_EXPLICIT_ADAPTER_OPTED_BY_APP = 0x00800000U, + SHIM_RENDERING_OPTIONS_ALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x01000000U, + SHIM_RENDERING_OPTIONS_DISALLOW_DYNAMIC_DISPLAY_MUX_SWITCH = 0x02000000U, + SHIM_RENDERING_OPTIONS_DISABLE_TURING_POWER_POLICY = 0x04000000U, SHIM_RENDERING_OPTIONS_NUM_VALUES = 28, - SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000 + SHIM_RENDERING_OPTIONS_DEFAULT = 0x00000000U }; enum EValues_SLI_GPU_COUNT { diff --git a/vendor/nvapi/amd64/nvapi64.lib b/vendor/nvapi/amd64/nvapi64.lib index e36e9f109211301ee7ee94e4a88a09478568f6fd..e54fdf958d6e2c0936315644960f6bba37b2c528 100644 GIT binary patch literal 880026 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�B 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

-pT3TmlHM%TmQZy-;!SqU{;aFJ8zl))K{x?fE5A$pxNY1hu;;W^6tatqadDf;vGIGuHJo zspJCB^@188iW%#gWL|*t$3xmwqo?p#-#C}wOvQ>_cfMNk)sV#c~&Bb8j> z`9)91=G8FPWjyNfruPI9r&w0|E87rSVk zH!CjQvOUAao7u(jqL{HgzfCF~7jO~O5K+w7eBQAxxCm;pC}yndT~cKiLH#O<8S9#6 zU2qXpvqr^KnX#_-a#wN@)PbUyF&CJ;yLg}Ld{A2i*NgQ#)inwimusE(D=t2;Jzsh1 z_+Q@7E=G!C#`gRnspMkb3ol+0)CZ!NvH5&tU1#^~a6wRuFH_8i8SDC(RC3W_^)Ztwc%3$=$3-z?E--m_F@x)*-^qFW-Z^K- zaq*SbnNe}^jqRDAL(DFI7sZV2c_yiJT;LovBU4S6D_k&R^ZC}g_&LN(Z7+%$>zYL> zx!~szGj*saW~}Qw>w=5eVQ*2)Sl9Qt3oh_`AVCcg#f-VY&&jW_@C_=*NfTtk-i~{8Qb$5Qe_uG%@f6p&1bH4;d&9&vdb3+nX#^Uq>>9T4#R6#ZR_p z+|$m_F2;#s#`gR(spJCpv_X9)iW!^F0_(y(ZBX@BC|odOUB8e@E^tp9R7+9JSl6%C zg?rkdjugd=b^Vqf7hK?;HmJU$m@yZayu0|F>rASxf$K%5mG)dMTs)$6ey_Or!}g5# zyMNCv-WSD;?RjC|Gp-kSzdNWp{PBjhA7*Smi>wRpcL%kFC}yndPg2PR-tP|T2vN*f z*I(9!_q&7YCyE*C`a4s21bDwYsK-PxV=gdxckvI`X;&KrTpaZN)$PK?ms;naii>}9 zJEn^FyZ^~9{t?BD?fE}a>A1l4BB%`;7cQ8w`P4P2y-TuKdXA6xyMyW|iW%!#j8t-g z_q&5SR}?eWwYYWR92L|ZqL{I+C2|*B;Qj8PCW&IkTwwC#`avFRM|yPTZm%D=F`Bs@P2nt2Z>_Fx|Sl9 zT;M(`s0&0fV_i#I7hD8&mndeet6}cK>AK zZat`*L@{GsD_9pke-YG6qL{I+74zeQ3tTUPnk$MKbAidbi^g0hT`xKe-lsOmVwQDv ztE^o7Q{#$@m2A(rUNp`wwid;V?YT+bbGlvxb*Lz2Y(6Vn7p@mUT_}nf>uO3WyQp0+ zg1S=_GuE|=b>Vsu)XSonv947!1sAwp1of>bX3Pa9?=Dv3I?2WD|BiS!Tr_A}xLB>? zV)fjPslvr-;X)KMw&yiS<>R7u?GCDkC}wOvYg!jv1T|a~GuE{hsj`cp-WJ7-b**h( za1qqvs}$2<#=6$YRB{p2wxXCZ7nr=eSeNUhd)kqQ{n{&BoTzoyt+-e(x5EYQY1hpz z28d$D_Pjo+usD}j1)IlB!3Cb{1$Ck*X3Pa9?=D(!o%9+=$FoM4&QaHDofZ`rTiTxS8c2)m;t^5I*q*l{ zm5vLz2x_`0W^6t!tqZS#1hphStWf)5#=5p9m0aL8kf62_#f)`rV_k3&R98{VSl70> z3wyz9AVFOviWzf($-9f~xK48M;Tj**zSg05e06nWwa#`G7u(yO;bOb&;w@3k*q(PF zRdx~7Z=#s7`LwbwxCm-3yr^0GVaB>zlPbFis;wwytZPT>f{UO|6UB^m?UcK)7q|%O zCQ;0o3ryZ!?96r2_2R;I6ZZ}m&uE>UD=u~+m7ag$da-kM@wq5wY|p!rN-l7{2&%!F z#Z;NG`LwYvTrYy!S`;(ZwHvAA0@sV6juOR;b?t6lxLyR+UlcRewMTwjaDnSZP>+gY z##~_X?qW}_gAbzM`Nf<8&#V(JKGQmTR$T05dv4MA*=_gCE*6Pm#`fGc?>SvBf?9X2 z!UZ!npLW)D;Q0N%4{C2w%vjgnq>>9K<6f@S<-nwvH1T|C?GuE|F?t%+kFM@hT z6f@=mlXn;Ua-DRJdh6vIYoC8f=cuo>&b}2F9c<4yN9~(kEWUQZGh=(+k5oD?aJ>j> z3sKD2d^%be&QU>i5ygykbt08q;Cd0%m7LrR9>pFx~*+o#pL@{Gshguh01oe_AW~}S5+?8Ae^_?hY%mpUzF1m1??P^2EIqKje zzU>q)mR+}S(WTPOLoyx6f?HxBS@891l3IxGd7>D)^+g@&wmrtKvB$C z*O8=>3w&NLsHa3RV_ipC7hD82OB6HK)h&0y1wOAA)C%hrGi1hGVDj$bXs(l7EI#Mw zUBboATIcABi(_ohaB*~Y(M=RHw&!C>m0biiKom1JpYGNL7ePHPiW%!Vj#Sx2P+y5+ z#=4HTF1QG);rhi?nX#@Da#wN@)Hb4+F&CJ;yXe7n((AOJc0B&1aB-B@=}~cUqU{;4 z)Aq*{G;a1qoh z8x$^>v942d7hK?V+Msq8#f-VYxQo-Zbqjte~33#z>+W^6u}SQnn_1$BxjW~}Q{Qpp9L>jgDP6f@R!nRVg0UQlC2 zF=Jhq=f?#XI4**ETNE?q0+V+aS8$!=;-r7R>KZQQYn>}9F0Qma!^IWZMT3nCgUr~T zugZIdLAVHN6H(0AeEM1!Tm-d`C}yndYEoqvL7gIs8SCn2U2qZ9KvB$CSO5IDl8c}o z6vd3Wz~tS<0IoBowg|powChht4-FTuYn=fV7uVRH@!f_4vWp)?F=KlknD-19_-@0X zR@pJVgcN+%v znkZ(h>w4?LcN+%vnjqM|p5O=HFB;T3n-()<#=OI_d%uzEB=4JEc5dnZd0(w_ zW5xSTwr6<1F?&Bz6f?HxA*9mz5Z;5jRunTfpP|+T??H_h#f){`OsecXs82;PV_mmc z7rY1cpD1RmYnXMxdr%uTFI+HVUAI~nya&}m6f@Q}oK)F+P-lo@#=OI_d%unAyi)sb z2gmyz^G~ULBW1DEy1F4+=eCOX+ilMe9=qAww`K2RMKNQ0zJpZRdr;FvF=O+&)4G1W z`^WJ?{VIwX>$;0n*?Ul{Y*su%W~}RO>w@>7b`-^ob=_lK@E+7rqL{I+5!MCoL0u+_ z8SA>2RM~q__lRP~yu-44zmMz8tvSb9mu&fO>3xSuTIars_xo+nuYLXK3ioC2--=?! z_B@hQ@{aFA3u?K|3m44Td>*i_v%76@Qc$f#F=Jh$NG0!U)nBkxP~Al_V_l=I3*Uzp z)F4sJSl5HOt2RQuz8ciyqL?ukn7q4qi0e#}i=#&l_&JWjFSO1>6&GV{&v;(&PR~ zC}ynd(M-Vwet#pV1)`WS7nr=ec#P|$*H@d*pIka0uGgZN>SGlb<8wRiWbpdxW7)-? zqL{HgKTaySz-!$>oi2(Qo6iL6!t1L+-71P1>w1Dza)H;ngPJUg8S8q|y71aXQ1eAG zV_i?>F1WyJ-9fFoWidl$%mpUzE}rH(>A2|i@V5ivxY$GMJY8||jO`i6#nahEPf^U+ zo}VR^T;R9}>JCxN*nFO|E*uv@y(5Yl>w2D4a)IL_sKvG_=EID2yi<7%`KPp@d(K;_xTujXE>9}|)yLd_zGq&fKNhKFJ zE`pjRiW!^FBw=4*T8U!Dx;`aUb`jLEqL{I+ z>DC1oL0uz?8SDBiQ^`e8kBVZ(TwwC<;&ZN(Tzq``jiuiY|5WRIUUBh7Zci>g&n|uy z#fp*Vm-VE`mBn6f@Q}!@A%isH;RVV_n~5 zD!B-1q$p<01t#w|V_n~qD!T~kR8h=W*KF&8i=b{1#f)|RFH^}yP%nvM##~_X?qUwt zNiN3CZhdXIn4@*(R9wu>?a9TQ?4rRA#Z;NGJw=4* z#)x9Zy8g&iauL+~qL?ukn7q4K$aRv7xgWOMFI@bkbrx1!EXwW4#lq}jjn;(=W^B)Y zk}A6hYA;dD*nIx7F1QHlG*Qf0*WaYdE`qvQ6f@TKk9EOCP%nyN#=8E^RB{p2ccPdv z7nr=e_>b$P_X7StyxHdAV!0iQss2}Sffo|vbBK5^;J@r*V^Pf5o);sPT;RQcp!N~P zjLm0p>%w~hLG={HjCCzRD!IUWKtWwAiW%#wXI*$rIH*TNF=JgzS{Ggu4r-bxW~{5e zb>TJPpneg>jCD02Rr?!%@E%Z5EA3SHV#d6~vU^{O>!jC&n|*r9pzyw})>&$)|Nr^Q zrESl6O?auLmegLliekq0+>liAj@N{P8Yqexn@=O_!fV1oJu8YC>sp3X@{ZSpgPJRf z8S7fsy6~ECP;2a5OqChyS}u2C1o)lXp!N~PjJd$%-No`;C%JgzrJ=Qt&J>+>b?0lH zv?JUYW73l}MFc1l2(lGuG9_ zy5J(HD?~A4T`T9V;lkE>^KUuY3CO zt2WIp8tz)mhZ)=Rs-%*OX8i{a3Ti7+%-DQZv#xy?bs8Vkp`w_vuGL8;7mNRJ&Cfwy zB#Ig9TEn`ITmRj9L5&c_jCHMPU1Og=d_quDMKNPtYgyOS?w@ZL)Q_T=v97gA)&9mG zoDYL)+@_d3Gv*zZ-TOLRCtU|e3?6=U9D_S(opmbS*Cn+~tsD0wxDKw9y>}JGjO}?n zQpr26gF*Ed#f;5oee1$?FsKQln6a)6NG0#M4hHp&C}ymynRVeh7}WB+6;ox#x;C^f zTnB^NSrjwYwUKqGq&gEq{`ldT4(p7l^L7QX4VDoK^-KD8SC1dRM~q_{X{Wi zU0YZeya)BHC}ymyg>}JuQ1eAGV_jQX7rY0x!5+mln6a*{NY(z9y$5xOC}zw%EW7uX zTqk+&aBkg+;l01sX<6~UHL0@qmf8E0qL{HgZ$ql=J*fGjn6de6YhCaj)W&-j^I^ui zwj)*c9@NpIn6a+ytqb0Rx{#)>6RG4Kzazb4_C8D$Gq&fQNhR<29qFK^ zh+@X(vx{}%ccg<_Ac`65+LcuDj^B|EYMr*lRGG1^Hr9pTkq&AQo}`1zlvhU z=ChY|!9`H(wJWB|jCHjoRdx|nCsE8;S3B#1i=g_5V#d1m&W|g(2x_D#X3Pa9?=ISN z9o+ZU{-N%;W4kRKF5c5R?JF+!A(f5`ytmapyI3TO8Qb%|r1Ei5d!I3=P4_OQ%8bpY zgLUCGnV=3A#f)|BM=HChz0Vlb08z|XS4Zo@YcfGSEs7cI>Xa$C!29n(eJ_d`bAidb zi_TmpxoEkt{>kB@Y5QV6ohvT(&+Ygx94I+CS8N zy7I!8!^Oo~=g^9a!*V-Z;CF-$%`P4g#fd&W--QTjH&M)3S6A!8??ME1wkT$->&V;%7x*2apzagJjJd$%-NjK{Cmk1m zAGY^^aPg7WIjZ8Ko9!9L#ZlSCf1;SNJs(Xfxxnv21l6)bF;!-4KF3%Wj*Fm<6UB^m z9ZM>?!0$o?HB=Nc*45p*a9jlSswifx>$pt81JL%O zSl7wc1s6eW(Xp5YGuCxVrjm=Gjupj>xxnPzMNh7iT-?6q&~f47X06k+;^NfYo?P_I zE+&a$#`b&~sj`cp7KviU=5xAr!9`G8b}Ht>jCGwss_Y`D6GSm%UA?ReE`qvE6f@R! zW~P#hpxzP1jJd$%-Njj4C%M>V)QB13qF(3Xk)Bm?advJ`F3!p>))&Q$?fD#1Wfwv1 zBZ?WD&$-qG7eVzB#f)|JCRKJ3)GeZzv99y13oe3sK@>CAb$+Iji=bwTV#Zux^6ugS zu9IA}yLQjj!^P737cMTSxVSL4Cl?oF7n_M<#`fHYRM|yPhl*mx=5vvC!9`G)i($)^k$wg3g2NW}8##~_X?&318lU&sQwsGTd(Om0X zR&jB8Zci>Q%P!iBV#fA-1*x)&pw1A*jLqjt>w=4*ZWhIibzMcO>>{Y=MKNPteXR>F zg8EhzGuCx=rjm=GmOij>!Hl`Ut-hi=fUI#f;788ta0KpzaaHjCBnpRdx~7>!O&ku0hrX7eW0ZiW%#=HdDz(P^%wQ zxM0RyVDj!_FxN>gt~%z}UBks5T4!*@#dWzoxfq;XbQQ&n?fH6AWfwtREQ%SM&kfcE z7eU=6iW%#=kyP15P!mNlV_i2{7hD82Qxr4SH6&BXMNmr|T)1GyTwwCdjP3arQe_uGbrr>o&1aZ(!9`GgL@{Gsw~{Km z2w=4*o)yK6b={V!l$HQczr&ozM`11u6wNuug?c{rzmEu>poJozwrm}#|1S(6f@=> zmfidPTqhlaPc7PS_wfFf*15mpeI%*!>yY%uV@)Y_t$v98gil6O4E4{B#o%vjfh)`ep*s3Sx%V_gqr3Nr8_==0ib30u0|7)v{$7dI#L@{G~o%?qkt zmtwEXSl5%Jk_&v#QczoqV#d0jvM#(18PqYNn6a*>a~E9TdzOM4B#IexfyujzXShx? zx!ADJftQ7gr?t*A6&KIio~ORk6)n^COC>GGlw5M5^o}sAEJiWAmA8UE5C@*C?o) zMKNPtQ%EHjI4**EQxr4S^@?@jxCm}F=H+;d3Q0D>!fp3 z>rpF@4i`PO&eV#F*KE%?M@`Kx28d$D_WU}jvWuX`iDJg)^M-Zd92L~ZqL{I+H%XOU z1of{dW~}Qi>w=4*HaxO$!Hjjiox75Yp!OBTjJd$%-NidxCtbT=@BdM|aM4Tayi;-U zuI(A`mAsQ(+$@S2+w(M1$p!ACf|??V8Jo|0)`e?#P``>|#=71om0aLHDyR*PDyGVe zb$wu6xONA1peSan>%&aJ1@5DQx>OW1<^q#<7awt*^d92qQ@1MpuF=C<=c9^?k8?Y& z-FOf2qwL~sQOww$KOvP|;MyJ3LQ%}vd_J`73yL@{Gs zpIH}!fp3qm^157A|IJoo_2HX4#%` zj`}vcSp1k`s?6A)zsq~Z(S&nUP@9Wl#^&?Ab>SQp)S;r7v98&qk_()pg1Sr;GuHJ# z>%uuIs0T$cV_kDH1s6C+1@)dNX3Pa9?=I$YopkMvo1Wp2>9fzX)o!C}ynd5AUkE2x`^iim5VV zT?=y;T;TadQ0+u9V=gdxcd>};q~{lXrro?(xHwnqEULKp)Ao$#7mKos5u%u}J^w|j z>>{X7L@{IY`P;hi{3593jxXlJjCK7(D!IUM5!7Cyn6a*ZtqaFRP#20~#=8E?UFo<8 zYOE+`%mpUzF7T0@B^KMG_K<4-SKYn`HGd^s%+xw{OaK4RtSv?=y*4;+)gO&u0v(whx^|!2`1lFoVz$<4P;s%8?HSkZ2HC}O zJqj1h*q)arm0aN39n>zOn6ddZv@Tq`gF00dGuG9JRC0l9cTl&9V#d0bu`XP@gL+*Q zGuE|irr-kC?x6k<#f-VYw4Mb`exBQOwwURm9-xCrV;QOsCZlT0NSK{Y+8 zm?1Of0+V+aD|4OnXP+JX%o!u&xM-twR<5{cn%m(5fA-nR*~JN>n6W*tLMpkyeN<3G zL@{IYS=GAmXP*T%Nfa~IwHm490)LiGPzyvcV_mCT7tT>Zt#@)URc5Sfjobwn_*`vJ zokTHXE--m_u_o6^F18sprS#od7ipa}D=yZuJ;TMC*~LAgn6W*tO{(l7sCPs$WAjc8KHRF|D&f#YHpQGhPGPAiJ0*iW%GUhNQ|af?6bs8Jo{W)`izVf?BUK0MVm}G*F2=ol`?R2r62**lZE0Qjym?UlL@{GsTjj3gBB)11F=H+;d3Vv0>!jDC zuKVPiw&CIvt<$pNVr$zoUXN;-T`YE5F;!-4&)bknF7SF(P}_)N#^$rFb>a1>piU6Q zjCE~CD!IVxQ9<1ziW%$L-n#I5R8X&pV#d05$d3yy@Oo5Gi$pPFE--m_(TeM&`>3@a zIpm^n(fsscs;w$6THBs+AJr^Mw&xx5o^i#;J#A1Yiekp*vy*kzI;w}@iKx(*K;Tk9NLadAj)Pc9D5E>=0S_^*x`+w-BM$}WQ1Nfa|SpTn#RE`mB*6f@S< zg;d!^P*;j##<~u-F1QHl0a46Y*AbaYE`oYZ6f@=mlXn+gxlVHN<$XPdhl_byr)$N< zk-0s&=$c*BomIGC#`b&^sj`cp))K{x&8M4n!9`FziekpPjwV%h5!7L#n6a*7tP3uJ zI!6>U)^%*Al8d0O6UB_Vz~tRUcdnCM+3y7bj;IeMB*1d+tf9>>{Y4qL{JyoN8Tg z5!551n6a+YNR?d#^_nPVtm|~^f{UPLiekpP&d5}95!7Fzm@yZayu0Ydb&`vI{pWrh zE}EQE{P)wV;^NHQo?P_GE;ba!jP3a>Qe_uGwGqXP&F5_Ef{UOI7sZTqokObZBB--P zF=JilS{Gadb*(67tgCmXl8d137sZUZz~tSbC59tamNXr1#aF3!*G$;Elu z#WYdO*q$#SRdx~752Bc{`CMpSa1qqf=NA99Fk@YPNR?d#wV^0xtm`7{f{UPb7sZTq zU7V@pBB-vSm@yZayt}xB>m(PK{`vP8;i9+JxuoLa(%hb0T#{W35XFq``7%;v7eU=G ziW!^F<<s_Y`DFGMk8T~}HcTm-d96f@R!Ri=`QpjPT#{MW*axxnPz zMPIIyTs&HD+b-dvh1Tg?adCBSPcHgq7i~o`V|(sLs_Y`D6GSm%^XYG0a1m5rQOsD^ z08(WaLESHk8SA>ny5J(HDWaIMu7R0KE`pjViWzf($-9d|Tqn6`b@;%g!o}j}6;20L zTwI&mlZ!#w#cHCMu{{qaRdx|nYf;SDe6F)DxCrWSQOsD^^`y!!g1SHyGuCy3b-_hY zw~AuMx^B!=auL*%qL?ukn7q5ViR&a6dv)cdvF(kJq7dK@Wb44*@dmc)v z>>{Y8&o8_)WAnM$y5J(HjYTnIUAK@by9lbSC}yl{n03KLP{)a4#=36JRB{p2rJ|TI z7nr=e7|wO3)E24zL*2p#d)BsJOr@^wcC9nK;^Ma44j1@r;PC8XoG4~&&$p9GF7VmF zpxzS2jLqi`>%wOPgPJ3X8SA=}RC0mO1_ssOg5nV}V_kPy7d{&pR5MY`Sl8Xwh0g{C zwYw;0tm_`@!e;}6>L!XA>l#6-cJkuSHnqGej|CUC&q--lq;~xr+)H%vjg6xeF&>{LVm7twk|oE--m_ z@f_Dl_dmTFO`R7mPS85fRa`u8d&c_?&t(^VL@{G~et}eSf%is(8ZL?%o6n2Zh5MhN zo)*Q7b-hF?xxo7lL46{M8S9#8UAX@V>JL%OSl7#$f(yJi8dQ^u3xmv<3ryZ!OyWA} ze7I5DdZpL8x7Iq7DlR7H_H_R}v7}N@v6b6~Gt~W^G z9EKm<{{*$AC}zw%EW7tNxlVdd{G1p5IUtU~&RXZqiubo{&v;M#&FsCWC}wQWZ<9*i z@t$~4*NbAt=JSqq;XU!7CWvCjy51#~yyLrzgPJai8S9#6U3gDCsQ*MUV_om%#|0O7 zPdupgFD(o*V=gdxckw>gNiGhXy;sX{(N62UUvcq)?HMlK&n}J;#f}7=uX3Pa9 z?=Gfu9bB7g|4{eTQ|+G&7h7tb=@l2BkxHKnz@OPMJ-g^GiW%GU=cLkcfj_e&s5?b5 zWApjKy6|Uq1T|e0GuHJbspJBGW=Bv>FE8f9jCFlwUHCIQf;vzXGuHLBb>YwK2x_n> zW~^(5b>YwK2Rpz2*wJT7L;J1o2RnOrA%zo_9YrSAx8qjhFhynkzZ zhWDA-`&puxu|3ZsRrVg#SW(Q_e7>_Tcn@lhC}yndds1cZL2YzpF&}2EYqoX4dr;j) zF=Ji-vo3fK>P}J2Sl1lug7=`Ni(-^al z{Sn7|XRR}@;{6BP^G~yWx_4goet{@vY|lTEO5U3eU+mVP#)x9Z<}=^AcDU{4CxZG) z6f@TK6RG6=_D9~oJE+Eei}^5PT|ZmbpS=!UH>kFvn6a(}`Ek`o$m?KGy+tu&E--m_ z@e9{^Q7%px`RO|0VwBeTrQ+gO+w+aPG(YQ??BYXF%-EiP%X`Lk@ZQV6-8ZO4R~PeP z#^&?8bv^!4hZ}<0T@*9c^#`fsV$;XBKRc-NL@{Gs3$3ej&+)$m^{^;rtZPxG-~!JJ zf|?rGFy#2p!LG3My8Jo{P*44V#vNMA^UKBId^)IR9;*K+}emSViMKNPt|5?|#wzswq z>P}J2SXW&`e8wTgiW%!#j8wXp__Nsy-v{-HC}yl{aZ)&k;b&UwDa!}- zizsHyJ1o2RCAd!VUjO!PwM$}QyY?HD{fmEEqT&DlTx31lGrTX+aLHmTbuPLWcpV_9siK&%u9d6{uLA@%TNE?a)r3^?j@JQ#s((%4iy89{%kF(;u7mqt ztaaU2y;cqH8)}`EE8d&hp7C1T%Gvv#qL{HguR%wbsL475P8S7djQ#j?}nj2KTfrSfZ%mpUzF4p8a$;IQB zkJ%+$G}k(7R$Q!=+i}f>i#4;0{Y5cjdtRGV*+o#7iekp*vyOGaMNnf!F=Jipk}A6h z>I+fKSl4>i1s6drGpLv!mzt`NnH?Ri5|$py}bL5&o}jLl~w>%#dksMkd?V_h4QN-l6d4C+Tw%vjeZ z)`jz7P>ruGTrgu@n_3snhe2&GiW%!_Ze2JZ26coeW~^&7QswhuP#1|}#=OI_d*7Vv zB=0Xgw#NG5{VuJudByt{wr6K8Jo|R)&=iD{UVAP>)MJ` z*?Ulp2NwpJv96ZZ1@A$%6vd2nZEaof9@PG#n6a*HtP9?QIztpQ*0n9EviG0{iDJgQ z!?Jtdj_V}vL!SJ%_A$z0Ds^=aYMt#W-nX|s!~1sG`^%!3u|4lVs_Z?enWC7n`Lwbw zcn_-Hb;Vwpv98vn%HD(8P!u!PwWD>xdr<8}F=JgjSr@zqb)qO{tZQfMg7={Mi(v9@GP(m@)6L?A~|fI_a8w?{l-R4)3pOon0&5+t{9Q&D}M7|5_9?w&&eQCGWWZ z32O1{3xmwqe0H}kTyukJCW;yB+JjW`j{BdW+KFPuy7sg#TyujuNfa~IwO6LnH8-gK zqL?ukn7q4a%XN~AwGJOvdQWP!)@fUD(Jr^A`=7Si#bi;;*q-+$Rdx~7Y*EbEeA-(V zTm-eu4TV8wtZN@qWfwthC5jpA+Sj_^BB+B!F=JgFGL>8e)ms!Z<^q#<7yEIY$+bmr zjJ5owL60~tZq+*bRa|t;?QqfV$Ol&3FS~eL6f?HxPNb5Hvxdx=7St!An6deEwywKp z9WgtozeO=)UHg+tF3$gT)CNJVdt+gc8S6U0y6(K>iIalbOB6HKbzr98V(ad|whXF= zC}zwBChsl|;yUTtwAJ7D- zrpk=%xf`jn_n>wV#f;78XzPOappFs6jCCDDs_Z?e0iu|(u4AnW-h+Bf6f@S<-MZjC zsLw<(V_nBt7rX~mZ)hPu0~Sl21m zh3jBYOWa(zV8*(7W(wzCye1RWMxvN87nr=eIF;+9>)?NrXT2US_SHJ4R$QEx+tYRM z)a;^%C}wQWr;|!9a2*V4peSZ+K4(}Lu7g316UB^m^&*vA;5r!8hoYFVt~0F**TJCv z6vd2nos}uLz;!UFwQea4GGi_!UZ$dbs4F$_nU>emSl1QS1@A$P5XFpjU1?qL9@Lwnn6a*_NR_<@^{Xgm%sVW*_r6>wT?Ze& ztNsPy^SblY|s5jCGWTn26c)kW^6wFtqa$|poWTK#<~WO zO5SlD4C*CO%vjeo)`ja}P;*5wV_gF?m9B$9HMy;rAv5LzlXn+`xX#4dBJg_Pj^{rU zE_T&AgDNhr&Fwh%;(L1rWf#YYV#fA7m{f9s@9ha{peSZ+KG#_nzPBf+Cqyx0UDuOJ zF7UlQLCp}wjCI{$UHIOfpq9D4m?|^Ybz`QIi=eg>#f-VY)fSl6wYN-l!hRTMMk0+V+a!?{j!apoB>?+`AI*E+*1E^f>1$;I&O;xbXp z*q(1ERdx~7{i2w$`P^Y$a1qq&qL{I+J4uyY1T|k2GuCyNb-_hYP3|mQFk@YJXDYb} zY6nrwm5u|3~QD!IV@VNmyp zV#elkpLO9rA*i=RF=Ji#lS(dde;Cy7qL{I+k=BL#grL^Bt8l@LbvpWQT{*dh%-XF}~ zzYxWY?RgBTviG2txVxAtGd7=xtqb0R+Ef%X)-{$?*?Ul(MKNPtk60JH2X(F}W~^(R zb-{a3w~1oLx*oMIcn@l#C}yndF;ZpkLCq4yjCqG;_dcHMr03=z{Bh@calALYr*JX8 z;{9>kGhU+}pS^D-iW%GU1X9U6?hk`HS`;%jpC_zq{~adZ71Ur+%vjfxq>^{s9|rZj zC}yndDeJ=hVNml#F=Jg%XDXe0gIaAwF+*m|1t#wUcEzI*nW?4qYAW^B*TkxDM`-LpXr6UB_p=XvYGch3ejMHDmE^#ZBn0^dCw)B;h= zSl5fzh3}pXYMpzFsWM|-FXhJt7x+9;Q2UBv##~_X?qVX>nOIu`$JjDYY}G$p^wv5P zD=uEPJ>y<|Vs>%8C}wQWlk%Qn5cldqjTgm?&1bT8;hrR@k3=zJT~kP97qxr!pcaW@ z#=2gyF5Hs@wdQ?=3udhA)lAhM7GFOMY8O$=mP}J2*nHlwE_|*esFy`CV_k2ON-pqu zqM*JL#f){mWnK7ONl*>%FI+HVU2j_#K35V{3sKBi*E`mQ&y@sqpeSan>s?aiYg16? zh+@XP!?Jsy#&zHwYkfBCvJb=iEm~(<#ru1DQOuYN zOx|65!gbR9;q?ojniDQ=*E*k6Tzs0_aSY=A@RRIfq9|r;&(ldI7kFL})O=CQ*nB>- zF5DjmwblcL3udhAb5h9#o)-kwK@>CA^@Vle{xGNuL@{GsUs@OL4}*F@6f@TKm386% zFsKhjF=Jg{lPVvBK`l0_m%w&~sQROe zsWM|--)E{eLLP%bwG_pSxxnPz#cZyV&W95>*?6aLag^4XU2*Zh+>T=q=fm0A#pR-y zu|3Zrm0aL_7}Qu%%-DS9S{KfTL478Q8S9!yD!IV&Hwb7eO5(iWzf($-9gBTqn7h-LFsSwcJ5kXMV-SPq{t0n4eut5XFq``DapP7eRe5 ziW!^F0_%c{pjLaRm?|^Y^$V%8i=aA)V#d0DwJx{_>S9sMSl4fvN-lzWSQInn0+V+a zzjK{*ZR+sQnWN&k_)_cqUUBh9Zifq8n|{wO{t?BD?Rg=o zwJE5MqL{I+KS?DQxHbiKt|(@#>o4oVwJE4OL@{Gse_I!>O+if&#f)|RV_mp51@(g{ zW~}R9Qsrw?P%AxL%#a!L4$JQSKdv*aW)Ew<@YNlI!uyU|=f8^gx<>d!Vft(!zVqR~ z?EP?2%-Eh6BbB`4J0F6&Tof}lpT(^U-}w;KXi>~q*Ak?XcYOawP}4*)V_o&E3*Y$= z)FM&LSl5#Iap4%m^W~t{8C$qu##~_X?xH@|nI#tum$~z~aM4cd)Nl0vKl9kY_KZJI zs(zy-v60$OcTvpPo|npd#*vFZXDz6HqL{JyENxx*^Q3|rBZ?X8YDg-%z@H}-)HG4d zSXU$K!k;G<)bFC0v94uu7al*p8!D*P9w}TfV=gdxcd;zjNiIHFuJfzmVi&EmY{kWL zwr99lHoNE|iW%GU@}$yn0T)4CB#IfE&kEKB7eU=EiW%!#kyP15P?JS5V_l7{3oe41 zEs7cIS}AuW7eO@~SGZutTwwCQOww$ zo03W{aBT{zhbU%jKC4(4u1!Jp6UB^mtx77nz_lr;QKFc!uGOpy*QTIe6UB^mt!`bo zHU%|D6f@SfhIQfE6jY-}3xmv9*P5it*QTJFi(w@>7UKPcRbu}kd_8!#tqL{I+ z&8!RFgK99oFvyH`ZEjug9@NI7n6a)ctP9?Q+FKMe*42Vk*?UkYh+@XP!?JtdlItYz zKfSZjD&hSqt+Qpt`&PDRc;7O6zfBY~w&#|l%HD%|RunTfpRKJ6-h=u~6f@Sf4XLvC zp#BoYjCE~mUGN^%8jly=nX#_ztP9?Q+DQ~M*0sHL!Fy0$MKNPtJCG`S59$I@%$Rpr zcJHmYPI?`nQIr0qd#zzwr&Yy!YuhtklWCQ`KPieC+w+d3l6Sl&6Vz9tn6dfnWLi|;81*Kz)t;i8MyIk@8Dklc=` z!o|Va#f74nu{|G3DjgSa5!C&nn6ddBW?gU*)VrdXv92zp$}WQXOB6HKb+~oGMNk_( zUASPzx{k%F>*_AhI$bL+j?C@JMc3@&Hc`yj zo{u6`b`jJoqL{Jybh9qF2JL%OSXU2H$px+#L9O;|;er|KI?=jty$EV2QOsD^N%?WX1+EuCbrr>o zxxnPz#mQVJx#-?uv0K8$MOx?Nii=Zh&v0>ab}>{GGq&fRdCxEi7ePHKiW!^Fsn!J- zL47KU8S6TYRM|yPe~Dtox=yz)xCm;k=L&<&Sl1c(aU~Z)?IMa9bAidbi(XtOxp?V< zht>)g-Ly`xiiw=4*CW~Umy3Qe0b`jM7 zL@{Gs=UNwB1hw4rg$rh^t9O1}$wg2tMKNP8FnM=z9@k0lH#Ho6dgE|$h}Jo;;^KVU zGv04HFS|HZ6f?Hx3-X@f0`E5kHAoaQHlGWv3-31tHAWOO*42kpa)I}of_hUFGuCyH zb>aP{pyr8U#=0)fk1M$ds^JTTL1xSaChsmT;X0FQi{Lr@ir=1nY`EA|>s(TCajESY z_feN*7kh|e#`b(!-ZNd)?xTV_UKBGnpUbTa*Y2RM7R8KpT|p|lsNK^BHA)mS)^(+I z;o2S4>!O&kuB$Qy7r3VlYK|yo%mpUzF8XqvbdGv#yHCc2i$*UNPWx6|T%Fr7Rh*;x zW)~ZaV#fB|k5u{E9n^lJn6dfvw=SHcf;v+aGuAbLRC0l9cThKrV#d0zu`ZmWf_hdI zGuAaQKQ6eywL7RUMKNP8FnM<|i0dR5!^i*rM7UV|rNYIaii>M)&u}p)yI5BgGq&f! zdCxG2Yj;q4i(U;$n#H87^+hE;bOwjO}@7-g9yhRC`g(*nDob zF1QHlG*Qf0*Da*VE`qvI6f@Q}%(~zrs3%1+V_moA$CX?JHC+@l<^q#<7sI*EtlA>D zUi|vdU7Li9f3?o=ii_K9&v;LKcy_VI%Y{K^Y|ppnJ;Mdw6Ax;4QOwwU?yxSrCmz&^ zqL{I+J4q!M`2B>St`)_Mb=_rMcuzd2@uHZquDf#=T;TT;g8En#Gv)%5cNh0?o%yvj z;Nq~$4j33N{?XvkaZh%!%A~>tGq&e@Nu}!rTm-d~C}wOv_gUBX zqegEV)X}1tv99|`B^UoLcJT{AT`7tg>l$fYa1qo4qL{I+2XYr&Ya-y))`fCG1~Tw<6=~HvCQPc1v9qi2T7G(1ht(gW^6tWSr?9r zpt^}-#=6FkN-l6*1l3OzGuHL6b-_hY<3urIU1M_>T;R9}>SIyNmTV#d10 zlS(dd9~IQ;qL{I+$E^$3i=YOHV#c~A8OOyF*~N5G%-Eiv%6m@Ni=Y;YV#en4v~}UQ2&(BTg?DDG>lsqX1&)iL zwiU&UbvQ}Gq&d!Nu}cg*NdQD7R8Ls=OydH^&+TmL@{Gs6Gw=4*))&Q$bxq1$aDnSZP`im@##~_X?qV|6nN(W?*Y3AZIc-F^I9lsWuDFzRTJJns(bP*Kd73ryZ!yuo$S>rwM(Zag?#T&8v2sJM7Dx8rPs*Q4IZ zF76k_jP3a?QrSiA^{AlU7sZUt=WXl4>rp{1_F6GjW~}QSQrSiA^{Ak>6vd2ny=z@~ zJu0Z9L@{Gs)AHkj3tTUP8t{M2y$hUOReAS+LIQFVf~X)x7b4aXst!OqF8TLv49mX z6>Bx`^Q^V@-fKP2Z>_z@KkxhbA2?@r_WC~0TEE{~d+p2F=NuPhn4mA%`LHkUF?q7> z;*l?HCUI6@t@eJG=N{D;pAFi~+r>S3Uwqz08764+=khjl5At?VME$}=87A=O^Fdv_ zT@+F0ebTnoFhN~kFj0A5&~{NoZFEtF3F`V{P#13(Mbw;&GE7j{m+~m?3*Ih@s5iMN z!vuZ7&WC+*ugUXK%E5Eg+UH+Ow`FC0al6ZNuj-30=e4t|{F$|T^S=0oi!w~m=C7Ej zY`fsktQAow{IjjqFo8e!1$FUf){3a*F3K=LU0*d(SzqvH){3YrU6f&hy8bPwi$Akg zMBU_~3=`D#wLFTzi!w~m=5Ly)yf5gOwupMdr)*ysCh+H5L0x=ITSQ&rq6`z%_3tJs?+ZGn zEuxw($}mA)-wx{HW7;C>u!}NGP}g^IUECKuM-@@;by0>1`huMg`{KJM4{Z$QbM!mz zKeV#wi!Zx8-&K8af6!*WNAbIPU;NZX8764+_wqJ#5Awa}Mbwl3#rB0^0)PG^sEhAW zETZ~dlwpFp9xzc^U+}%?MO4d0878Rf!Jsa_N3n={t&1{DP}f62U3`yX5%oS7WtgC@ z?+119J&HxtS6q}~g1Y|GMDZNP5B`0kBI>A%GEC6#+{i!w}5*W#cq-Y$x$ zvp-||!Z1NyOY*2}yC|YAc2R~2`huMg`{G!WC)+o@YU+PqS@gwAT%Kc3mY*LyF0Y-p z3*I*!d-Ac|5PIx$QHBZH{1_9J^#$*nil{fbD8mH)93Rxh`=%o5?_HE(g1SyHQCVN` zzNv`1&qWy~sO!X_F5Wj4QNMIih6(CADX5G0O+{4CJ+=o86V!EbP#5o;il}ui$}mA) zk2O*LzNv`X>7oo1^gH)**zc#9JXycDn&*9?==Xyz&nc?kPYv44{eDW`?{9Tch6&od z)I|CHUPRsDq6`!Gb6QXr_j?ibJr`w|psvT6D8Ju}s8c>``@%3mU8e_ialaQ)D_xXf zg1R0b)W!W?L|x&c3=`D#grF|&_af?*F3K=LT~9Poe!mw{Z*x(G3HqITIqdf{OrGr8 z#mzta^;Z@Beuv9*hU)h-gEsTEi!<_mf5=4{CTR1MOjOqId@oHAb?)bEUl=Cv=d7SE zzIIVWz1T$=CaCMzOjOqId@oHAb&dw;p6_@+SVVo> zMHwdO3wA#2i*rn#tS@>ue1axZ>q@Qm#LwHMb5viP8?>4G;+(uM*19Oe1a0og+srdI z_eBx)G8bi-z@MiCb#Y%5QGep13=`D#R1@X*MG^IR7iE~BuBQccabFZskNJXi!!SWz zy}7QeFN&z=yC}m1eZkI$eQ}=2^HEB|+t}d5lUEddvB%{(PxZyqgEsTEi}Uin_#GEz zn4rzi$lJ_)!PhQ|sDE@(h6(&RKd6hZT@+Cdx+ud0bv@HWWqrZdE{dpM`=WK#FhO0< z3hLr(7e&;iF3K=LUC+*=xG(rvy@m z@!Y)j?3m;^d0*V&q6`zX`2rJ_%~5*+m&9=y&eru-{jkJV$8kaIP1A?5-ab{l4g4>*{LN?-vGb=JSHpdB3lA zQHBZH{CpFY^*f&z6j2=)WthO9i-NlNyr77Bmy0q?P}dq0mGwKH7Zgzsx+ud0b-f^{ zi_Z&+sAqoJx?z~0t{3J}*)~{2O}Z$<1bxBIhkbFe$#W?s;qQL@){}nxy;|)UPDziq zxjYxEzPKc>owvdB{_Q0nyg2WR&$=kX1Z{qiiOR+g|NeUs_1LdirG}|By3PHqu4x3l zn6r|dv$NU1*P1-bvVWStS(}Gk9%hcIUEoFanJD_1BJYt!{kDr@<`{O2z9HQ{*q_j` zy2&#^#dMNYd+!M+Z7UqR)8(lv$JUuBda1EvSNz%JOY6B~_q!;=1djEasLZiHdFQ=9 zE~1v+XB{(4?Sjr^quZd=^cXNvJmxcftie9kP!#85hWs&6y>w3s?F&s*FD-EkpV2(; zrXv1wR~IuBRa8}5Z=#+}5!{+Le&eA(E~56iC}zUCHkc^hQaI`lYk%>nBI@^D6fl6^ef4kFQ0Ky%-D55b!+UXqk!6zzshaoM^CM_ z=NV~3Pwy$g~^4JJR%cZ9Fs|e=N^12@#B{ZwO-(|j3jh4$y6up?fIORXTbH}Cm zXqj|Th6zT?h>6NZ3vXXV)N5RnVS+Yu3&S>VGDuq6fDyZ1bqeb1ntY z2RLfy|HjL{UyPCqU7k_Z<`?I+bDLM5|KQ@$yv-Y2lwpE4Z!u9kdin8N{S!YfqQ+g6 zVYtmJFS1yTTNt)^%;cG&;qW42UUl~|?3LoY?{ray z3F^8csO#Cw|KSxyU0-!kh6(DrGLNF_YHxYXCA~$|!!F7&+!w2|@x#uCeQ}k^^9(nB z?*7{52aCQq?rU}&UZwit>b!P#_2<{zvF)n7FIKxK!vt;KVWRx;Q$$_oq6`y^A8ujT z=9ic}PonX|W9++c*>iQ#=0A3MUZUFk(xA=HeBpIJeo5Zue{oTU3EDiKN3qYmofc6? zU6f&r&#M`t2e&Y6^EI~3RK~O5B@cYyvZBo^zHWWK#N-+{4H1%>DU_i!w~$&!maUwy%pnwrW)o zb=o(qF2e+4z8TbYU6f(C-&eEG{9xx@zxN)PC2^ z`;@c4Y5i%LzSv3sT07aD?w~d=q)Ld)yX}PtWbG&$Nc8x6Rs&m->ZUn!EbjbJIpZ{W4Qx?Hi^( z+jjj7>>yX&swduRA0q<3vKcy9Xo*7RgW+DhbM+G&}XEBmgjU%?&E{cbn$@uK}h&8eAYr;ivgGpbp@OqD!$ZrnVuZDeqKcpx%;)-rMb z?<&l^`F~a;b#;H=__B4weV1Lfp*}h^GSX+~D>aj^?WGCHZ5lr3v7n9BQ)h&eUTnpcn3Y2DYGtk6m#0`ZGETN9BJ+BG&%=r z)B8C6*n!z@bFW)Bxc_ozD<8d9 zJu0bet5!UEt$I{a*;YLYV?Eo%|37blHUaGd^V6d3&CV2Tu699dS9ew~UpBsMnVp^Uv5k(@>|DjA`C9B$CTnHUuo!3sRsgd>Tw1lwxT3sjWnQ|C zo{ce37#hQ*wGqxK9o;rgLvnCncp$Si9}a$z7%6^{5b77%s9c&~6o~N)!sdG=w!ve~ z?)FymdfC`~b=c5+b=b&!b=bgswcogWWzeu}ZO|y%gxy{?^Uz^j02@|BWG1NyPym|8 ziBJP+eLkcITC+1#jROOn*1l%PO(U|wG!`%xHb07mK1Z?8_bBEIjY5I!80Gru$}t}8 z)`9x;wv@o3IVG@fQ3)Ctm1fqSSDTzYp zNPBmx?}B12FeujIf?_Q!D3+pvLM6yAwPI*Y`aQP3)86ZjuH=|Zk)gyC8LCZ@q3{&x zdywJ+I}#vrhK<=aUGH`q6MLGIl`M*cq`ZoRq)dy1q}+>y#BGcOB>cn?xv|AKWH9b# zgi{tqIOSV}Q)Wdt;ZTH6)cTjEW?CjAM>v`0Rg`{b>h zvkOqqZ&Wdg>O2^bS5U`Uz(DQAK`y&c=rm~3{&=5~&@W}4>S z4rN0e6h_2BVMQDiX2ik3jyM(?66FF*Hq6ZRw>wEQLIm0nBG7;kfzm?+hz9(TgWLlucpiGTH zu^NMtH3o!h2+3CzHeqaJxS|g}nYO|w({A`=+7O>idE#?PTRaduB;RAI--EQXVmbu6kq$`@64VN%I8>2(&|W1;I_T3YAfBx8asS5_gz^4dZ;sqEzt*{Gd=)J@QaaNuRM@e zr@MpqHPibq!9an6fkQ$tP^MsjQb8cGAyVk2_XA?@XXiy)U0$R`*7<)dT8xJ#xv8OX604YaQphSh`g|zI(I9oa0#j>+C-QYXb(I%FFwd4e> zdoTg(K25;VmISISinE1XWaIj|si{qky|Fo{DAtyMXwk(oI$A7+2C0=azcdgt+CMxz z*_`gScD3kUC)DQ@Dj_ILLb{KmnS@B3DcNi!SfmN!>DVl>Dd(k7XkH2x=B0YrlK#9D zbYEVE#AJnmigk0d2^D!MRFRiL6?rLCk(UA$c^OiX6-pJulaY}}0bCYSP{fHL6vW{& z+;+|wX*m_ic8^W9yG0wa_h+fE___kMAuEryKP!**K~^5?g{&NF$x0)7Tydajc*~0; zJz+|q4lhPH?Zu!H&}tKb+RFt&OSkWAwP&|9_qF&2%}ARC16wZ`*b{<*y&)K&O%OLPtSHc&Bor#Ta(>AkumR*!GM$h6}D~IB|a-hsBMY4+GKvTUlu_qy^D29rPVkoF6 zhI)!(Ag3rqYVuMmW_U&amS#hpOXaJ>#^Jn#${{sMqN&ylUK7X zQEt6zR={Vw6v^xLqGc|NY?@tN^#0}T&ULf&MhKlotZ&kHZglu&^SK$c2}jXT0iXXx z(a`K98g@Vu^`$4lz>O4{GRS=TyP81`tzuA+HS1m6#2{-WwA>(T;D`h{e2q9qijc}>2BlU2fx^N5e!JZzcH)A8Dg~o^o*E$-xV;GmXcYuf8zNG# z`5bXtu7||bdPq#Hhs3mc2$t#r5v2uD2;I`0HFg(e;8qO)X|Vv(asi|T14v2+h!U-t zLbe@abQ8j^*6z8EIWkH2GeETkC0WI$N@FjYwGt{#iB_+yiIIgt{06OPADY)7rj3D^ z9vu+V;{#&S3@F=-8ilplyHOrWh#n!tNjb^68!=5bcr5ofh0 zaaJ1>XQexFQdty53!e%XFK={aB1cvL(#`-#TLK{M1%RXp08#2SQ^+oyak486j*!#_ zq;rbBjT@XOXBATV5vyC75&;Wm3fK7Dr%kg5T~Qcq@Fi#Zio*0nf+Mt3)#~tlD2qr9 zBHSwJU|9{y$&!G=(ZcdnOT@eGZhYVf?P#?+d`HV7w4-Ga($O+rIa(5c9rcbb(ctuR z258#D0JXwm<^^clwE#`o6@W>fe6rM_;#**1qs>dlaAlK<%oS`ZGFOBvTE%&*nni42 zSADWEL-X74B!B)adtZsJ_e9229EX<0aX7Z(I2>Pb92ggek#$izFwecO)ViVUBoBem zFa$!Y5C}~|Ag~8v$QZx{mSmr6otaCV^GXO>At7jkgrEfy0`et-qzfjL-I{1l&+@fW z_a;Psy;RINBLKwm0f;RCAhrR3$O?c#J2V$qvV99*vpg`sKMn(~`_K+5AfO2W0o4Zt zlpPR2Z%~ee`aqy?l)n9apgBP|cFZ;tqg`WAtHz*UjX~8K1JX5w^eZYfVU|xXXIX!- zGZceS1gMRYNwUUQ#y-yaV((X-`MhsnyLiHGhCSVkLfl*)y z29Yz63=G=3r`g%dKYGyZ(xs8uzD!Zj7DYiv6a~#t6!1YY$N~uk>gki1{Zs9U>*$NY zUpCjAo@g~=4nPvR07>WsB%vFS1dc!sxq`sL8FL|acxq~HultCRd&fMRF#Pv=6LP+yX*plf zx16tNUCvi>FQ=;+nBgf8X?SKBIAzrR;`3EJ^!X|t`g|1+eZJg7pRVAcheHpqYEM_) zXhSsVT!=}J!JbS1NLx`JOhTg9>rj=ScK zz4V4@T=VI2*L=F%HJ>hb&8N#;^Vw3@JlMK6xQ}+9<6D}$TlCvOo&Ltu)Xv7lb#hk_ zqe7QrROn8O3SEg&z8f(na3KQu>bFgIBKotVE}H~#w$(#!ZY`|H7IdAEH+)exVXG+``8rffNQbQ|-iLn*Kgb^`JjIJ0K*bsw47b282L4A*H znH|x9m@(0Sm_^Zmm|4*PY+DqM7#QQNmHl+Vy4!SPiQo29xExwlB0@8(M1*cui3shi z65;zvKW>XEM0JT=(wTumHEP->^iZNYG7;Yx^)#XWU23zEDKx_g>Kqx znY#{R7SPxV9SS{A#i0qR*hXhAsN&EDRUG=DihUzgVc>);%{Q;@>!uph*O_mK2KQ{z z9S32#ZIHLIiSkenZ78BV6r{_2MY=SQq>8O3I?be?Gw(EK_wbizY~I)GbXt?@X6_gj z>WfjK$`}=DjZwbh7!&A@KzWaAiV&(*xzs9wd^_+8_P8a=-$}DHkB6jX;>^#aLrs1t$Ond;k=10Z_mL zKq&_RqxEaZQ%_&&N?+j_jD)S7RzuwgWM+Xl47`ZLz>+u&oQcEApg5|1in7)&I>JJ~ zE}yRsEy!1gV)NCZtbDaEAYU0YHCr1r3VeLQww4QE!-|M(H|`P_5ugAxk9pKUTAw%3 zoi#Qm*+6|mGJWpfesx3+s3uE5xhetWuLOh?Su7=qa&HSF-}nrIuGtJvt~=ls(G~IR z_%TL@qRZ&efigO@qm1^wDPsepO5o774FkiYoz~t)Co`?MGL~KF&hkOjYN~`CQAt_Ie3%nDkI2w=H~i>qpT6WrUXIFICZOcd3^PfMFjEPHED(91 z_>l2r7niic#%9;gjcg48*%|_)Kto{r(~y#_5iMIWo@|<$%%_3r_kG3=Oi!TCGiDvG zIUqifPxfdmUpc2-fVFBP5axM7KIt~uy5uO(9PlEMFVF}%JREer$_toHdx0>|3$n_6 z7}|S>CN(-@H1MS~ci>Kf1|B77YZoD*iRodp3J(6yBRT}k3 zEHmtp2<-I;4fY7+-s}iGPSBu75;W+M1Z{H%J(8e7k0fZYjU;H*BMDabNE{A(WYfNl zjp@ej=Hx(gvNgds{NtR80^=mA*l%LU@8K;n2JD7rg-RPBEWOBKJl`- zR;MY=%;ucHnJ5cfjIzMLC<~m6vdXh4sojd9o=;ooLLhwwM9imPCWx|DPc_!+3AXE! zywzCXe@Wh8Mvk(||0t>bkD=E8jqTY+Yr=e!VRrRnYkQ`R-dazh;V4a_p-D+J9HU9p zw&UnKF6m?0h#Gr~h+26zY-?g0_O1tEp3fP|oY2|@7^0@5XdgbOB+ zO?&5Z*%E@XB?M(l2+EcakS!4;TQGradtWF}p6yIrhXc+wxtz1D&UPYY`N}!yXS99U zP9|P2a1~@j#%e6^mV9@IkbKphe;;CY-2wXY@AlLj`jK7N!qTYNpsP}saHC>f3ylJf zmez#)Eei_Vrj6S+ z&A=#h1f#$f3?gqJ85qPjAvkk3wkP#HX!-mgF=$LIo7hq`1`W{|FhfJg2t~zANNpru z5{H$U5M+y+5M(RG(k8fEB_>$Pnn2S@{wAXBZa%`9YVY=LNz8UiI%{Bk63zX02O5F<`iu7SLovyP!;q>>=JWJMxNvJM%U7mC`hhF8 zS!goH#o`KJoD0WboD0WaoU{3|u@~pUaTn)8Z{wUl-r`i?Z4|TK28U&G2-)hgO*e^# z4kyvjyFf`R8L(rp<04(B-UJIq_1_Ise@`Qru*+2&^#1tU;s zM+6Fuh(Nvt5hM_g8DF;f3bxcu!ZroKkaU0{@c={e0j3QA5U@Z~z6msex;?6%(@nnz z01_SmNOAxmu>qiE2E{<2U+znzDTft|@%PozGX7>uqY;xxEGCg^Od|Q1)IMMi7y?1x z8FI{hZYBT03w82k2R|l}GnhoqU=lflN$m{gfHM&EogwQgI)h2%3?`8?m_*KCQagh= z;0y$PXX=yJ(mmh2xzMe_jmTu7AmoRFkQE9-E+|MFpb(&4GQMmYG1(+i{3d3&(-R1i zED$7EAV{u2v{(TEsUabS(o8uwTVYDzDK!LRq7@jEuE3Z93dA-jEMkV_tR(|02lzcE zcep<`GHiAt^1vuYg=WO4(1{oo+7P3B4`NJUKm^LwugSmJj4yu9btdx9pl65SlmS7u zy(N%sZg$?1%v1s?6XR{lPAwzV2@6pk=^$V{1B>tXN?M38U?ReRjR>>Z0wWOytVEa^ zkZZ;frtCzJHWW~vrS+*+V|Hw=v#T-Dtj}(3?&qKX23zHt@d#-fpH1IpBt%HyMuY^0 zL`daHgwwWQ&~s+2+i7(wbU*4TkF=hJ90MgdMQaOZAn_GP0~t# zk`|66S?N&0KMK*NC`3D<5Gh{)O0y&iq3h`TGp94DTbk38 z%?|niHXV+{NG&@?YV|Qvn-C+V7cov*5&;Wm2B#-0`GPs^3g)yYnA476PWpi<&1QaNBe+1u&6kJ_~H*ju2{O);lnoJ1`4Hih5fM%} z5uv0N7%RM3KJLDv(_E+qdxhna(E25zl}kcvmV{I*%au+6#1z)2C %=GVRw5H3| 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 uav, uint address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture1D uav, uint address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture1D uav, uint address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + +uint NvInterlockedAddFp16x2(RWTexture2D uav, uint2 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture2D uav, uint2 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture2D uav, uint2 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + +uint NvInterlockedAddFp16x2(RWTexture3D uav, uint3 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture3D uav, uint3 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture3D uav, uint3 address, uint fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + + +// versions taking two fp32 values (internally converted to fp16) +uint NvInterlockedAddFp16x2(RWTexture1D uav, uint address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture1D uav, uint address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture1D uav, uint address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MAX); +} + +uint NvInterlockedAddFp16x2(RWTexture2D uav, uint2 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture2D uav, uint2 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture2D uav, uint2 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MAX); +} + +uint NvInterlockedAddFp16x2(RWTexture3D uav, uint3 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_ADD); +} + +uint NvInterlockedMinFp16x2(RWTexture3D uav, uint3 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MIN); +} + +uint NvInterlockedMaxFp16x2(RWTexture3D uav, uint3 address, float2 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x2Tofp16x2(val), NV_EXTN_ATOM_MAX); +} + + +//----------------------------------------------------------------------------// + +// The functions below perform Atomic operation on a R16G16B16A16_FLOAT UAV at the given address +// the uint2 paramater 'fp16x2Val' is treated as four fp16 values +// i.e, fp16x2Val.x = uav.xy and fp16x2Val.y = uav.yz +// The returned value are the four fp16 values (.xyzw components) packed into uint2 +// Warning: Behaviour of these set of functions is undefined if the UAV is not +// of R16G16B16A16_FLOAT format (might result in app crash or TDR) + +uint2 NvInterlockedAddFp16x4(RWTexture1D uav, uint address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture1D uav, uint address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture1D uav, uint address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedAddFp16x4(RWTexture2D uav, uint2 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture2D uav, uint2 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture2D uav, uint2 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedAddFp16x4(RWTexture3D uav, uint3 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture3D uav, uint3 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture3D uav, uint3 address, uint2 fp16x2Val) +{ + return __NvAtomicOpFP16x2(uav, address, fp16x2Val, NV_EXTN_ATOM_MAX); +} + +// versions taking four fp32 values (internally converted to fp16) +uint2 NvInterlockedAddFp16x4(RWTexture1D uav, uint address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture1D uav, uint address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture1D uav, uint address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedAddFp16x4(RWTexture2D uav, uint2 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture2D uav, uint2 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture2D uav, uint2 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedAddFp16x4(RWTexture3D uav, uint3 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMinFp16x4(RWTexture3D uav, uint3 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedMaxFp16x4(RWTexture3D uav, uint3 address, float4 val) +{ + return __NvAtomicOpFP16x2(uav, address, __fp32x4Tofp16x4(val), NV_EXTN_ATOM_MAX); +} + + +//----------------------------------------------------------------------------// +//----------------------------- FP32 Atmoic Functions-------------------------// +//----------------------------------------------------------------------------// + +// The functions below performs atomic add on the given UAV treating the value as float +// byteAddress must be multiple of 4 +// The returned value is the value present in memory location before the atomic add + +float NvInterlockedAddFp32(RWByteAddressBuffer uav, uint byteAddress, float val) +{ + return __NvAtomicAddFP32(uav, byteAddress, val); +} + +//----------------------------------------------------------------------------// + +// The functions below perform atomic add on a R32_FLOAT UAV at the given address +// the returned value is the value before performing the atomic add +// Warning: Behaviour of these set of functions is undefined if the UAV is not +// of R32_FLOAT format (might result in app crash or TDR) + +float NvInterlockedAddFp32(RWTexture1D uav, uint address, float val) +{ + return __NvAtomicAddFP32(uav, address, val); +} + +float NvInterlockedAddFp32(RWTexture2D uav, uint2 address, float val) +{ + return __NvAtomicAddFP32(uav, address, val); +} + +float NvInterlockedAddFp32(RWTexture3D uav, uint3 address, float val) +{ + return __NvAtomicAddFP32(uav, address, val); +} + + +//----------------------------------------------------------------------------// +//--------------------------- UINT64 Atmoic Functions-------------------------// +//----------------------------------------------------------------------------// + +// The functions below performs atomic operation on the given UAV treating the value as uint64 +// byteAddress must be multiple of 8 +// The returned value is the value present in memory location before the atomic operation +// uint2 vector type is used to represent a single uint64 value with the x component containing the low 32 bits and y component the high 32 bits. + +uint2 NvInterlockedAddUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMaxUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedMinUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedAndUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_AND); +} + +uint2 NvInterlockedOrUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_OR); +} + +uint2 NvInterlockedXorUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_XOR); +} + +uint2 NvInterlockedCompareExchangeUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 compare_value, uint2 value) +{ + return __NvAtomicCompareExchangeUINT64(uav, byteAddress, compare_value, value); +} + +uint2 NvInterlockedExchangeUint64(RWByteAddressBuffer uav, uint byteAddress, uint2 value) +{ + return __NvAtomicOpUINT64(uav, byteAddress, value, NV_EXTN_ATOM_SWAP); +} + +//----------------------------------------------------------------------------// + +// The functions below perform atomic operation on a R32G32_UINT UAV at the given address treating the value as uint64 +// the returned value is the value before performing the atomic operation +// uint2 vector type is used to represent a single uint64 value with the x component containing the low 32 bits and y component the high 32 bits. +// Warning: Behaviour of these set of functions is undefined if the UAV is not of R32G32_UINT format (might result in app crash or TDR) + +uint2 NvInterlockedAddUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMaxUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedMinUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedAndUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_AND); +} + +uint2 NvInterlockedOrUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_OR); +} + +uint2 NvInterlockedXorUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_XOR); +} + +uint2 NvInterlockedCompareExchangeUint64(RWTexture1D uav, uint address, uint2 compare_value, uint2 value) +{ + return __NvAtomicCompareExchangeUINT64(uav, address, compare_value, value); +} + +uint2 NvInterlockedExchangeUint64(RWTexture1D uav, uint address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_SWAP); +} + +uint2 NvInterlockedAddUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMaxUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedMinUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedAndUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_AND); +} + +uint2 NvInterlockedOrUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_OR); +} + +uint2 NvInterlockedXorUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_XOR); +} + +uint2 NvInterlockedCompareExchangeUint64(RWTexture2D uav, uint2 address, uint2 compare_value, uint2 value) +{ + return __NvAtomicCompareExchangeUINT64(uav, address, compare_value, value); +} + +uint2 NvInterlockedExchangeUint64(RWTexture2D uav, uint2 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_SWAP); +} + +uint2 NvInterlockedAddUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_ADD); +} + +uint2 NvInterlockedMaxUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MAX); +} + +uint2 NvInterlockedMinUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_MIN); +} + +uint2 NvInterlockedAndUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_AND); +} + +uint2 NvInterlockedOrUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_OR); +} + +uint2 NvInterlockedXorUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_XOR); +} + +uint2 NvInterlockedCompareExchangeUint64(RWTexture3D uav, uint3 address, uint2 compare_value, uint2 value) +{ + return __NvAtomicCompareExchangeUINT64(uav, address, compare_value, value); +} + +uint2 NvInterlockedExchangeUint64(RWTexture3D uav, uint3 address, uint2 value) +{ + return __NvAtomicOpUINT64(uav, address, value, NV_EXTN_ATOM_SWAP); +} + +//----------------------------------------------------------------------------// +//--------------------------- VPRS functions ---------------------------------// +//----------------------------------------------------------------------------// + +// Returns the shading rate and the number of per-pixel shading passes for current VPRS pixel +uint3 NvGetShadingRate() +{ + uint3 shadingRate = (uint3)0; + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_GET_SHADING_RATE; + g_NvidiaExt[index].numOutputsForIncCounter = 3; + shadingRate.x = g_NvidiaExt.IncrementCounter(); + shadingRate.y = g_NvidiaExt.IncrementCounter(); + shadingRate.z = g_NvidiaExt.IncrementCounter(); + return shadingRate; +} + +float NvEvaluateAttributeAtSampleForVPRS(float attrib, uint sampleIndex, int2 pixelOffset) +{ + float value = (float)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float2 NvEvaluateAttributeAtSampleForVPRS(float2 attrib, uint sampleIndex, int2 pixelOffset) +{ + float2 value = (float2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float3 NvEvaluateAttributeAtSampleForVPRS(float3 attrib, uint sampleIndex, int2 pixelOffset) +{ + float3 value = (float3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + value.z = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float4 NvEvaluateAttributeAtSampleForVPRS(float4 attrib, uint sampleIndex, int2 pixelOffset) +{ + float4 value = (float4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + value.z = asfloat(g_NvidiaExt.IncrementCounter()); + value.w = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +int NvEvaluateAttributeAtSampleForVPRS(int attrib, uint sampleIndex, int2 pixelOffset) +{ + int value = (int)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int2 NvEvaluateAttributeAtSampleForVPRS(int2 attrib, uint sampleIndex, int2 pixelOffset) +{ + int2 value = (int2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int3 NvEvaluateAttributeAtSampleForVPRS(int3 attrib, uint sampleIndex, int2 pixelOffset) +{ + int3 value = (int3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + value.z = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int4 NvEvaluateAttributeAtSampleForVPRS(int4 attrib, uint sampleIndex, int2 pixelOffset) +{ + int4 value = (int4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + value.z = asint(g_NvidiaExt.IncrementCounter()); + value.w = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint NvEvaluateAttributeAtSampleForVPRS(uint attrib, uint sampleIndex, int2 pixelOffset) +{ + uint value = (uint)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint2 NvEvaluateAttributeAtSampleForVPRS(uint2 attrib, uint sampleIndex, int2 pixelOffset) +{ + uint2 value = (uint2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint3 NvEvaluateAttributeAtSampleForVPRS(uint3 attrib, uint sampleIndex, int2 pixelOffset) +{ + uint3 value = (uint3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + value.z = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint4 NvEvaluateAttributeAtSampleForVPRS(uint4 attrib, uint sampleIndex, int2 pixelOffset) +{ + uint4 value = (uint4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.x = sampleIndex; + g_NvidiaExt[ext].src2u.xy = pixelOffset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + value.z = asuint(g_NvidiaExt.IncrementCounter()); + value.w = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + + +float NvEvaluateAttributeSnappedForVPRS(float attrib, uint2 offset) +{ + float value = (float)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float2 NvEvaluateAttributeSnappedForVPRS(float2 attrib, uint2 offset) +{ + float2 value = (float2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float3 NvEvaluateAttributeSnappedForVPRS(float3 attrib, uint2 offset) +{ + float3 value = (float3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + value.z = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +float4 NvEvaluateAttributeSnappedForVPRS(float4 attrib, uint2 offset) +{ + float4 value = (float4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asfloat(g_NvidiaExt.IncrementCounter()); + value.y = asfloat(g_NvidiaExt.IncrementCounter()); + value.z = asfloat(g_NvidiaExt.IncrementCounter()); + value.w = asfloat(g_NvidiaExt.IncrementCounter()); + return value; +} + +int NvEvaluateAttributeSnappedForVPRS(int attrib, uint2 offset) +{ + int value = (int)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int2 NvEvaluateAttributeSnappedForVPRS(int2 attrib, uint2 offset) +{ + int2 value = (int2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int3 NvEvaluateAttributeSnappedForVPRS(int3 attrib, uint2 offset) +{ + int3 value = (int3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + value.z = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +int4 NvEvaluateAttributeSnappedForVPRS(int4 attrib, uint2 offset) +{ + int4 value = (int4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asint(g_NvidiaExt.IncrementCounter()); + value.y = asint(g_NvidiaExt.IncrementCounter()); + value.z = asint(g_NvidiaExt.IncrementCounter()); + value.w = asint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint NvEvaluateAttributeSnappedForVPRS(uint attrib, uint2 offset) +{ + uint value = (uint)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.x = asuint(attrib.x); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 1; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint2 NvEvaluateAttributeSnappedForVPRS(uint2 attrib, uint2 offset) +{ + uint2 value = (uint2)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xy = asuint(attrib.xy); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 2; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint3 NvEvaluateAttributeSnappedForVPRS(uint3 attrib, uint2 offset) +{ + uint3 value = (uint3)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyz = asuint(attrib.xyz); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 3; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + value.z = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +uint4 NvEvaluateAttributeSnappedForVPRS(uint4 attrib, uint2 offset) +{ + uint4 value = (uint4)0; + uint ext = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[ext].opcode = NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED; + g_NvidiaExt[ext].src0u.xyzw = asuint(attrib.xyzw); + g_NvidiaExt[ext].src1u.xy = offset; + g_NvidiaExt[ext].numOutputsForIncCounter = 4; + value.x = asuint(g_NvidiaExt.IncrementCounter()); + value.y = asuint(g_NvidiaExt.IncrementCounter()); + value.z = asuint(g_NvidiaExt.IncrementCounter()); + value.w = asuint(g_NvidiaExt.IncrementCounter()); + return value; +} + +// MATCH instruction variants +uint NvWaveMatch(uint value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = value; + g_NvidiaExt[index].src1u.x = 1; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + +uint NvWaveMatch(uint2 value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = value.xy; + g_NvidiaExt[index].src1u.x = 2; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + +uint NvWaveMatch(uint4 value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u = value; + g_NvidiaExt[index].src1u.x = 4; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + +uint NvWaveMatch(float value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = asuint(value); + g_NvidiaExt[index].src1u.x = 1; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + +uint NvWaveMatch(float2 value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = asuint(value); + g_NvidiaExt[index].src1u.x = 2; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + +uint NvWaveMatch(float4 value) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u = asuint(value); + g_NvidiaExt[index].src1u.x = 4; + g_NvidiaExt[index].opcode = NV_EXTN_OP_MATCH_ANY; + // result is returned as the return value of IncrementCounter on fake UAV slot + return g_NvidiaExt.IncrementCounter(); +} + + +//----------------------------------------------------------------------------// +//------------------------------ Footprint functions -------------------------// +//----------------------------------------------------------------------------// +// texSpace and smpSpace must be immediates, texIndex and smpIndex can be variable +// offset must be immediate +// the required components of location and offset fields can be filled depending on the dimension/type of the texture +// texType should be one of 2D or 3D as defined in nvShaderExtnEnums.h and and should be an immediate literal +// if the above restrictions are not met, the behaviour of this instruction is undefined + +uint4 NvFootprintFine(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprint(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, offset); +} + +uint4 NvFootprintCoarse(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprint(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, offset); +} + + + +uint4 NvFootprintFineBias(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float bias, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintBias(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, bias, offset); +} + +uint4 NvFootprintCoarseBias(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float bias, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintBias(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, bias, offset); +} + + + +uint4 NvFootprintFineLevel(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float lodLevel, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintLevel(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, lodLevel, offset); +} + +uint4 NvFootprintCoarseLevel(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float lodLevel, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintLevel(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, lodLevel, offset); +} + + + +uint4 NvFootprintFineGrad(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float3 ddx, float3 ddy, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintGrad(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, ddx, ddy, offset); +} + +uint4 NvFootprintCoarseGrad(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float3 ddx, float3 ddy, int3 offset = int3(0, 0, 0)) +{ + return __NvFootprintGrad(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, ddx, ddy, offset); +} + +uint NvFootprintExtractLOD(uint4 blob) +{ + return ((blob.w & 0xF000) >> 12); +} + +uint NvFootprintExtractReturnGran(uint4 blob) +{ + return ((blob.z & 0xF000000) >> 24); +} + +uint2 NvFootprintExtractAnchorTileLoc2D(uint4 blob) +{ + uint2 loc; + loc.x = (blob.w & 0xFFF); + loc.y = (blob.z & 0xFFF); + return loc; +} + +uint3 NvFootprintExtractAnchorTileLoc3D(uint4 blob) +{ + uint3 loc; + loc.x = (blob.w & 0xFFF); + loc.y = ((blob.w & 0xFFF0000) >> 16); + loc.z = (blob.z & 0x1FFF); + return loc; +} + +uint2 NvFootprintExtractOffset2D(uint4 blob) +{ + uint2 loc; + loc.x = ((blob.z & 0x070000) >> 16); + loc.y = ((blob.z & 0x380000) >> 19); + return loc; +} + +uint3 NvFootprintExtractOffset3D(uint4 blob) +{ + uint3 loc; + loc.x = ((blob.z & 0x030000) >> 16); + loc.y = ((blob.z & 0x0C0000) >> 18); + loc.z = ((blob.z & 0x300000) >> 20); + return loc; +} + +uint2 NvFootprintExtractBitmask(uint4 blob) +{ + return blob.xy; +} + + +// Variant of Footprint extensions which returns isSingleLod (out parameter) +// isSingleLod = true -> This footprint request touched the texels from only single LOD. +uint4 NvFootprintFine(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprint(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + +uint4 NvFootprintCoarse(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprint(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + + + +uint4 NvFootprintFineBias(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float bias, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintBias(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, bias, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + +uint4 NvFootprintCoarseBias(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float bias, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintBias(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, bias, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + + + +uint4 NvFootprintFineLevel(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float lodLevel, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintLevel(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, lodLevel, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + +uint4 NvFootprintCoarseLevel(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float lodLevel, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintLevel(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, lodLevel, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + + + +uint4 NvFootprintFineGrad(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float3 ddx, float3 ddy, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintGrad(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_FINE, gran, ddx, ddy, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + +uint4 NvFootprintCoarseGrad(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint gran, float3 ddx, float3 ddy, out uint isSingleLod, int3 offset = int3(0, 0, 0)) +{ + uint4 res = __NvFootprintGrad(texSpace, texIndex, smpSpace, smpIndex, texType, location, NV_EXTN_FOOTPRINT_MODE_COARSE, gran, ddx, ddy, offset); + isSingleLod = __NvGetSpecial(NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED); + return res; +} + + +uint NvActiveThreads() +{ + return NvBallot(1); +} + + +//----------------------------------------------------------------------------// +//------------------------------ WaveMultiPrefix functions -------------------// +//----------------------------------------------------------------------------// + +// Following are the WaveMultiPrefix functions for different operations (Add, Bitand, BitOr, BitXOr) for different datatypes (uint, uint2, uint4) +// This is a set of functions which implement multi-prefix operations among the set of active lanes in the current wave (WARP). +// A multi-prefix operation comprises a set of prefix operations, executed in parallel within subsets of lanes identified with the provided bitmasks. +// These bitmasks represent partitioning of the set of active lanes in the current wave into N groups (where N is the number of unique masks across all lanes in the wave). +// N prefix operations are then performed each within its corresponding group. +// The groups are assumed to be non-intersecting (that is, a given lane can be a member of one and only one group), +// and bitmasks in all lanes belonging to the same group are required to be the same. +// There are 2 type of functions - Exclusive and Inclusive prefix operations. +// e.g. For NvWaveMultiPrefixInclusiveAdd(val, mask) operation - For each of the groups (for which mask input is same) following is the expected output : +// i^th thread in a group has value = sum(values of threads 0 to i) +// For Exclusive version of same opeartion - +// i^th thread in a group has value = sum(values of threads 0 to i-1) and 0th thread in a the Group has value 0 + +// Extensions for Add +uint NvWaveMultiPrefixInclusiveAdd(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + // As remainingThreads only has threads in group with smaller thread ids than its own thread-id nextLane can never be 31 for any thread in the group except the smallest one + // For smallest thread in the group, remainingThreads is 0 --> nextLane is ~0 (i.e. considering last 5 bits its 31) + // So passing maskClampValue=30 to __NvShflGeneric, it will return laneValid=false for the smallest thread in the group. So update val and nextLane based on laneValid. + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val + temp; + nextLane = newLane; + } + } + return val; +} + +uint NvWaveMultiPrefixExclusiveAdd(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : 0; + return NvWaveMultiPrefixInclusiveAdd(val, mask); +} + +uint2 NvWaveMultiPrefixInclusiveAdd(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val + temp; + nextLane = newLane; + } + } + return val; +} + +uint2 NvWaveMultiPrefixExclusiveAdd(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint2(0, 0); + return NvWaveMultiPrefixInclusiveAdd(val, mask); +} + +uint4 NvWaveMultiPrefixInclusiveAdd(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val + temp; + nextLane = newLane; + } + } + return val; +} + +uint4 NvWaveMultiPrefixExclusiveAdd(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint4(0, 0, 0, 0); + return NvWaveMultiPrefixInclusiveAdd(val, mask); +} + +// MultiPrefix extensions for Bitand +uint NvWaveMultiPrefixInclusiveAnd(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val & temp; + nextLane = newLane; + } + } + return val; +} + +uint NvWaveMultiPrefixExclusiveAnd(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : ~0; + return NvWaveMultiPrefixInclusiveAnd(val, mask); +} + +uint2 NvWaveMultiPrefixInclusiveAnd(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val & temp; + nextLane = newLane; + } + } + return val; +} + +uint2 NvWaveMultiPrefixExclusiveAnd(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint2(~0, ~0); + return NvWaveMultiPrefixInclusiveAnd(val, mask); +} + + +uint4 NvWaveMultiPrefixInclusiveAnd(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val & temp; + nextLane = newLane; + } + } + return val; +} + +uint4 NvWaveMultiPrefixExclusiveAnd(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint4(~0, ~0, ~0, ~0); + return NvWaveMultiPrefixInclusiveAnd(val, mask); +} + + +// MultiPrefix extensions for BitOr +uint NvWaveMultiPrefixInclusiveOr(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val | temp; + nextLane = newLane; + } + } + return val; +} + +uint NvWaveMultiPrefixExclusiveOr(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : 0; + return NvWaveMultiPrefixInclusiveOr(val, mask); +} + +uint2 NvWaveMultiPrefixInclusiveOr(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val | temp; + nextLane = newLane; + } + } + return val; +} + +uint2 NvWaveMultiPrefixExclusiveOr(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint2(0, 0); + return NvWaveMultiPrefixInclusiveOr(val, mask); +} + + +uint4 NvWaveMultiPrefixInclusiveOr(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val | temp; + nextLane = newLane; + } + } + return val; +} + +uint4 NvWaveMultiPrefixExclusiveOr(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint4(0, 0, 0, 0); + return NvWaveMultiPrefixInclusiveOr(val, mask); +} + + +// MultiPrefix extensions for BitXOr +uint NvWaveMultiPrefixInclusiveXOr(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val ^ temp; + nextLane = newLane; + } + } + return val; +} + +uint NvWaveMultiPrefixExclusiveXOr(uint val, uint mask) +{ + uint temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : 0; + return NvWaveMultiPrefixInclusiveXOr(val, mask); +} + +uint2 NvWaveMultiPrefixInclusiveXOr(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val ^ temp; + nextLane = newLane; + } + } + return val; +} + +uint2 NvWaveMultiPrefixExclusiveXOr(uint2 val, uint mask) +{ + uint2 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint2(0, 0); + return NvWaveMultiPrefixInclusiveXOr(val, mask); +} + + +uint4 NvWaveMultiPrefixInclusiveXOr(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint nextLane = firstbithigh(remainingThreads); + for (uint i = 0; i < NV_WARP_SIZE_LOG2; i++) + { + temp = NvShfl(val, nextLane); + uint laneValid; + uint newLane = asuint(__NvShflGeneric(nextLane, nextLane, 30, laneValid)); + if (laneValid) // if nextLane's nextLane is valid + { + val = val ^ temp; + nextLane = newLane; + } + } + return val; +} + +uint4 NvWaveMultiPrefixExclusiveXOr(uint4 val, uint mask) +{ + uint4 temp; + uint a = NvActiveThreads(); + uint remainingThreads = a & __NvGetSpecial(NV_SPECIALOP_THREADLTMASK) & mask; + uint lane = firstbithigh(remainingThreads); + temp = NvShfl(val, lane); + val = remainingThreads != 0 ? temp : uint4(0, 0, 0, 0); + return NvWaveMultiPrefixInclusiveXOr(val, mask); +} + +//----------------------------------------------------------------------------// +//------------------------- DXR HitObject Extension --------------------------// +//----------------------------------------------------------------------------// + +// Support for templates in HLSL requires HLSL 2021+. When using dxc, +// use the -HV 2021 command line argument to enable these versions. +#if defined(__HLSL_VERSION) && (__HLSL_VERSION >= 2021) && !defined(NV_HITOBJECT_USE_MACRO_API) + +struct NvHitObject { + uint _handle; + + bool IsMiss() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_MISS; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + bool IsHit() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_HIT; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + bool IsNop() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_NOP; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + uint GetInstanceID() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_ID; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetInstanceIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetPrimitiveIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_PRIMITIVE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetGeometryIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_GEOMETRY_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetHitKind() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_HIT_KIND; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + RayDesc GetRayDesc() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_RAY_DESC; + g_NvidiaExt[index].src0u.x = _handle; + + uint tmin = g_NvidiaExt.IncrementCounter(); + uint tmax = g_NvidiaExt.IncrementCounter(); + uint rayOrgX = g_NvidiaExt.IncrementCounter(); + uint rayOrgY = g_NvidiaExt.IncrementCounter(); + uint rayOrgZ = g_NvidiaExt.IncrementCounter(); + uint rayDirX = g_NvidiaExt.IncrementCounter(); + uint rayDirY = g_NvidiaExt.IncrementCounter(); + uint rayDirZ = g_NvidiaExt.IncrementCounter(); + + RayDesc ray; + ray.TMin = asfloat(tmin); + ray.TMax = asfloat(tmax); + ray.Origin.x = asfloat(rayOrgX); + ray.Origin.y = asfloat(rayOrgY); + ray.Origin.z = asfloat(rayOrgZ); + ray.Direction.x = asfloat(rayDirX); + ray.Direction.y = asfloat(rayDirY); + ray.Direction.z = asfloat(rayDirZ); + + return ray; + } + + template + T GetAttributes() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_ATTRIBUTES; + g_NvidiaExt[index].src0u.x = _handle; + uint callHandle = g_NvidiaExt.IncrementCounter(); + + T attrs; + CallShader(callHandle, attrs); + return attrs; + } + + uint GetShaderTableIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_SHADER_TABLE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint LoadLocalRootTableConstant(uint RootConstantOffsetInBytes) + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_LOAD_LOCAL_ROOT_TABLE_CONSTANT; + g_NvidiaExt[index].src0u.x = _handle; + g_NvidiaExt[index].src0u.y = RootConstantOffsetInBytes; + return g_NvidiaExt.IncrementCounter(); + } +}; + +template +NvHitObject NvTraceRayHitObject( + RaytracingAccelerationStructure AccelerationStructure, + uint RayFlags, + uint InstanceInclusionMask, + uint RayContributionToHitGroupIndex, + uint MultiplierForGeometryContributionToHitGroupIndex, + uint MissShaderIndex, + RayDesc Ray, + inout T Payload) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_TRACE_RAY; + g_NvidiaExt[index].numOutputsForIncCounter = 2; + g_NvidiaExt[index].src0u.x = MissShaderIndex; + uint hitHandle = g_NvidiaExt.IncrementCounter(); + uint traceHandle = g_NvidiaExt.IncrementCounter(); + + TraceRay(AccelerationStructure, RayFlags, InstanceInclusionMask, RayContributionToHitGroupIndex, MultiplierForGeometryContributionToHitGroupIndex, traceHandle, Ray, Payload); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +template +NvHitObject NvMakeHit( + RaytracingAccelerationStructure AccelerationStructure, + uint InstanceIndex, + uint GeometryIndex, + uint PrimitiveIndex, + uint HitKind, + uint RayContributionToHitGroupIndex, + uint MultiplierForGeometryContributionToHitGroupIndex, + RayDesc Ray, + T Attributes) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_HIT; + g_NvidiaExt[index].numOutputsForIncCounter = 2; + g_NvidiaExt[index].src0u.x = InstanceIndex; + g_NvidiaExt[index].src0u.y = GeometryIndex; + g_NvidiaExt[index].src0u.z = PrimitiveIndex; + g_NvidiaExt[index].src0u.w = HitKind; + g_NvidiaExt[index].src1u.x = RayContributionToHitGroupIndex; + g_NvidiaExt[index].src1u.y = MultiplierForGeometryContributionToHitGroupIndex; + uint hitHandle = g_NvidiaExt.IncrementCounter(); + uint traceHandle = g_NvidiaExt.IncrementCounter(); + + struct AttrWrapper { T Attrs; }; + AttrWrapper wrapper; + wrapper.Attrs = Attributes; + CallShader(traceHandle, wrapper); + + struct DummyPayload { int a; }; + DummyPayload payload; + TraceRay(AccelerationStructure, 0, 0, 0, 0, traceHandle, Ray, payload); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +template +NvHitObject NvMakeHitWithRecordIndex( + uint HitGroupRecordIndex, + RaytracingAccelerationStructure AccelerationStructure, + uint InstanceIndex, + uint GeometryIndex, + uint PrimitiveIndex, + uint HitKind, + RayDesc Ray, + T Attributes) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_HIT_WITH_RECORD_INDEX; + g_NvidiaExt[index].numOutputsForIncCounter = 2; + g_NvidiaExt[index].src0u.x = InstanceIndex; + g_NvidiaExt[index].src0u.y = GeometryIndex; + g_NvidiaExt[index].src0u.z = PrimitiveIndex; + g_NvidiaExt[index].src0u.w = HitKind; + g_NvidiaExt[index].src1u.x = HitGroupRecordIndex; + uint hitHandle = g_NvidiaExt.IncrementCounter(); + uint traceHandle = g_NvidiaExt.IncrementCounter(); + + struct AttrWrapper { T Attrs; }; + AttrWrapper wrapper; + wrapper.Attrs = Attributes; + CallShader(traceHandle, wrapper); + + struct DummyPayload { int a; }; + DummyPayload payload; + TraceRay(AccelerationStructure, 0, 0, 0, 0, traceHandle, Ray, payload); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +NvHitObject NvMakeMiss( + uint MissShaderIndex, + RayDesc Ray) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_MISS; + g_NvidiaExt[index].src0u.x = MissShaderIndex; + g_NvidiaExt[index].src0u.y = asuint(Ray.TMin); + g_NvidiaExt[index].src0u.z = asuint(Ray.TMax); + g_NvidiaExt[index].src1u.x = asuint(Ray.Origin.x); + g_NvidiaExt[index].src1u.y = asuint(Ray.Origin.y); + g_NvidiaExt[index].src1u.z = asuint(Ray.Origin.z); + g_NvidiaExt[index].src2u.x = asuint(Ray.Direction.x); + g_NvidiaExt[index].src2u.y = asuint(Ray.Direction.y); + g_NvidiaExt[index].src2u.z = asuint(Ray.Direction.z); + uint hitHandle = g_NvidiaExt.IncrementCounter(); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +NvHitObject NvMakeNop() +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_NOP; + uint hitHandle = g_NvidiaExt.IncrementCounter(); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +void NvReorderThread(uint CoherenceHint, uint NumCoherenceHintBits) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD; + g_NvidiaExt[index].src0u.x = 0; + g_NvidiaExt[index].src0u.y = 0; + g_NvidiaExt[index].src0u.z = CoherenceHint; + g_NvidiaExt[index].src0u.w = NumCoherenceHintBits; + g_NvidiaExt.IncrementCounter(); +} + +void NvReorderThread(NvHitObject HitObj, uint CoherenceHint, uint NumCoherenceHintBits) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD; + g_NvidiaExt[index].src0u.x = 1; + g_NvidiaExt[index].src0u.y = HitObj._handle; + g_NvidiaExt[index].src0u.z = CoherenceHint; + g_NvidiaExt[index].src0u.w = NumCoherenceHintBits; + g_NvidiaExt.IncrementCounter(); +} + +void NvReorderThread(NvHitObject HitObj) +{ + NvReorderThread(HitObj, 0, 0); +} + +template +void NvInvokeHitObject( + RaytracingAccelerationStructure AccelerationStructure, + NvHitObject HitObj, + inout T Payload) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_INVOKE; + g_NvidiaExt[index].src0u.x = HitObj._handle; + uint handle = g_NvidiaExt.IncrementCounter(); + + TraceRay(AccelerationStructure, 0, 0, 0, 0, handle, (RayDesc)0, Payload); +} + +// Macro-based version of the HitObject API. Use this when HLSL 2021 is not available. +// Enable by specifying #define NV_HITOBJECT_USE_MACRO_API before including this header. +#elif defined(NV_HITOBJECT_USE_MACRO_API) + +struct NvHitObject { + uint _handle; + + bool IsMiss() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_MISS; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + bool IsHit() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_HIT; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + bool IsNop() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_IS_NOP; + g_NvidiaExt[index].src0u.x = _handle; + uint ret = g_NvidiaExt.IncrementCounter(); + return ret != 0; + } + + uint GetInstanceID() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_ID; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetInstanceIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetPrimitiveIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_PRIMITIVE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetGeometryIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_GEOMETRY_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint GetHitKind() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_HIT_KIND; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + RayDesc GetRayDesc() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_RAY_DESC; + g_NvidiaExt[index].src0u.x = _handle; + + uint tmin = g_NvidiaExt.IncrementCounter(); + uint tmax = g_NvidiaExt.IncrementCounter(); + uint rayOrgX = g_NvidiaExt.IncrementCounter(); + uint rayOrgY = g_NvidiaExt.IncrementCounter(); + uint rayOrgZ = g_NvidiaExt.IncrementCounter(); + uint rayDirX = g_NvidiaExt.IncrementCounter(); + uint rayDirY = g_NvidiaExt.IncrementCounter(); + uint rayDirZ = g_NvidiaExt.IncrementCounter(); + + RayDesc ray; + ray.TMin = asfloat(tmin); + ray.TMax = asfloat(tmax); + ray.Origin.x = asfloat(rayOrgX); + ray.Origin.y = asfloat(rayOrgY); + ray.Origin.z = asfloat(rayOrgZ); + ray.Direction.x = asfloat(rayDirX); + ray.Direction.y = asfloat(rayDirY); + ray.Direction.z = asfloat(rayDirZ); + + return ray; + } + + uint GetShaderTableIndex() + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_SHADER_TABLE_INDEX; + g_NvidiaExt[index].src0u.x = _handle; + return g_NvidiaExt.IncrementCounter(); + } + + uint LoadLocalRootTableConstant(uint RootConstantOffsetInBytes) + { + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_LOAD_LOCAL_ROOT_TABLE_CONSTANT; + g_NvidiaExt[index].src0u.x = _handle; + g_NvidiaExt[index].src0u.y = RootConstantOffsetInBytes; + return g_NvidiaExt.IncrementCounter(); + } +}; + +#define NvTraceRayHitObject(AccelerationStructure,RayFlags,InstanceInclusionMask,RayContributionToHitGroupIndex,MultiplierForGeometryContributionToHitGroupIndex,MissShaderIndex,Ray,Payload,ResultHitObj) \ +do { \ + uint _rayFlags = RayFlags; \ + uint _instanceInclusionMask = InstanceInclusionMask; \ + uint _rayContributionToHitGroupIndex = RayContributionToHitGroupIndex; \ + uint _multiplierForGeometryContributionToHitGroupIndex = MultiplierForGeometryContributionToHitGroupIndex; \ + uint _missShaderIndex = MissShaderIndex; \ + RayDesc _ray = Ray; \ + uint _index = g_NvidiaExt.IncrementCounter(); \ + g_NvidiaExt[_index].opcode = NV_EXTN_OP_HIT_OBJECT_TRACE_RAY; \ + g_NvidiaExt[_index].numOutputsForIncCounter = 2; \ + g_NvidiaExt[_index].src0u.x = _missShaderIndex; \ + uint _hitHandle = g_NvidiaExt.IncrementCounter(); \ + uint _traceHandle = g_NvidiaExt.IncrementCounter(); \ + TraceRay(AccelerationStructure, _rayFlags, _instanceInclusionMask, _rayContributionToHitGroupIndex, _multiplierForGeometryContributionToHitGroupIndex, _traceHandle, _ray, Payload); \ + ResultHitObj._handle = _hitHandle; \ +} while(0) + +struct NvHitObjectMacroDummyPayloadType { int a; }; + +#define NvMakeHit(AccelerationStructure,InstanceIndex,GeometryIndex,PrimitiveIndex,HitKind,RayContributionToHitGroupIndex,MultiplierForGeometryContributionToHitGroupIndex,Ray,Attributes,ResultHitObj) \ +do { \ + uint _instanceIndex = InstanceIndex; \ + uint _geometryIndex = GeometryIndex; \ + uint _primitiveIndex = PrimitiveIndex; \ + uint _hitKind = HitKind; \ + uint _rayContributionToHitGroupIndex = RayContributionToHitGroupIndex; \ + uint _multiplierForGeometryContributionToHitGroupIndex = MultiplierForGeometryContributionToHitGroupIndex; \ + RayDesc _ray = Ray; \ + uint _index = g_NvidiaExt.IncrementCounter(); \ + g_NvidiaExt[_index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_HIT; \ + g_NvidiaExt[_index].numOutputsForIncCounter = 2; \ + g_NvidiaExt[_index].src0u.x = _instanceIndex; \ + g_NvidiaExt[_index].src0u.y = _geometryIndex; \ + g_NvidiaExt[_index].src0u.z = _primitiveIndex; \ + g_NvidiaExt[_index].src0u.w = _hitKind; \ + g_NvidiaExt[_index].src1u.x = _rayContributionToHitGroupIndex; \ + g_NvidiaExt[_index].src1u.y = _multiplierForGeometryContributionToHitGroupIndex; \ + uint _hitHandle = g_NvidiaExt.IncrementCounter(); \ + uint _traceHandle = g_NvidiaExt.IncrementCounter(); \ + CallShader(_traceHandle, Attributes); \ + NvHitObjectMacroDummyPayloadType _payload; \ + TraceRay(AccelerationStructure, 0, 0, 0, 0, _traceHandle, _ray, _payload); \ + ResultHitObj._handle = _hitHandle; \ +} while(0) + +#define NvMakeHitWithRecordIndex(HitGroupRecordIndex,AccelerationStructure,InstanceIndex,GeometryIndex,PrimitiveIndex,HitKind,Ray,Attributes,ResultHitObj) \ +do { \ + uint _hitGroupRecordIndex = HitGroupRecordIndex; \ + uint _instanceIndex = InstanceIndex; \ + uint _geometryIndex = GeometryIndex; \ + uint _primitiveIndex = PrimitiveIndex; \ + uint _hitKind = HitKind; \ + RayDesc _ray = Ray; \ + uint _index = g_NvidiaExt.IncrementCounter(); \ + g_NvidiaExt[_index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_HIT_WITH_RECORD_INDEX; \ + g_NvidiaExt[_index].numOutputsForIncCounter = 2; \ + g_NvidiaExt[_index].src0u.x = _instanceIndex; \ + g_NvidiaExt[_index].src0u.y = _geometryIndex; \ + g_NvidiaExt[_index].src0u.z = _primitiveIndex; \ + g_NvidiaExt[_index].src0u.w = _hitKind; \ + g_NvidiaExt[_index].src1u.x = _hitGroupRecordIndex; \ + uint _hitHandle = g_NvidiaExt.IncrementCounter(); \ + uint _traceHandle = g_NvidiaExt.IncrementCounter(); \ + CallShader(_traceHandle, Attributes); \ + NvHitObjectMacroDummyPayloadType _payload; \ + TraceRay(AccelerationStructure, 0, 0, 0, 0, _traceHandle, _ray, _payload); \ + ResultHitObj._handle = _hitHandle; \ +} while(0) + +NvHitObject NvMakeMiss( + uint MissShaderIndex, + RayDesc Ray) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_MISS; + g_NvidiaExt[index].src0u.x = MissShaderIndex; + g_NvidiaExt[index].src0u.y = asuint(Ray.TMin); + g_NvidiaExt[index].src0u.z = asuint(Ray.TMax); + g_NvidiaExt[index].src1u.x = asuint(Ray.Origin.x); + g_NvidiaExt[index].src1u.y = asuint(Ray.Origin.y); + g_NvidiaExt[index].src1u.z = asuint(Ray.Origin.z); + g_NvidiaExt[index].src2u.x = asuint(Ray.Direction.x); + g_NvidiaExt[index].src2u.y = asuint(Ray.Direction.y); + g_NvidiaExt[index].src2u.z = asuint(Ray.Direction.z); + uint hitHandle = g_NvidiaExt.IncrementCounter(); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +NvHitObject NvMakeNop() +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_MAKE_NOP; + uint hitHandle = g_NvidiaExt.IncrementCounter(); + + NvHitObject hitObj; + hitObj._handle = hitHandle; + return hitObj; +} + +#define NvGetAttributesFromHitObject(HitObj,ResultAttributes) \ +do { \ + uint _index = g_NvidiaExt.IncrementCounter(); \ + g_NvidiaExt[_index].opcode = NV_EXTN_OP_HIT_OBJECT_GET_ATTRIBUTES; \ + g_NvidiaExt[_index].src0u.x = HitObj._handle; \ + uint _callHandle = g_NvidiaExt.IncrementCounter(); \ + CallShader(_callHandle, ResultAttributes); \ +} while(0) + +void NvReorderThread(uint CoherenceHint, uint NumCoherenceHintBits) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD; + g_NvidiaExt[index].src0u.x = 0; + g_NvidiaExt[index].src0u.y = 0; + g_NvidiaExt[index].src0u.z = CoherenceHint; + g_NvidiaExt[index].src0u.w = NumCoherenceHintBits; + g_NvidiaExt.IncrementCounter(); +} + +void NvReorderThread(NvHitObject HitObj, uint CoherenceHint, uint NumCoherenceHintBits) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD; + g_NvidiaExt[index].src0u.x = 1; + g_NvidiaExt[index].src0u.y = HitObj._handle; + g_NvidiaExt[index].src0u.z = CoherenceHint; + g_NvidiaExt[index].src0u.w = NumCoherenceHintBits; + g_NvidiaExt.IncrementCounter(); +} + +void NvReorderThread(NvHitObject HitObj) +{ + NvReorderThread(HitObj, 0, 0); +} + +#define NvInvokeHitObject(AccelerationStructure,HitObj,Payload) \ +do { \ + uint _index = g_NvidiaExt.IncrementCounter(); \ + g_NvidiaExt[_index].opcode = NV_EXTN_OP_HIT_OBJECT_INVOKE; \ + g_NvidiaExt[_index].src0u.x = HitObj._handle; \ + uint _handle = g_NvidiaExt.IncrementCounter(); \ + TraceRay(AccelerationStructure, 0, 0, 0, 0, _handle, (RayDesc)0, Payload); \ +} while(0) + +#endif diff --git a/vendor/nvapi/nvHLSLExtnsInternal.h b/vendor/nvapi/nvHLSLExtnsInternal.h new file mode 100644 index 0000000000..c5936a5e0d --- /dev/null +++ b/vendor/nvapi/nvHLSLExtnsInternal.h @@ -0,0 +1,767 @@ + /************************************************************************************************************************************\ +|* *| +|* Copyright © 2012 NVIDIA Corporation. All rights reserved. *| +|* *| +|* NOTICE TO USER: *| +|* *| +|* This software is subject to NVIDIA ownership rights under U.S. and international Copyright laws. *| +|* *| +|* This software and the information contained herein are PROPRIETARY and CONFIDENTIAL to NVIDIA *| +|* and are being provided solely under the terms and conditions of an NVIDIA software license agreement. *| +|* Otherwise, you have no rights to use or access this software in any manner. *| +|* *| +|* If not covered by the applicable NVIDIA software license agreement: *| +|* NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. *| +|* IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. *| +|* NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, *| +|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. *| +|* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, *| +|* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, *| +|* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *| +|* *| +|* U.S. Government End Users. *| +|* This software is a "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *| +|* consisting of "commercial computer software" and "commercial computer software documentation" *| +|* as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government only as a commercial end item. *| +|* Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *| +|* all U.S. Government End Users acquire the software with only those rights set forth herein. *| +|* *| +|* Any use of this software in individual and commercial software must include, *| +|* in the user documentation and internal comments to the code, *| +|* the above Disclaimer (as applicable) and U.S. Government End Users Notice. *| +|* *| + \************************************************************************************************************************************/ + +////////////////////////// NVIDIA SHADER EXTENSIONS ///////////////// +// internal functions +// Functions in this file are not expected to be called by apps directly + +#include "nvShaderExtnEnums.h" + +struct NvShaderExtnStruct +{ + uint opcode; // opcode + uint rid; // resource ID + uint sid; // sampler ID + + uint4 dst1u; // destination operand 1 (for instructions that need extra destination operands) + uint4 src3u; // source operand 3 + uint4 src4u; // source operand 4 + uint4 src5u; // source operand 5 + + uint4 src0u; // uint source operand 0 + uint4 src1u; // uint source operand 0 + uint4 src2u; // uint source operand 0 + uint4 dst0u; // uint destination operand + + uint markUavRef; // the next store to UAV is fake and is used only to identify the uav slot + uint numOutputsForIncCounter; // Used for output to IncrementCounter + float padding1[27]; // struct size: 256 bytes +}; + +// RW structured buffer for Nvidia shader extensions + +// Application needs to define NV_SHADER_EXTN_SLOT as a unused slot, which should be +// set using NvAPI_D3D11_SetNvShaderExtnSlot() call before creating the first shader that +// uses nvidia shader extensions. E.g before including this file in shader define it as: +// #define NV_SHADER_EXTN_SLOT u7 + +// For SM5.1, application needs to define NV_SHADER_EXTN_REGISTER_SPACE as register space +// E.g. before including this file in shader define it as: +// #define NV_SHADER_EXTN_REGISTER_SPACE space2 + +// Note that other operations to this UAV will be ignored so application +// should bind a null resource + +#ifdef NV_SHADER_EXTN_REGISTER_SPACE +RWStructuredBuffer g_NvidiaExt : register( NV_SHADER_EXTN_SLOT, NV_SHADER_EXTN_REGISTER_SPACE ); +#else +RWStructuredBuffer g_NvidiaExt : register( NV_SHADER_EXTN_SLOT ); +#endif + +//----------------------------------------------------------------------------// +// the exposed SHFL instructions accept a mask parameter in src2 +// To compute lane mask from width of segment: +// minLaneID : currentLaneId & src2[12:8] +// maxLaneID : minLaneId | (src2[4:0] & ~src2[12:8]) +// where [minLaneId, maxLaneId] defines the segment where currentLaneId belongs +// we always set src2[4:0] to 11111 (0x1F), and set src2[12:8] as (32 - width) +int __NvGetShflMaskFromWidth(uint width) +{ + return ((NV_WARP_SIZE - width) << 8) | 0x1F; +} + +//----------------------------------------------------------------------------// + +void __NvReferenceUAVForOp(RWByteAddressBuffer uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav.Store(index, 0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = float2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = float2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = float2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = float4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = float4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = float4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = 0.0f; +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = 0.0f; +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = 0.0f; +} + + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = uint2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = uint2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = uint2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = uint4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = uint4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = uint4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = 0; +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = 0; +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = 0; +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = int2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = int2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = int2(0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = int4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = int4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = int4(0,0,0,0); +} + +void __NvReferenceUAVForOp(RWTexture1D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[index] = 0; +} + +void __NvReferenceUAVForOp(RWTexture2D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint2(index,index)] = 0; +} + +void __NvReferenceUAVForOp(RWTexture3D uav) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].markUavRef = 1; + uav[uint3(index,index,index)] = 0; +} + +//----------------------------------------------------------------------------// +// ATOMIC op sub-opcodes +#define NV_EXTN_ATOM_AND 0 +#define NV_EXTN_ATOM_OR 1 +#define NV_EXTN_ATOM_XOR 2 + +#define NV_EXTN_ATOM_ADD 3 +#define NV_EXTN_ATOM_MAX 6 +#define NV_EXTN_ATOM_MIN 7 + +#define NV_EXTN_ATOM_SWAP 8 +#define NV_EXTN_ATOM_CAS 9 + +//----------------------------------------------------------------------------// + +// performs Atomic operation on two consecutive fp16 values in the given UAV +// the uint paramater 'fp16x2Val' is treated as two fp16 values +// the passed sub-opcode 'op' should be an immediate constant +// byteAddress must be multiple of 4 +// the returned value are the two fp16 values packed into a single uint +uint __NvAtomicOpFP16x2(RWByteAddressBuffer uav, uint byteAddress, uint fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = byteAddress; + g_NvidiaExt[index].src1u.x = fp16x2Val; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + + return g_NvidiaExt[index].dst0u.x; +} + +//----------------------------------------------------------------------------// + +// performs Atomic operation on a R16G16_FLOAT UAV at the given address +// the uint paramater 'fp16x2Val' is treated as two fp16 values +// the passed sub-opcode 'op' should be an immediate constant +// the returned value are the two fp16 values (.x and .y components) packed into a single uint +// Warning: Behaviour of these set of functions is undefined if the UAV is not +// of R16G16_FLOAT format (might result in app crash or TDR) + +uint __NvAtomicOpFP16x2(RWTexture1D uav, uint address, uint fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address; + g_NvidiaExt[index].src1u.x = fp16x2Val; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + + return g_NvidiaExt[index].dst0u.x; +} + +uint __NvAtomicOpFP16x2(RWTexture2D uav, uint2 address, uint fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = address; + g_NvidiaExt[index].src1u.x = fp16x2Val; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + + return g_NvidiaExt[index].dst0u.x; +} + +uint __NvAtomicOpFP16x2(RWTexture3D uav, uint3 address, uint fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = address; + g_NvidiaExt[index].src1u.x = fp16x2Val; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + + return g_NvidiaExt[index].dst0u.x; +} + +//----------------------------------------------------------------------------// + +// performs Atomic operation on a R16G16B16A16_FLOAT UAV at the given address +// the uint2 paramater 'fp16x2Val' is treated as four fp16 values +// i.e, fp16x2Val.x = uav.xy and fp16x2Val.y = uav.yz +// the passed sub-opcode 'op' should be an immediate constant +// the returned value are the four fp16 values (.xyzw components) packed into uint2 +// Warning: Behaviour of these set of functions is undefined if the UAV is not +// of R16G16B16A16_FLOAT format (might result in app crash or TDR) + +uint2 __NvAtomicOpFP16x2(RWTexture1D uav, uint address, uint2 fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + // break it down into two fp16x2 atomic ops + uint2 retVal; + + // first op has x-coordinate = x * 2 + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address * 2; + g_NvidiaExt[index].src1u.x = fp16x2Val.x; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.x = g_NvidiaExt[index].dst0u.x; + + // second op has x-coordinate = x * 2 + 1 + index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address * 2 + 1; + g_NvidiaExt[index].src1u.x = fp16x2Val.y; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.y = g_NvidiaExt[index].dst0u.x; + + return retVal; +} + +uint2 __NvAtomicOpFP16x2(RWTexture2D uav, uint2 address, uint2 fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + // break it down into two fp16x2 atomic ops + uint2 retVal; + + // first op has x-coordinate = x * 2 + uint2 addressTemp = uint2(address.x * 2, address.y); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = addressTemp; + g_NvidiaExt[index].src1u.x = fp16x2Val.x; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.x = g_NvidiaExt[index].dst0u.x; + + // second op has x-coordinate = x * 2 + 1 + addressTemp.x++; + index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = addressTemp; + g_NvidiaExt[index].src1u.x = fp16x2Val.y; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.y = g_NvidiaExt[index].dst0u.x; + + return retVal; +} + +uint2 __NvAtomicOpFP16x2(RWTexture3D uav, uint3 address, uint2 fp16x2Val, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + // break it down into two fp16x2 atomic ops + uint2 retVal; + + // first op has x-coordinate = x * 2 + uint3 addressTemp = uint3(address.x * 2, address.y, address.z); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = addressTemp; + g_NvidiaExt[index].src1u.x = fp16x2Val.x; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.x = g_NvidiaExt[index].dst0u.x; + + // second op has x-coordinate = x * 2 + 1 + addressTemp.x++; + index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = addressTemp; + g_NvidiaExt[index].src1u.x = fp16x2Val.y; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP16_ATOMIC; + retVal.y = g_NvidiaExt[index].dst0u.x; + + return retVal; +} + +uint __fp32x2Tofp16x2(float2 val) +{ + return (f32tof16(val.y)<<16) | f32tof16(val.x) ; +} + +uint2 __fp32x4Tofp16x4(float4 val) +{ + return uint2( (f32tof16(val.y)<<16) | f32tof16(val.x), (f32tof16(val.w)<<16) | f32tof16(val.z) ) ; +} + +//----------------------------------------------------------------------------// + +// FP32 Atomic functions +// performs Atomic operation treating the uav as float (fp32) values +// the passed sub-opcode 'op' should be an immediate constant +// byteAddress must be multiple of 4 +float __NvAtomicAddFP32(RWByteAddressBuffer uav, uint byteAddress, float val) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = byteAddress; + g_NvidiaExt[index].src1u.x = asuint(val); // passing as uint to make it more convinient for the driver to translate + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_ADD; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP32_ATOMIC; + + return asfloat(g_NvidiaExt[index].dst0u.x); +} + +float __NvAtomicAddFP32(RWTexture1D uav, uint address, float val) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address; + g_NvidiaExt[index].src1u.x = asuint(val); + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_ADD; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP32_ATOMIC; + + return asfloat(g_NvidiaExt[index].dst0u.x); +} + +float __NvAtomicAddFP32(RWTexture2D uav, uint2 address, float val) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = address; + g_NvidiaExt[index].src1u.x = asuint(val); + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_ADD; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP32_ATOMIC; + + return asfloat(g_NvidiaExt[index].dst0u.x); +} + +float __NvAtomicAddFP32(RWTexture3D uav, uint3 address, float val) +{ + __NvReferenceUAVForOp(uav); + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = address; + g_NvidiaExt[index].src1u.x = asuint(val); + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_ADD; + g_NvidiaExt[index].opcode = NV_EXTN_OP_FP32_ATOMIC; + + return asfloat(g_NvidiaExt[index].dst0u.x); +} + +//----------------------------------------------------------------------------// + +// UINT64 Atmoic Functions +// The functions below performs atomic operation on the given UAV treating the value as uint64 +// byteAddress must be multiple of 8 +// The returned value is the value present in memory location before the atomic operation +// uint2 vector type is used to represent a single uint64 value with the x component containing the low 32 bits and y component the high 32 bits. + +uint2 __NvAtomicCompareExchangeUINT64(RWByteAddressBuffer uav, uint byteAddress, uint2 compareValue, uint2 value) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = byteAddress; + g_NvidiaExt[index].src1u.xy = compareValue; + g_NvidiaExt[index].src1u.zw = value; + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_CAS; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicOpUINT64(RWByteAddressBuffer uav, uint byteAddress, uint2 value, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = byteAddress; + g_NvidiaExt[index].src1u.xy = value; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicCompareExchangeUINT64(RWTexture1D uav, uint address, uint2 compareValue, uint2 value) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address; + g_NvidiaExt[index].src1u.xy = compareValue; + g_NvidiaExt[index].src1u.zw = value; + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_CAS; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicOpUINT64(RWTexture1D uav, uint address, uint2 value, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = address; + g_NvidiaExt[index].src1u.xy = value; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicCompareExchangeUINT64(RWTexture2D uav, uint2 address, uint2 compareValue, uint2 value) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = address; + g_NvidiaExt[index].src1u.xy = compareValue; + g_NvidiaExt[index].src1u.zw = value; + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_CAS; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicOpUINT64(RWTexture2D uav, uint2 address, uint2 value, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xy = address; + g_NvidiaExt[index].src1u.xy = value; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicCompareExchangeUINT64(RWTexture3D uav, uint3 address, uint2 compareValue, uint2 value) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = address; + g_NvidiaExt[index].src1u.xy = compareValue; + g_NvidiaExt[index].src1u.zw = value; + g_NvidiaExt[index].src2u.x = NV_EXTN_ATOM_CAS; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + +uint2 __NvAtomicOpUINT64(RWTexture3D uav, uint3 address, uint2 value, uint atomicOpType) +{ + __NvReferenceUAVForOp(uav); + + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.xyz = address; + g_NvidiaExt[index].src1u.xy = value; + g_NvidiaExt[index].src2u.x = atomicOpType; + g_NvidiaExt[index].opcode = NV_EXTN_OP_UINT64_ATOMIC; + + return g_NvidiaExt[index].dst0u.xy; +} + + +uint4 __NvFootprint(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint footprintmode, uint gran, int3 offset = int3(0, 0, 0)) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = texIndex; + g_NvidiaExt[index].src0u.y = smpIndex; + g_NvidiaExt[index].src1u.xyz = asuint(location); + g_NvidiaExt[index].src1u.w = gran; + g_NvidiaExt[index].src3u.x = texSpace; + g_NvidiaExt[index].src3u.y = smpSpace; + g_NvidiaExt[index].src3u.z = texType; + g_NvidiaExt[index].src3u.w = footprintmode; + g_NvidiaExt[index].src4u.xyz = asuint(offset); + + g_NvidiaExt[index].opcode = NV_EXTN_OP_FOOTPRINT; + g_NvidiaExt[index].numOutputsForIncCounter = 4; + + // result is returned as the return value of IncrementCounter on fake UAV slot + uint4 op; + op.x = g_NvidiaExt.IncrementCounter(); + op.y = g_NvidiaExt.IncrementCounter(); + op.z = g_NvidiaExt.IncrementCounter(); + op.w = g_NvidiaExt.IncrementCounter(); + return op; +} + +uint4 __NvFootprintBias(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint footprintmode, uint gran, float bias, int3 offset = int3(0, 0, 0)) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = texIndex; + g_NvidiaExt[index].src0u.y = smpIndex; + g_NvidiaExt[index].src1u.xyz = asuint(location); + g_NvidiaExt[index].src1u.w = gran; + g_NvidiaExt[index].src2u.x = asuint(bias); + g_NvidiaExt[index].src3u.x = texSpace; + g_NvidiaExt[index].src3u.y = smpSpace; + g_NvidiaExt[index].src3u.z = texType; + g_NvidiaExt[index].src3u.w = footprintmode; + g_NvidiaExt[index].src4u.xyz = asuint(offset); + + g_NvidiaExt[index].opcode = NV_EXTN_OP_FOOTPRINT_BIAS; + g_NvidiaExt[index].numOutputsForIncCounter = 4; + + // result is returned as the return value of IncrementCounter on fake UAV slot + uint4 op; + op.x = g_NvidiaExt.IncrementCounter(); + op.y = g_NvidiaExt.IncrementCounter(); + op.z = g_NvidiaExt.IncrementCounter(); + op.w = g_NvidiaExt.IncrementCounter(); + return op; +} + +uint4 __NvFootprintLevel(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint footprintmode, uint gran, float lodLevel, int3 offset = int3(0, 0, 0)) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = texIndex; + g_NvidiaExt[index].src0u.y = smpIndex; + g_NvidiaExt[index].src1u.xyz = asuint(location); + g_NvidiaExt[index].src1u.w = gran; + g_NvidiaExt[index].src2u.x = asuint(lodLevel); + g_NvidiaExt[index].src3u.x = texSpace; + g_NvidiaExt[index].src3u.y = smpSpace; + g_NvidiaExt[index].src3u.z = texType; + g_NvidiaExt[index].src3u.w = footprintmode; + g_NvidiaExt[index].src4u.xyz = asuint(offset); + + g_NvidiaExt[index].opcode = NV_EXTN_OP_FOOTPRINT_LEVEL; + g_NvidiaExt[index].numOutputsForIncCounter = 4; + + // result is returned as the return value of IncrementCounter on fake UAV slot + uint4 op; + op.x = g_NvidiaExt.IncrementCounter(); + op.y = g_NvidiaExt.IncrementCounter(); + op.z = g_NvidiaExt.IncrementCounter(); + op.w = g_NvidiaExt.IncrementCounter(); + return op; +} + +uint4 __NvFootprintGrad(uint texSpace, uint texIndex, uint smpSpace, uint smpIndex, uint texType, float3 location, uint footprintmode, uint gran, float3 ddx, float3 ddy, int3 offset = int3(0, 0, 0)) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = texIndex; + g_NvidiaExt[index].src0u.y = smpIndex; + g_NvidiaExt[index].src1u.xyz = asuint(location); + g_NvidiaExt[index].src1u.w = gran; + g_NvidiaExt[index].src2u.xyz = asuint(ddx); + g_NvidiaExt[index].src5u.xyz = asuint(ddy); + g_NvidiaExt[index].src3u.x = texSpace; + g_NvidiaExt[index].src3u.y = smpSpace; + g_NvidiaExt[index].src3u.z = texType; + g_NvidiaExt[index].src3u.w = footprintmode; + g_NvidiaExt[index].src4u.xyz = asuint(offset); + g_NvidiaExt[index].opcode = NV_EXTN_OP_FOOTPRINT_GRAD; + g_NvidiaExt[index].numOutputsForIncCounter = 4; + + // result is returned as the return value of IncrementCounter on fake UAV slot + uint4 op; + op.x = g_NvidiaExt.IncrementCounter(); + op.y = g_NvidiaExt.IncrementCounter(); + op.z = g_NvidiaExt.IncrementCounter(); + op.w = g_NvidiaExt.IncrementCounter(); + return op; +} + +// returns value of special register - specify subopcode from any of NV_SPECIALOP_* specified in nvShaderExtnEnums.h - other opcodes undefined behavior +uint __NvGetSpecial(uint subOpCode) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].opcode = NV_EXTN_OP_GET_SPECIAL; + g_NvidiaExt[index].src0u.x = subOpCode; + return g_NvidiaExt.IncrementCounter(); +} + +// predicate is returned in laneValid indicating if srcLane is in range and val from specified lane is returned. +int __NvShflGeneric(int val, uint srcLane, uint maskClampVal, out uint laneValid) +{ + uint index = g_NvidiaExt.IncrementCounter(); + g_NvidiaExt[index].src0u.x = val; // variable to be shuffled + g_NvidiaExt[index].src0u.y = srcLane; // source lane + g_NvidiaExt[index].src0u.z = maskClampVal; + g_NvidiaExt[index].opcode = NV_EXTN_OP_SHFL_GENERIC; + g_NvidiaExt[index].numOutputsForIncCounter = 2; + + laneValid = asuint(g_NvidiaExt.IncrementCounter()); + return g_NvidiaExt.IncrementCounter(); +} \ No newline at end of file diff --git a/vendor/nvapi/nvShaderExtnEnums.h b/vendor/nvapi/nvShaderExtnEnums.h new file mode 100644 index 0000000000..cfa918b3e7 --- /dev/null +++ b/vendor/nvapi/nvShaderExtnEnums.h @@ -0,0 +1,141 @@ + /************************************************************************************************************************************\ +|* *| +|* Copyright © 2012 NVIDIA Corporation. All rights reserved. *| +|* *| +|* NOTICE TO USER: *| +|* *| +|* This software is subject to NVIDIA ownership rights under U.S. and international Copyright laws. *| +|* *| +|* This software and the information contained herein are PROPRIETARY and CONFIDENTIAL to NVIDIA *| +|* and are being provided solely under the terms and conditions of an NVIDIA software license agreement. *| +|* Otherwise, you have no rights to use or access this software in any manner. *| +|* *| +|* If not covered by the applicable NVIDIA software license agreement: *| +|* NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. *| +|* IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. *| +|* NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, *| +|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. *| +|* IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, *| +|* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, *| +|* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *| +|* *| +|* U.S. Government End Users. *| +|* This software is a "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *| +|* consisting of "commercial computer software" and "commercial computer software documentation" *| +|* as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government only as a commercial end item. *| +|* Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *| +|* all U.S. Government End Users acquire the software with only those rights set forth herein. *| +|* *| +|* Any use of this software in individual and commercial software must include, *| +|* in the user documentation and internal comments to the code, *| +|* the above Disclaimer (as applicable) and U.S. Government End Users Notice. *| +|* *| + \************************************************************************************************************************************/ + +//////////////////////////////////////////////////////////////////////////////// +////////////////////////// NVIDIA SHADER EXTENSIONS //////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +// This file can be included both from HLSL shader code as well as C++ code. +// The app should call NvAPI_D3D11_IsNvShaderExtnOpCodeSupported() / NvAPI_D3D12_IsNvShaderExtnOpCodeSupported() +// to check for support for every nv shader extension opcode it plans to use + + + +//----------------------------------------------------------------------------// +//---------------------------- NV Shader Extn Version -----------------------// +//----------------------------------------------------------------------------// +#define NV_SHADER_EXTN_VERSION 1 + +//----------------------------------------------------------------------------// +//---------------------------- Misc constants --------------------------------// +//----------------------------------------------------------------------------// +#define NV_WARP_SIZE 32 +#define NV_WARP_SIZE_LOG2 5 + +//----------------------------------------------------------------------------// +//---------------------------- opCode constants ------------------------------// +//----------------------------------------------------------------------------// + + +#define NV_EXTN_OP_SHFL 1 +#define NV_EXTN_OP_SHFL_UP 2 +#define NV_EXTN_OP_SHFL_DOWN 3 +#define NV_EXTN_OP_SHFL_XOR 4 + +#define NV_EXTN_OP_VOTE_ALL 5 +#define NV_EXTN_OP_VOTE_ANY 6 +#define NV_EXTN_OP_VOTE_BALLOT 7 + +#define NV_EXTN_OP_GET_LANE_ID 8 +#define NV_EXTN_OP_FP16_ATOMIC 12 +#define NV_EXTN_OP_FP32_ATOMIC 13 + +#define NV_EXTN_OP_GET_SPECIAL 19 + +#define NV_EXTN_OP_UINT64_ATOMIC 20 + +#define NV_EXTN_OP_MATCH_ANY 21 + +// FOOTPRINT - For Sample and SampleBias +#define NV_EXTN_OP_FOOTPRINT 28 +#define NV_EXTN_OP_FOOTPRINT_BIAS 29 + +#define NV_EXTN_OP_GET_SHADING_RATE 30 + +// FOOTPRINT - For SampleLevel and SampleGrad +#define NV_EXTN_OP_FOOTPRINT_LEVEL 31 +#define NV_EXTN_OP_FOOTPRINT_GRAD 32 + +// SHFL Generic +#define NV_EXTN_OP_SHFL_GENERIC 33 + +#define NV_EXTN_OP_VPRS_EVAL_ATTRIB_AT_SAMPLE 51 +#define NV_EXTN_OP_VPRS_EVAL_ATTRIB_SNAPPED 52 + +// HitObject API +#define NV_EXTN_OP_HIT_OBJECT_TRACE_RAY 67 +#define NV_EXTN_OP_HIT_OBJECT_MAKE_HIT 68 +#define NV_EXTN_OP_HIT_OBJECT_MAKE_HIT_WITH_RECORD_INDEX 69 +#define NV_EXTN_OP_HIT_OBJECT_MAKE_MISS 70 +#define NV_EXTN_OP_HIT_OBJECT_REORDER_THREAD 71 +#define NV_EXTN_OP_HIT_OBJECT_INVOKE 72 +#define NV_EXTN_OP_HIT_OBJECT_IS_MISS 73 +#define NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_ID 74 +#define NV_EXTN_OP_HIT_OBJECT_GET_INSTANCE_INDEX 75 +#define NV_EXTN_OP_HIT_OBJECT_GET_PRIMITIVE_INDEX 76 +#define NV_EXTN_OP_HIT_OBJECT_GET_GEOMETRY_INDEX 77 +#define NV_EXTN_OP_HIT_OBJECT_GET_HIT_KIND 78 +#define NV_EXTN_OP_HIT_OBJECT_GET_RAY_DESC 79 +#define NV_EXTN_OP_HIT_OBJECT_GET_ATTRIBUTES 80 +#define NV_EXTN_OP_HIT_OBJECT_GET_SHADER_TABLE_INDEX 81 +#define NV_EXTN_OP_HIT_OBJECT_LOAD_LOCAL_ROOT_TABLE_CONSTANT 82 +#define NV_EXTN_OP_HIT_OBJECT_IS_HIT 83 +#define NV_EXTN_OP_HIT_OBJECT_IS_NOP 84 +#define NV_EXTN_OP_HIT_OBJECT_MAKE_NOP 85 + +//----------------------------------------------------------------------------// +//-------------------- GET_SPECIAL subOpCode constants -----------------------// +//----------------------------------------------------------------------------// +#define NV_SPECIALOP_THREADLTMASK 4 +#define NV_SPECIALOP_FOOTPRINT_SINGLELOD_PRED 5 +#define NV_SPECIALOP_GLOBAL_TIMER_LO 9 +#define NV_SPECIALOP_GLOBAL_TIMER_HI 10 + +//----------------------------------------------------------------------------// +//----------------------------- Texture Types -------------------------------// +//----------------------------------------------------------------------------// +#define NV_EXTN_TEXTURE_1D 2 +#define NV_EXTN_TEXTURE_1D_ARRAY 3 +#define NV_EXTN_TEXTURE_2D 4 +#define NV_EXTN_TEXTURE_2D_ARRAY 5 +#define NV_EXTN_TEXTURE_3D 6 +#define NV_EXTN_TEXTURE_CUBE 7 +#define NV_EXTN_TEXTURE_CUBE_ARRAY 8 + + +//---------------------------------------------------------------------------// +//----------------FOOTPRINT Enums for NvFootprint* extns---------------------// +//---------------------------------------------------------------------------// +#define NV_EXTN_FOOTPRINT_MODE_FINE 0 +#define NV_EXTN_FOOTPRINT_MODE_COARSE 1 diff --git a/vendor/nvapi/nvapi.h b/vendor/nvapi/nvapi.h index ffdfe03a19..e5354f6b83 100644 --- a/vendor/nvapi/nvapi.h +++ b/vendor/nvapi/nvapi.h @@ -41,7 +41,7 @@ /////////////////////////////////////////////////////////////////////////////// // -// Date: Jan 6, 2022 +// Date: Nov 4, 2022 // File: nvapi.h // // NvAPI provides an interface to NVIDIA devices. This file contains the @@ -717,7 +717,6 @@ typedef struct //! \ingroup dispcontrol #define NV_VIEW_TARGET_INFO_VER MAKE_NVAPI_VERSION(NV_VIEW_TARGET_INFO,2) - //! \ingroup dispcontrol __nvapi_deprecated_function("Do not use this function - it is deprecated in release 290. Instead, use NvAPI_DISP_SetDisplayConfig.") NVAPI_INTERFACE NvAPI_SetView(NvDisplayHandle hNvDisplay, NV_VIEW_TARGET_INFO *pTargetInfo, NV_TARGET_VIEW_MODE targetView); @@ -1768,10 +1767,10 @@ NVAPI_INTERFACE NvAPI_GetGPUIDfromPhysicalGPU(NvPhysicalGpuHandle hPhysicalGpu, //! //! \since Release: 170 //! -//! RETURN STATUS: NVAPI_INVALID_ARGUMENT: pCount is NULL -//! NVAPI_OK: *pCount is set -//! NVAPI_NVIDIA_DEVICE_NOT_FOUND: no NVIDIA GPU driving a display was found -//! NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE: hPhysicalGpu was not a physical GPU handle +//! \retval NVAPI_INVALID_ARGUMENT: pCount is NULL +//! \retval NVAPI_OK: *pCount is set +//! \retval NVAPI_NVIDIA_DEVICE_NOT_FOUND: no NVIDIA GPU driving a display was found +//! \retval NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE: hPhysicalGpu was not a physical GPU handle //! //! \ingroup gpu /////////////////////////////////////////////////////////////////////////////// @@ -1920,7 +1919,7 @@ typedef struct _NV_GPU_DISPLAYIDS NvU32 isWFD : 1; //!< Deprecated. Will always return 0. NvU32 isConnected : 1; //!< if bit is set, then this display is connected - NvU32 reservedInternal :10; //!< Do not use + NvU32 reservedInternal : 10; //!< Do not use NvU32 isPhysicallyConnected : 1; //!< if bit is set, then this display is a phycially connected display; Valid only when isConnected bit is set NvU32 reserved : 14; //!< must be zero } NV_GPU_DISPLAYIDS; @@ -1936,29 +1935,31 @@ typedef struct _NV_GPU_DISPLAYIDS // // FUNCTION NAME: NvAPI_GPU_GetConnectedDisplayIds // -//! \code +//! //! DESCRIPTION: Due to space limitation NvAPI_GPU_GetConnectedOutputs can return maximum 32 devices, but //! this is no longer true for DPMST. NvAPI_GPU_GetConnectedDisplayIds will return all //! the connected display devices in the form of displayIds for the associated hPhysicalGpu. //! This function can accept set of flags to request cached, uncached, sli and lid to get the connected devices. //! Default value for flags will be cached . +//! //! HOW TO USE: 1) for each PhysicalGpu, make a call to get the number of connected displayId's //! using NvAPI_GPU_GetConnectedDisplayIds by passing the pDisplayIds as NULL //! On call success: +//! //! 2) If pDisplayIdCount is greater than 0, allocate memory based on pDisplayIdCount. Then make a call NvAPI_GPU_GetConnectedDisplayIds to populate DisplayIds. //! However, if pDisplayIdCount is 0, do not make this call. //! SUPPORTED OS: Windows 7 and higher //! -//! PARAMETERS: hPhysicalGpu (IN) - GPU selection -//! flags (IN) - One or more defines from NV_GPU_CONNECTED_IDS_FLAG_* as valid flags. -//! pDisplayIds (IN/OUT) - Pointer to an NV_GPU_DISPLAYIDS struct, each entry represents a one displayID and its attributes -//! pDisplayIdCount(OUT)- Number of displayId's. +//! \param [in] hPhysicalGpu - GPU selection +//! \param [in] flags - One or more defines from NV_GPU_CONNECTED_IDS_FLAG_* as valid flags. +//! \param [in,out] pDisplayIds - Pointer to an NV_GPU_DISPLAYIDS struct, each entry represents a one displayID and its attributes +//! \param [in] pDisplayIdCount - Number of displayId's. //! -//! RETURN STATUS: NVAPI_INVALID_ARGUMENT: hPhysicalGpu or pDisplayIds or pDisplayIdCount is NULL -//! NVAPI_OK: *pDisplayIds contains a set of GPU-output identifiers -//! NVAPI_NVIDIA_DEVICE_NOT_FOUND: no NVIDIA GPU driving a display was found -//! NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE: hPhysicalGpu was not a physical GPU handle -//! \endcode +//! \retval NVAPI_INVALID_ARGUMENT: hPhysicalGpu or pDisplayIds or pDisplayIdCount is NULL +//! \retval NVAPI_OK: *pDisplayIds contains a set of GPU-output identifiers +//! \retval NVAPI_NVIDIA_DEVICE_NOT_FOUND: no NVIDIA GPU driving a display was found +//! \retval NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE: hPhysicalGpu was not a physical GPU handle +//! //! \ingroup gpu /////////////////////////////////////////////////////////////////////////////// NVAPI_INTERFACE NvAPI_GPU_GetConnectedDisplayIds(__in NvPhysicalGpuHandle hPhysicalGpu, __inout_ecount_part_opt(*pDisplayIdCount, *pDisplayIdCount) NV_GPU_DISPLAYIDS* pDisplayIds, __inout NvU32* pDisplayIdCount, __in NvU32 flags); @@ -2644,6 +2645,26 @@ NVAPI_INTERFACE NvAPI_GPU_GetBoardInfo(NvPhysicalGpuHandle hPhysicalGpu, NV_BOAR +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_GPU_GetRamBusWidth +// +//! This function returns the width of the GPU's RAM memory bus. +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! TCC_SUPPORTED +//! +//! \since Release: 100 +//! +//! \return NVAPI_ERROR or NVAPI_OK +//! \ingroup gpu +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_GPU_GetRamBusWidth(NvPhysicalGpuHandle hPhysicalGpu, NvU32 *pBusWidth); + + + //! Used in NvAPI_GPU_GetArchInfo() typedef struct { @@ -2681,6 +2702,7 @@ typedef enum _NV_GPU_ARCHITECTURE_ID NV_GPU_ARCHITECTURE_GV110 = 0x00000150, NV_GPU_ARCHITECTURE_TU100 = 0x00000160, NV_GPU_ARCHITECTURE_GA100 = 0x00000170, + NV_GPU_ARCHITECTURE_AD100 = 0x00000190, }NV_GPU_ARCHITECTURE_ID; @@ -2779,6 +2801,10 @@ typedef enum _NV_GPU_ARCH_IMPLEMENTATION_ID NV_GPU_ARCH_IMPLEMENTATION_GA102 = 0x00000002, NV_GPU_ARCH_IMPLEMENTATION_GA104 = 0x00000004, + NV_GPU_ARCH_IMPLEMENTATION_AD102 = 0x00000002, + NV_GPU_ARCH_IMPLEMENTATION_AD103 = 0x00000003, + NV_GPU_ARCH_IMPLEMENTATION_AD104 = 0x00000004, + }NV_GPU_ARCH_IMPLEMENTATION_ID; typedef enum _NV_GPU_CHIP_REVISION @@ -2854,7 +2880,7 @@ NVAPI_INTERFACE NvAPI_GPU_GetArchInfo(NvPhysicalGpuHandle hPhysicalGpu, NV_GPU_A // These APIs allow I2C access only to DDC monitors -//! \addtogroup i2capi +//! \ingroup i2capi //! @{ #define NVAPI_MAX_SIZEOF_I2C_DATA_BUFFER 4096 #define NVAPI_MAX_SIZEOF_I2C_REG_ADDRESS 4 @@ -3167,7 +3193,7 @@ NVAPI_INTERFACE NvAPI_GPU_GetHDCPSupportStatus(NvPhysicalGpuHandle hPhysicalGpu, -//! \addtogroup gpucuda +//! \ingroup gpucuda //! @{ //! defgroup nvcomp_gpu_top NVIDIA Compute GPU Topology Flags @@ -3235,7 +3261,7 @@ typedef NV_COMPUTE_GPU_TOPOLOGY_V2 NV_COMPUTE_GPU_TOPOLOGY; //! //! \since Release: 180 //! -//! \param [inout] pComputeTopo Pointer to the structure NV_COMPUTE_GPU_TOPOLOGY. +//! \param [in,out] pComputeTopo Pointer to the structure NV_COMPUTE_GPU_TOPOLOGY. //! //! \retval ::NVAPI_OK The request was completed successfully. //! The gpuCount indicates if one or more compute-capable GPUs are found. @@ -3544,7 +3570,7 @@ typedef struct void *callbackParam; //!< This value will be passed back to the callback function when an event occurs union { - NVAPI_CALLBACK_QSYNCEVENT nvQSYNCEventCallback; //!< Callback function pointer for QSYNC events + NVAPI_CALLBACK_QSYNCEVENT nvQSYNCEventCallback; //!< Callback function pointer for QSYNC events }nvCallBackFunc; } NV_EVENT_REGISTER_CALLBACK, *PNV_EVENT_REGISTER_CALLBACK; @@ -3903,7 +3929,10 @@ NVAPI_INTERFACE NvAPI_GPU_GetScanoutConfigurationEx(__in NvU32 displayId, __inou // //! DESCRIPTION: This API returns the OS-AdapterID from physicalGpu Handle. OS-AdapterID //! is the Adapter ID that is used by Win7 CCD APIs. +//! This API is deprecated. Please use NvAPI_GPU_GetLogicalGpuInfo to get the OS-AdapterID. +//! NvAPI_GetLogicalGPUFromPhysicalGPU can be used to get the logical GPU handle associated with specified physical GPU handle. //! +//! \deprecated Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetLogicalGpuInfo. //! SUPPORTED OS: Windows 7 and higher //! //! @@ -3917,6 +3946,7 @@ NVAPI_INTERFACE NvAPI_GPU_GetScanoutConfigurationEx(__in NvU32 displayId, __inou //! //! \ingroup gpu /////////////////////////////////////////////////////////////////////////////// +__nvapi_deprecated_function("Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetLogicalGpuInfo.") NVAPI_INTERFACE NvAPI_GPU_GetAdapterIdFromPhysicalGpu(NvPhysicalGpuHandle hPhysicalGpu, void *pOSAdapterId); @@ -4006,7 +4036,7 @@ typedef NV_LOGICAL_GPU_DATA_V1 NV_LOGICAL_GPU_DATA; //! \since Release: 421 //! //! \param [in] hLogicalGpu logical GPU Handle. -//! \param [inout] pLogicalGpuData Pointer to NV_LOGICAL_GPU_DATA structure. +//! \param [in,out] pLogicalGpuData Pointer to NV_LOGICAL_GPU_DATA structure. //! //! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with //! specific meaning for this API, they are listed below. @@ -4016,7 +4046,7 @@ typedef NV_LOGICAL_GPU_DATA_V1 NV_LOGICAL_GPU_DATA; NVAPI_INTERFACE NvAPI_GPU_GetLogicalGpuInfo(__in NvLogicalGpuHandle hLogicalGpu, __inout NV_LOGICAL_GPU_DATA *pLogicalGpuData); -//! \addtogroup gridlicense +//! \ingroup gridlicense //! @{ //! Maximum number of supported Feature License @@ -4039,6 +4069,7 @@ typedef enum _NV_LICENSE_FEATURE_TYPE NV_LICENSE_FEATURE_NVIDIA_RTX = 2, NV_LICENSE_FEATURE_QUADRO = NV_LICENSE_FEATURE_NVIDIA_RTX, //!< DEPRECATED name - do not use NV_LICENSE_FEATURE_GAMING = 3, + NV_LICENSE_FEATURE_COMPUTE = 4, } NV_LICENSE_FEATURE_TYPE; //! Used in NV_LICENSE_FEATURE_DETAILS @@ -4174,6 +4205,8 @@ typedef NV_LICENSABLE_FEATURES_V4 NV_LICENSABLE_FEATURES; //! SUPPORTED OS: Windows 7 and higher //! //! +//! TCC_SUPPORTED +//! //! \param [in] hPhysicalGpu GPU selection //! \param [in,out] pLicensableFeatures Licensable features information. //! @@ -4210,7 +4243,7 @@ typedef NV_GPU_VR_READY_V1 NV_GPU_VR_READY; //! //! \since Release: 465 //! -//! \param [inout] pGpuVrReadyData - This structure will be filled with required information. +//! \param [in,out] pGpuVrReadyData - This structure will be filled with required information. //! //! \return This API can return any of the error codes enumerated in //! #NvAPI_Status. If there are return error codes with specific @@ -4219,6 +4252,7 @@ typedef NV_GPU_VR_READY_V1 NV_GPU_VR_READY; //! \ingroup gpu /////////////////////////////////////////////////////////////////////////////// NVAPI_INTERFACE NvAPI_GPU_GetVRReadyData(__in NvPhysicalGpuHandle hPhysicalGpu, __inout NV_GPU_VR_READY *pGpuVrReadyData); + //! Used in NvAPI_GPU_GetPerfDecreaseInfo. //! Bit masks for knowing the exact reason for performance decrease typedef enum _NVAPI_GPU_PERF_DECREASE @@ -7139,10 +7173,85 @@ typedef struct _NV_HDR_CAPABILITIES_V2 } NV_HDR_CAPABILITIES_V2; +typedef struct _NV_HDR_CAPABILITIES_V3 +{ + NvU32 version; //!< Version of this structure + + NvU32 isST2084EotfSupported :1; //!< HDMI2.0a UHDA HDR with ST2084 EOTF (CEA861.3). Boolean: 0 = not supported, 1 = supported; + NvU32 isTraditionalHdrGammaSupported :1; //!< HDMI2.0a traditional HDR gamma (CEA861.3). Boolean: 0 = not supported, 1 = supported; + NvU32 isEdrSupported :1; //!< Extended Dynamic Range on SDR displays. Boolean: 0 = not supported, 1 = supported; + NvU32 driverExpandDefaultHdrParameters :1; //!< If set, driver will expand default (=zero) HDR capabilities parameters contained in display's EDID. + //!< Boolean: 0 = report actual HDR parameters, 1 = expand default HDR parameters; + NvU32 isTraditionalSdrGammaSupported :1; //!< HDMI2.0a traditional SDR gamma (CEA861.3). Boolean: 0 = not supported, 1 = supported; + NvU32 isDolbyVisionSupported :1; //!< Dolby Vision Support. Boolean: 0 = not supported, 1 = supported; + NvU32 isHdr10PlusSupported :1; //!< HDR10+ (Sink Side Tonemapping) is supported + NvU32 isHdr10PlusGamingSupported :1; //!< HDR10+ Gaming, a.k.a HDR10+ Source Side Tonemapping (SSTM), is supported + NvU32 reserved :24; + + NV_STATIC_METADATA_DESCRIPTOR_ID static_metadata_descriptor_id; //!< Static Metadata Descriptor Id (0 for static metadata type 1) + + struct //!< Static Metadata Descriptor Type 1, CEA-861.3, SMPTE ST2086 + { + NvU16 displayPrimary_x0; //!< x coordinate of color primary 0 (e.g. Red) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y0; //!< y coordinate of color primary 0 (e.g. Red) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayPrimary_x1; //!< x coordinate of color primary 1 (e.g. Green) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y1; //!< y coordinate of color primary 1 (e.g. Green) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayPrimary_x2; //!< x coordinate of color primary 2 (e.g. Blue) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y2; //!< y coordinate of color primary 2 (e.g. Blue) of the display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayWhitePoint_x; //!< x coordinate of white point of the display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayWhitePoint_y; //!< y coordinate of white point of the display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 desired_content_max_luminance; //!< Maximum display luminance = desired max luminance of HDR content ([0x0000-0xFFFF] = [0.0 - 65535.0] cd/m^2, in units of 1 cd/m^2) + NvU16 desired_content_min_luminance; //!< Minimum display luminance = desired min luminance of HDR content ([0x0000-0xFFFF] = [0.0 - 6.55350] cd/m^2, in units of 0.0001 cd/m^2) + NvU16 desired_content_max_frame_average_luminance; //!< Desired maximum Frame-Average Light Level (MaxFALL) of HDR content ([0x0000-0xFFFF] = [0.0 - 65535.0] cd/m^2, in units of 1 cd/m^2) + }display_data; + + struct + { + NvU32 VSVDB_version : 3; //!< Version of Vendor Data block,Version 0: 25 bytes Version 1: 14 bytes + NvU32 dm_version : 8; //!< Upper Nibble represents major version of Display Management(DM) while lower represents minor version of DM + NvU32 supports_2160p60hz : 1; //!< If set sink is capable of 4kx2k @ 60hz + NvU32 supports_YUV422_12bit : 1; //!< If set, sink is capable of YUV422-12 bit + NvU32 supports_global_dimming : 1; //!< Indicates if sink supports global dimming + NvU32 colorimetry : 1; //!< If set indicates sink supports DCI P3 colorimetry, REc709 otherwise + NvU32 supports_backlight_control : 2; //!< This is set when sink is using lowlatency interface and can control its backlight. + NvU32 backlt_min_luma : 2; //!< It is the level for Backlt min luminance value (reserved = 0x3 in latest DV spec). + NvU32 interface_supported_by_sink : 2; //!< Indicates the interface (standard or low latency) supported by the sink. + NvU32 supports_10b_12b_444 : 2; //!< It is set when interface supported is low latency, it tells whether it supports 10 bit or 12 bit RGB 4:4:4 or YCbCr 4:4:4 or both. + NvU32 parity : 1; //!< resolution and frame-rate relationships between Dolby Vision and other video processing + NvU32 reserved : 8; //!< Should be set to zero + + //!< All values below are encoded use DolbyVisionHDMITransmissionSpecification document to decode + NvU16 target_min_luminance; //!< Represents min luminance level of Sink + NvU16 target_max_luminance; //!< Represents max luminance level of sink + NvU16 cc_red_x; //!< Red primary chromaticity coordinate x + NvU16 cc_red_y; //!< Red primary chromaticity coordinate y + NvU16 cc_green_x; //!< Green primary chromaticity coordinate x + NvU16 cc_green_y; //!< Green primary chromaticity coordinate Y + NvU16 cc_blue_x; //!< Blue primary chromaticity coordinate x + NvU16 cc_blue_y; //!< Blue primary chromaticity coordinate y + NvU16 cc_white_x; //!< White primary chromaticity coordinate x + NvU16 cc_white_y; //!< White primary chromaticity coordinate y + }dv_static_metadata; + + struct + { + NvU16 application_version : 2; //!< Application version of HDR10+ Vendor Specific Video Data Block + NvU16 full_frame_peak_luminance_index : 2; //!< Full frame peak luminance index + NvU16 peak_luminance_index : 4; //!< Peak luminance index + NvU16 reserved : 8; + }hdr10plus_vsvdb; + +} NV_HDR_CAPABILITIES_V3; + #define NV_HDR_CAPABILITIES_VER1 MAKE_NVAPI_VERSION(NV_HDR_CAPABILITIES_V1, 1) #define NV_HDR_CAPABILITIES_VER2 MAKE_NVAPI_VERSION(NV_HDR_CAPABILITIES_V2, 2) -#define NV_HDR_CAPABILITIES_VER NV_HDR_CAPABILITIES_VER2 -typedef NV_HDR_CAPABILITIES_V2 NV_HDR_CAPABILITIES; +#define NV_HDR_CAPABILITIES_VER3 MAKE_NVAPI_VERSION(NV_HDR_CAPABILITIES_V3, 3) +#define NV_HDR_CAPABILITIES_VER NV_HDR_CAPABILITIES_VER3 +typedef NV_HDR_CAPABILITIES_V3 NV_HDR_CAPABILITIES; //! \ingroup dispcontrol //! @{ @@ -7284,8 +7393,220 @@ typedef NV_HDR_COLOR_DATA_V2 NV_HDR_COLOR_DATA; /////////////////////////////////////////////////////////////////////////////// NVAPI_INTERFACE NvAPI_Disp_HdrColorControl(__in NvU32 displayId, __inout NV_HDR_COLOR_DATA *pHdrColorData); -//! @} +typedef enum _NV_COLORSPACE_TYPE +{ + NV_COLORSPACE_sRGB = 0, //!< sRGB IEC 61966-2-1:1999 == DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 + NV_COLORSPACE_xRGB = 1, //!< FP16 linear with sRGB color primaries == DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 + NV_COLORSPACE_REC2100 = 12, //!< ITU-R Rec BT.2100 (HDR10) == DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 +} NV_COLORSPACE_TYPE; + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_SetSourceColorSpace +// +//! \fn NvAPI_Disp_SetSourceColorSpace(__in NvU32 displayId, __in NV_SOURCE_COLORSPACE colorSpace) +//! DESCRIPTION: This API sets colorspace of the source identified by the process id of the caller +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Monitor Identifier +//! \param [in] colorSpaceType Source colorspace type +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_SetSourceColorSpace(__in NvU32 displayId, __in NV_COLORSPACE_TYPE colorSpaceType); + +#define NV_SOURCE_PID_CURRENT 0 + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_GetSourceColorSpace +// +//! \fn NvAPI_Disp_GetSourceColorSpace(__in NvU32 displayId, __inout NV_SOURCE_COLORSPACE* pColorSpace) +//! DESCRIPTION: This API gets colorspace of the source identified by the process id. +//! Set sourcePID = NV_SOURCE_PID_CURRENT to use the process id of the caller. +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Monitor Identifier +//! \param [out] pColorSpaceType Source colorspace type +//! \param [in] sourcePID Source process id (PID) +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_GetSourceColorSpace(__in NvU32 displayId, __inout NV_COLORSPACE_TYPE* pColorSpaceType, NvU64 sourcePID); + +typedef struct _NV_HDR_METADATA_V1 +{ + NvU32 version; //!< Version of this structure + + NvU16 displayPrimary_x0; //!< x coordinate of color primary 0 (e.g. Red) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y0; //!< y coordinate of color primary 0 (e.g. Red) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayPrimary_x1; //!< x coordinate of color primary 1 (e.g. Green) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y1; //!< y coordinate of color primary 1 (e.g. Green) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayPrimary_x2; //!< x coordinate of color primary 2 (e.g. Blue) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayPrimary_y2; //!< y coordinate of color primary 2 (e.g. Blue) of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 displayWhitePoint_x; //!< x coordinate of white point of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + NvU16 displayWhitePoint_y; //!< y coordinate of white point of mastering display ([0x0000-0xC350] = [0.0 - 1.0]) + + NvU16 max_display_mastering_luminance; //!< Maximum display mastering luminance ([0x0000-0xFFFF] = [0.0 - 65535.0] cd/m^2, in units of 1 cd/m^2) + NvU16 min_display_mastering_luminance; //!< Minimum display mastering luminance ([0x0000-0xFFFF] = [0.0 - 6.55350] cd/m^2, in units of 0.0001 cd/m^2) + + NvU16 max_content_light_level; //!< Maximum Content Light level (MaxCLL) ([0x0000-0xFFFF] = [0.0 - 65535.0] cd/m^2, in units of 1 cd/m^2) + NvU16 max_frame_average_light_level; //!< Maximum Frame-Average Light Level (MaxFALL) ([0x0000-0xFFFF] = [0.0 - 65535.0] cd/m^2, in units of 1 cd/m^2) +} NV_HDR_METADATA_V1; + +#define NV_HDR_METADATA_VER1 MAKE_NVAPI_VERSION(NV_HDR_METADATA_V1, 1) +#define NV_HDR_METADATA_VER NV_HDR_METADATA_VER1 +typedef NV_HDR_METADATA_V1 NV_HDR_METADATA; + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_SetSourceHdrMetadata +// +//! \fn NvAPI_Disp_SetSourceHdrMetadata(__in NvU32 displayId, __in NV_HDR_METADATA* pMetadata) +//! DESCRIPTION: This API sets HDR metadata of the source identified by the process id of the caller +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Monitor Identifier +//! \param [in] pMetadata HDR metadata +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_SetSourceHdrMetadata(__in NvU32 displayId, __in NV_HDR_METADATA* pMetadata); + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_GetSourceHdrMetadata +// +//! \fn NvAPI_NvAPI_Disp_GetSourceHdrMetadata(__in NvU32 displayId, __inout NV_HDR_METADATA* pMetadata) +//! DESCRIPTION: This API gets HDR metadata of the source identified by the process id of the caller +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Monitor Identifier +//! \param [out] pMetadata HDR metadata +//! \param [in] sourcePID Source process id (PID) +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_GetSourceHdrMetadata(__in NvU32 displayId, __inout NV_HDR_METADATA* pMetadata, NvU64 sourcePID); + +typedef enum _NV_DISPLAY_OUTPUT_MODE +{ + NV_DISPLAY_OUTPUT_MODE_SDR = 0, + NV_DISPLAY_OUTPUT_MODE_HDR10 = 1, + NV_DISPLAY_OUTPUT_MODE_HDR10PLUS_GAMING = 2 +} NV_DISPLAY_OUTPUT_MODE; + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_SetOutputMode +// +//! \fn NvAPI_Disp_SetOutputMode(__in NvU32 displayId, __inout NV_DISPLAY_OUTPUT_MODE* pDisplayMode) +//! DESCRIPTION: This API sets display output mode and returns the display output mode used by the OS before the API call. +//! Only one application at a time can override OS display output mode. +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Display identifier +//! \param [in, out] pDisplayMode New/original display output mode +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +//! +//! \retval ::NVAPI_RESOURCE_IN_USE the output mode can't be changed as it is already overriden by another application. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_SetOutputMode(__in NvU32 displayId, __inout NV_DISPLAY_OUTPUT_MODE* pDisplayMode); + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_GetOutputMode +// +//! \fn NvAPI_Disp_GetOutputMode(__in NvU32 displayId, __inout NV_DISPLAY_OUTPUT_MODE* pDisplayMode) +//! DESCRIPTION: This API gets display output mode. +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Display identifier +//! \param [out] pDisplayMode Current display output mode +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_GetOutputMode(__in NvU32 displayId, __inout NV_DISPLAY_OUTPUT_MODE* pDisplayMode); + +typedef enum _NV_HDR_TONEMAPPING_METHOD +{ + NV_HDR_TONEMAPPING_APP = 0, + NV_HDR_TONEMAPPING_GPU = 1 +} NV_HDR_TONEMAPPING_METHOD; + +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_SetHdrToneMapping +// +//! \fn NvAPI_Disp_SetHdrToneMapping(__in NvU32 displayId, __in NV_HDR_TONEMAPPING_METHOD hdrTonemapping) +//! DESCRIPTION: This API sets HDR tonemapping method for the display +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId Display identifier +//! \param [in] hdrTonemapping HDR tonemapping method +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_SetHdrToneMapping(__in NvU32 displayId, __in NV_HDR_TONEMAPPING_METHOD hdrTonemapping); +/////////////////////////////////////////////////////////////////////////////// +// FUNCTION NAME: NvAPI_Disp_GetHdrToneMapping +// +//! \fn NvAPI_Disp_GetHdrToneMapping(__in NvU32 displayId, __inout NV_HDR_TONEMAPPING_METHOD* pHdrTonemapping) +//! DESCRIPTION: This API gets HDR tonemapping method for the display. +//! +//! SUPPORTED OS: Windows 7 and higher +//! +//! +//! \since Release: 525 +//! +//! \param [in] displayId display identifier +//! \param [out] pHdrTonemapping HDR tonemapping method +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. If there are return error codes with +//! specific meaning for this API, they are listed below. +// +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_Disp_GetHdrToneMapping(__in NvU32 displayId, __inout NV_HDR_TONEMAPPING_METHOD* pHdrTonemapping); +//! @} //! \ingroup dispcontrol //! Used in NvAPI_DISP_GetTiming(). @@ -7851,7 +8172,7 @@ NVAPI_INTERFACE NvAPI_DISP_GetDisplayConfig(__inout NvU32 *pathInfoCount, __out_ //! //! \param [in] pathInfoCount Number of supplied elements in pathInfo //! \param [in] pathInfo Array of path information -//! \param [in] flags Flags for applying settings +//! \param [in] flags A bitwise OR of supported flags from NV_DISPLAYCONFIG_FLAGS. //! //! \retval ::NVAPI_OK - completed request //! \retval ::NVAPI_API_NOT_INTIALIZED - NVAPI not initialized @@ -12944,10 +13265,21 @@ typedef struct NvU64 gpuVAStart; //!< [OUT] gpu virtual address where resource starts NvU64 gpuVASize; //!< [OUT] virtual memory size } NVAPI_UAV_INFO_V1; + +typedef struct +{ + NvU32 version; //!< Structure version + NvU32 surfaceHandle; //!< [OUT] driver handle for a UAV (that can be used as a cudaSurfaceObject_t) + NvU64 gpuVAStart; //!< [OUT] gpu virtual address where resource starts + NvU64 gpuVASize; //!< [OUT] virtual memory size + NvU64 outFlags; +} NVAPI_UAV_INFO_V2; + #define NVAPI_UAV_INFO_VER1 1 +#define NVAPI_UAV_INFO_VER2 MAKE_NVAPI_VERSION(NVAPI_UAV_INFO_V2, 2) -#define NVAPI_UAV_INFO_VER NVAPI_UAV_INFO_VER1 -typedef NVAPI_UAV_INFO_V1 NVAPI_UAV_INFO; +#define NVAPI_UAV_INFO_VER NVAPI_UAV_INFO_VER2 +typedef NVAPI_UAV_INFO_V2 NVAPI_UAV_INFO; NVAPI_INTERFACE NvAPI_D3D12_CaptureUAVInfo(__in ID3D12Device* pDevice, __out NVAPI_UAV_INFO *pUAVInfo); @@ -13595,7 +13927,7 @@ NVAPI_INTERFACE NvAPI_D3D11_EnumerateMetaCommands(__in //! #NvAPI_Status. If there are return error codes with specific //! meaning for this API, they are listed below. //! -//! DXGI_ERROR_NOT_SUPPORTED - The requested Metacommand is not supported. +//! NVAPI_NOT_SUPPORTED - The requested Metacommand is not supported. //! \endcode //! \ingroup dx /////////////////////////////////////////////////////////////////////////////// @@ -13819,7 +14151,7 @@ NVAPI_INTERFACE NvAPI_D3D12_EnumerateMetaCommands(__in //! #NvAPI_Status. If there are return error codes with specific //! meaning for this API, they are listed below. //! -//! DXGI_ERROR_NOT_SUPPORTED - The requested Metacommand is not supported. +//! NVAPI_NOT_SUPPORTED - The requested Metacommand is not supported. //! \endcode //! \ingroup dx /////////////////////////////////////////////////////////////////////////////// @@ -16701,14 +17033,19 @@ NVAPI_INTERFACE NvAPI_D3D_GetLatency(__in IUnknown *pDev, __out NV_LATENCY_RESUL //! \ingroup dx typedef enum { - SIMULATION_START = 0, - SIMULATION_END = 1, - RENDERSUBMIT_START = 2, - RENDERSUBMIT_END = 3, - PRESENT_START = 4, - PRESENT_END = 5, - INPUT_SAMPLE = 6, - TRIGGER_FLASH = 7, + SIMULATION_START = 0, + SIMULATION_END = 1, + RENDERSUBMIT_START = 2, + RENDERSUBMIT_END = 3, + PRESENT_START = 4, + PRESENT_END = 5, + INPUT_SAMPLE = 6, + TRIGGER_FLASH = 7, + PC_LATENCY_PING = 8, + OUT_OF_BAND_RENDERSUBMIT_START = 9, + OUT_OF_BAND_RENDERSUBMIT_END = 10, + OUT_OF_BAND_PRESENT_START = 11, + OUT_OF_BAND_PRESENT_END = 12, } NV_LATENCY_MARKER_TYPE; //! SUPPORTED OS: Windows 7 and higher @@ -16760,6 +17097,65 @@ typedef NV_LATENCY_MARKER_PARAMS_V1 NV_LATENCY_MARKER_PARAMS; NVAPI_INTERFACE NvAPI_D3D_SetLatencyMarker(__in IUnknown *pDev, __in NV_LATENCY_MARKER_PARAMS* pSetLatencyMarkerParams); #endif //defined(__cplusplus) && (defined(_D3D9_H_) || defined(__d3d10_h__) || defined(__d3d10_1_h__) || defined(__d3d11_h__) || defined(__d3d12_h__)) +//! Used in NvAPI_D3D12_SetAsyncFrameMarker +//! \ingroup dx +typedef NV_LATENCY_MARKER_PARAMS_V1 NV_ASYNC_FRAME_MARKER_PARAMS_V1; +typedef NV_ASYNC_FRAME_MARKER_PARAMS_V1 NV_ASYNC_FRAME_MARKER_PARAMS; +#define NV_ASYNC_FRAME_MARKER_PARAMS_VER1 NV_LATENCY_MARKER_PARAMS_VER1 +#define NV_ASYNC_FRAME_MARKER_PARAMS_VER NV_LATENCY_MARKER_PARAMS_VER1 + +#if defined(__cplusplus) && (defined(__d3d12_h__)) +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_SetAsyncFrameMarker +// +//! DESCRIPTION: Set an async frame marker for present and out-of-band render tracking. +//! +//! \since Release: 520 +//! \param [in] pCommandQueue The D3D12CommandQueue +//! \param [in] pSetAsyncFrameMarkerParams The async frame marker structure +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_SetAsyncFrameMarker(__in ID3D12CommandQueue *pCommandQueue, __in NV_ASYNC_FRAME_MARKER_PARAMS* pSetAsyncFrameMarkerParams); +#endif //defined(__cplusplus) && (defined(__d3d12_h__)) + +//! SUPPORTED OS: Windows 10 and higher +//! +//! Used in NvAPI_D3D12_NotifyOutOfBandCommandQueue +//! \ingroup dx +typedef enum +{ + OUT_OF_BAND_RENDER = 0, + OUT_OF_BAND_PRESENT = 1, +} NV_OUT_OF_BAND_CQ_TYPE; + +#if defined(__cplusplus) && defined(__d3d12_h__) +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_NotifyOutOfBandCommandQueue +// +//! DESCRIPTION: Notifies the driver that this command queue runs out of band +//! from the application's frame cadence. +//! +//! \since Release: 520 +//! \param [in] pCommandQueue The D3D12CommandQueue +//! \param [in] cqType The type of out of band command queue +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_NotifyOutOfBandCommandQueue(__in ID3D12CommandQueue *pCommandQueue, __in NV_OUT_OF_BAND_CQ_TYPE cqType); +#endif //defined(__cplusplus) && defined(__d3d12_h__)) #if defined (__cplusplus) && defined(__d3d12_h__) @@ -16838,7 +17234,67 @@ NVAPI_INTERFACE NvAPI_D3D12_GetCudaSurfaceObject(__in ID3D12Device* NVAPI_INTERFACE NvAPI_D3D12_IsFatbinPTXSupported(__in ID3D12Device *pDevice, __out bool *pSupported); -#endif //if defined (__cplusplus) && defined(__d3d12_h__) +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! +NVAPI_INTERFACE NvAPI_D3D12_CreateCuModule(__in ID3D12Device* pDevice, + __in const void* pBlob, + __in NvU32 size, + __out NVDX_ObjectHandle* phModule); + +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! +NVAPI_INTERFACE NvAPI_D3D12_EnumFunctionsInModule(__in ID3D12Device* pDevice, + __in NVDX_ObjectHandle hModule, + __inout NvU32* pArraySize, + __out const char** const pFunctionNames); + +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! +NVAPI_INTERFACE NvAPI_D3D12_CreateCuFunction(__in ID3D12Device* pDevice, + __in NVDX_ObjectHandle hModule, + __in const char* pName, + __out NVDX_ObjectHandle* phFunction); + +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! + +typedef struct _NVAPI_DIM3 +{ + NvU32 x; + NvU32 y; + NvU32 z; +} NVAPI_DIM3; + +typedef struct _NVAPI_CU_KERNEL_LAUNCH_PARAMS +{ + NVDX_ObjectHandle hFunction; + NVAPI_DIM3 gridDim; + NVAPI_DIM3 blockDim; + NvU32 dynSharedMemBytes; + void const * pParams; + NvU32 paramSize; +} NVAPI_CU_KERNEL_LAUNCH_PARAMS; + +NVAPI_INTERFACE NvAPI_D3D12_LaunchCuKernelChain(__in ID3D12GraphicsCommandList* pCommandList, + __in const NVAPI_CU_KERNEL_LAUNCH_PARAMS* pKernels, + __in NvU32 numKernels); + +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! +NVAPI_INTERFACE NvAPI_D3D12_DestroyCuModule(__in ID3D12Device* pDevice, + __in NVDX_ObjectHandle hModule); + +// Experimental API for internal use. DO NOT USE! +//! SUPPORTED OS: Windows 10 and higher +//! +NVAPI_INTERFACE NvAPI_D3D12_DestroyCuFunction(__in ID3D12Device* pDevice, + __in NVDX_ObjectHandle hFunction); +#endif //if defined (__cplusplus) && defined(__d3d12_h__) #if defined (__cplusplus) && defined(__d3d11_h__) @@ -16950,6 +17406,791 @@ NVAPI_INTERFACE NvAPI_D3D11_GetResourceGPUVirtualAddress(__in ID3D11Device* #endif //defined(__cplusplus) && defined(__d3d11_h__) +#if defined(__cplusplus) && defined(__d3d12_h__) +//! Flags specifying raytracing thread reordering hardware support. +//! Additional flags will be added as support becomes available. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS +{ + NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_NONE = 0x0, //!< Thread reordering acts as a no-op + NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAP_STANDARD = NV_BIT(0) //!< Standard thread reordering is supported +} NVAPI_D3D12_RAYTRACING_THREAD_REORDERING_CAPS; + +//! Flags specifying raytracing Opacity Micromap support. +//! Additional flags will be added as support becomes available. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_NONE = 0x0, //!< Opacity Micromap support is not available. + //!< The application must not attempt to use any OMM entrypoints or flags. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAP_STANDARD = NV_BIT(0) //!< Standard Opacity Micromap support is available +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_CAPS; + +//! List of Raytracing CAPS types that can be queried. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_CAPS_TYPE +{ + NVAPI_D3D12_RAYTRACING_CAPS_TYPE_THREAD_REORDERING = 0, + NVAPI_D3D12_RAYTRACING_CAPS_TYPE_OPACITY_MICROMAP = 1, + NVAPI_D3D12_RAYTRACING_CAPS_TYPE_INVALID = -1 +} NVAPI_D3D12_RAYTRACING_CAPS_TYPE; + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_GetRaytracingCaps +// +//! DESCRIPTION: Query raytracing capabilities of a device. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pDevice Pointer to the device on which caps should be queried from. Pointer to the device from which ray tracing caps should be queried. Device to query ray tracing caps from. +//! \param [in] type Raytracing caps type requested. +//! \param [out] pData Memory to write raytracing caps to. +//! \param [in] dataSize Size in bytes of the memory pointed to by pData, must match the size of the raytracing caps type requested. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \retval ::NVAPI_OK Completed request +//! \retval ::NVAPI_INVALID_POINTER A null pointer was passed as an argument +//! \retval ::NVAPI_INVALID_ARGUMENT At least one of the arguments are invalid +//! \retval ::NVAPI_ERROR Error occurred +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingCaps( + __in ID3D12Device* pDevice, + __in NVAPI_D3D12_RAYTRACING_CAPS_TYPE type, + __out void* pData, + __in size_t dataSize); +#endif // defined(__cplusplus) && defined(__d3d12_h__) + +//! SUPPORTED OS: Windows 10 and higher +//! +#if defined(__cplusplus) && defined(__d3d12_h__) && (defined(__ID3D12Device5_INTERFACE_DEFINED__) || defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__)) + +// Types used by both device and command list functions. + +//! Flags specifying building instructions and hints when constructing an OMM Array. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_NONE = 0x0, //!< No options specified for the OMM Array build. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE = NV_BIT(0), //!< Allow the OMM Array build to take a little longer in order to optimize for traversal performance. + //!< This flag is incompatible with #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_BUILD = NV_BIT(1) //!< Spend as little time as possible on the OMM Array build with some potential loss to traversal performance. + //!< This flag is incompatible with #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAG_PREFER_FAST_TRACE. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS; + +//! Specifies the input Opacity Micromap formats. +//! The OC1 (Opacity Compression 1) format follows the space-filling curve in barycentric space over the uniformly tessellated micro-triangles. +//! +//! \note This is a 16-bit value when used in #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1, //!< 2-state (Transparent/Opaque) format. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2 //!< 4-state (Transparent/Opaque, Known/Unknown) format. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT; + +//! Number of OMMs of a specific configuration in an OMM Array. +//! Used to compute conservative buffer size estimates for OMM Array builds. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT +{ + NvU32 count; //!< Total number of OMMs in the OMM Array with the particular \p subdivisionLevel and \p format specified in this descriptor. + NvU32 subdivisionLevel; //!< Number of subdivisions for the OMM; valid inputs are [0, 12] (#NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL). + //!< The total number of micro-triangles is 4subdivisionLevel. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT format; //!< Opacity Micromap format. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT; + +//! Describes one Opacity Micromap. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC +{ + NvU32 byteOffset; //!< Byte offset from the \c inputBuffer, specified in the input structure #NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS, to where the input OMM data is located. + NvU16 subdivisionLevel; //!< Number of subdivisions for the OMM; valid inputs are [0, 12] (#NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL). + //!< The total number of micro-triangles is 4subdivisionLevel. + NvU16 format; //!< Format of the OMM of type #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC; + +//! Input structure to OMM Array construction. +//! Individual OMMs are accessed via indices when used in bottom-level acceleration structure (BLAS) construction. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BUILD_FLAGS flags; //!< Flags which apply to all OMMs in the array. + NvU32 numOMMUsageCounts; //!< Number of OMM usage count entries in the \p pOMMUsageCounts array. + const NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT* pOMMUsageCounts; //!< Usage counts for each subdivision level and format combination across all the OMM entries in the build. + D3D12_GPU_VIRTUAL_ADDRESS inputBuffer; //!< Address for raw OMM input data; it must be 256-byte aligned. + //!< It is recommended to try to organize OMMs together in memory that are expected to be used close together spatially. + D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE perOMMDescs; //!< GPU array with one #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_DESC entry per OMM. +} NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS; + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && (defined(__ID3D12Device5_INTERFACE_DEFINED__) || defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__)) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +//! Conservative memory requirements for building an OMM Array. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO +{ + NvU64 resultDataMaxSizeInBytes; //!< Size required to hold the result of an OMM Array build based on the specified inputs. + NvU64 scratchDataSizeInBytes; //!< Scratch storage on GPU required during OMM Array build based on the specified inputs. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO; + +//! Parameters given to NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo(). +//! +//! \ingroup dx +typedef struct _NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_VER. + const NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS* pDesc; //!< [in] Description of the OMM Array build. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO* pInfo; //!< [out] Result of the query. +} NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1; +#define NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1, 1) +typedef NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_V1 NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS; +#define NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_VER NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo +// +//! DESCRIPTION: Query conservative memory requirements for building an OMM (Opacity Micromap) Array. +//! The returned size is conservative for OMM Array builds containing +//! a lower or equal number of entries for each resolution and format combination. +//! +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pDevice Device on which the OMM Array will be built. +//! \param [in,out] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo( + __in ID3D12Device5* pDevice, + __inout NVAPI_GET_RAYTRACING_OPACITY_MICROMAP_ARRAY_PREBUILD_INFO_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +//! Pipeline creation state flags. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS +{ + NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_NONE = 0, //!< [in] No pipeline flags. + NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS_ENABLE_OMM_SUPPORT = NV_BIT(0), //!< [in] Change whether raytracing pipelines are created with support for Opacity Micromaps. + //!< If a triangle with an OMM is encountered during traversal and the pipeline was not created with support for them, behavior is undefined. + //!< Support should only be enabled if there are OMMs present, since it may incur a small penalty on traversal performance overall. +} NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS; + +//! State used when creating new pipelines. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_VER. + NvU32 flags; //!< [in] A bitwise OR of one or more #NVAPI_D3D12_PIPELINE_CREATION_STATE_FLAGS flags for raytracing pipeline creation. +} NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1; +#define NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1, 1) +typedef NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_V1 NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS; +#define NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_VER NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_SetCreatePipelineStateOptions +// +//! DESCRIPTION: Globally change the state affecting pipeline creations. +//! This affects all pipelines created after this call, and until this function is called again. +//! +//! \note Only supported on GPUs capable of DXR. +//! Some of the flags and fields have further restrictions, in which case their description will include a note with more details. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pDevice Device on which the pipelines will be created. +//! \param [in] pState State to be applied to all future pipeline creations. + +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_SetCreatePipelineStateOptions( + __in ID3D12Device5* pDevice, + __in const NVAPI_D3D12_SET_CREATE_PIPELINE_STATE_OPTIONS_PARAMS* pState); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +//! Type of serialized data. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX +{ + // D3D12_SERIALIZED_DATA_TYPE flags + NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE_EX = 0x0, //!< Serialized data contains a raytracing acceleration structure. + //!< Starting from offset 0, the first bytes of the serialized acceleration structure can be reinterpreted as \c D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER. + //!< That structure contains the identifier to be passed along to NvAPI_D3D12_CheckDriverMatchingIdentifierEx(). + + // NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX specific flags + NVAPI_D3D12_SERIALIZED_DATA_RAYTRACING_OPACITY_MICROMAP_ARRAY_EX = 0x1, //!< Data blob contains an OMM Array. + //!< Starting from offset 0, the first bytes of the OMM Array can be reinterpreted as \c D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER. + +} NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX; + +//! Parameters given to NvAPI_D3D12_CheckDriverMatchingIdentifierEx(). +//! +//! \ingroup dx +typedef struct _NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_VER. + NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX serializedDataType; //!< [in] Type of data to be deserialized; see #NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX. + const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* pIdentifierToCheck; //!< [in] Identifier from the header of the serialized data to check with the driver; see \c D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER. + //!< Information about how to retrieve that identifier can be found in the description of each #NVAPI_D3D12_SERIALIZED_DATA_TYPE_EX enum. + D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS checkStatus; //!< [out] Result of the check; see \c D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS. +} NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1; +#define NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1, 1) +typedef NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_V1 NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS; +#define NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_VER NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_CheckDriverMatchingIdentifierEx +// +//! DESCRIPTION: This function is an extension of ID3D12Device5::CheckDriverMatchingIdentifier() with additional serialized data types. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pDevice Device on which the data will be deserialized. +//! \param [in,out] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_CheckDriverMatchingIdentifierEx( + __in ID3D12Device5* pDevice, + __inout NVAPI_CHECK_DRIVER_MATCHING_IDENTIFIER_EX_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +//! This enum extends \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS with modified and additional values. +//! Only modified/new values are fully described; for more information on the other values, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX +{ + // D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS flags + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE_EX = 0x0, //!< No options specified for the acceleration structure build. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE_EX = NV_BIT(0), //!< Allow the acceleration structure to later be updated (via the flag #NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE_EX), rather than always requiring a full rebuild. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION_EX = NV_BIT(1), //!< Allow for the acceleration structure to later be compacted. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE_EX = NV_BIT(2), //!< Favorize higher raytracing performance at the cost of longer build times. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD_EX = NV_BIT(3), //!< Favorize faster build times at the cost of lower raytracing performance. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY_EX = NV_BIT(4), //!< Minimize the memory footprint of the produced acceleration structure, potentially at the cost of longer build time or lower raytracing performance. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE_EX = NV_BIT(5), //!< Instead of rebuilding the acceleration structure from scratch, the existing acceleration structure will be updated. + //!< Added behaviour: If #NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX is specified, OMM references may be changed along with positions when an update is performed. + + // NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX specific flags + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX = NV_BIT(6), //!< The acceleration structure (AS) supports updating OMM contents (base OMM Array and/or indices). + //!< Specifying this flag may result in larger AS size and may reduce traversal performance. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS_EX = NV_BIT(7), //!< Only applicable for BLAS builds. If enabled, any instances referencing this BLAS are allowed to disable the OMM test through the #NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX flag. + //!< Specifying this build flag may result in some reductions in traversal performance. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_OPACITY_STATES_UPDATE_EX = NV_BIT(8), //!< The acceleration structure (AS) supports updating OMM data (encoded opacity values). + //!< Specifying this flag may reduce traversal performance. + +} NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX; + +//! This enum extends \c D3D12_RAYTRACING_GEOMETRY_TYPE with additional values. +//! Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX +{ + // D3D12_RAYTRACING_GEOMETRY_TYPE flags + NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES_EX = 0x0, //!< This geometry is made of basic triangles. + NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS_EX = 0x1, //!< This geometry is made of axis-aligned bounding boxes (AABBs). + + // NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX specific flags + NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES_EX = 0x2, //!< Shares most fields with the basic triangle geometry type, but allows an OMM Array to be attached to the geometry. + //!< The basic triangle type and this OMM-enabled type geometries may be mixed in the same BLAS build. + + +} NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX; + +//! If a triangle has a uniform OMM state in a BLAS build, it is preferable to signal this explicitly rather than attaching a single state OMM. +//! This can be accomplished by supplying these special indices as entries in \c opacityMicromapIndexBuffer, in #NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1, //!< Uniform transparent OMM state. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2, //!< Uniform opaque OMM state. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3, //!< Uniform unknown-transparent OMM state. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4 //!< Uniform unknown-opaque OMM state. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX; + +//! Geometry descriptor attachment with Opacity Micromaps. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC +{ + D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE opacityMicromapIndexBuffer; //!< Optional buffer specifying which OMM index to use for each triangle; if \c NULL, there is a 1:1 mapping between input triangles and OMM Array entries. + //!< Special values can be used to encode OMMs with uniform state for individual triangles (see #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX). + //!< For BLAS updates, this input buffer must match that of the original build if the #NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE_EX build flag is not set. + DXGI_FORMAT opacityMicromapIndexFormat; //!< Format of \c opacityMicromapIndexBuffer, either \c DXGI_FORMAT_R32_UINT or \c DXGI_FORMAT_R16_UINT. + NvU32 opacityMicromapBaseLocation; //!< Constant added to all non-negative OMM indices in \p opacityMicromapIndexBuffer. + D3D12_GPU_VIRTUAL_ADDRESS opacityMicromapArray; //!< Pointer to an OMM Array used by this geometry; it may be set to \c NULL if no non-uniform OMMs are used. + //!< Unlike vertex, index, and transform buffers, this resource is dereferenced during raytracing. + + NvU32 numOMMUsageCounts; //!< Number of OMM usage count entries in the \p pOMMUsageCounts array. + const NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_USAGE_COUNT* pOMMUsageCounts; //!< Usage counts for each subdivision level and format combination across all the OMM entries referred-to by the OMM index buffer specified by this geometry. + +} NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC; + +//! Geometry triangle descriptor with attached augmented Opacity Micromaps. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC +{ + D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC triangles; //!< Triangle mesh descriptor. + NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_ATTACHMENT_DESC ommAttachment; //!< Opacity Micromap attachment descriptor. +} NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC; + +//! This structure extends \c D3D12_RAYTRACING_GEOMETRY_DESC by supporting additional geometry types. +//! Only new members are fully described below; for more information on the other members, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX +{ + NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_EX type; //!< The type of geometry stored in the union of this structure. + D3D12_RAYTRACING_GEOMETRY_FLAGS flags; //!< Flags affecting how this geometry is processed by the raytracing pipeline. + union + { + D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC triangles; //!< Describes triangle geometry if \c type is #NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES_EX. + //!< Otherwise, this parameter is unused (space repurposed in a union). + D3D12_RAYTRACING_GEOMETRY_AABBS_DESC aabbs; //!< Describes AABB geometry if \c type is #NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS_EX. + //!< Otherwise, this parameter is unused (space repurposed in a union). + NVAPI_D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC ommTriangles; //!< Describes triangle geometry which may optionally use Opacity Micromaps, if \c type is #NVAPI_D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES_EX. + //!< Otherwise, this parameter is unused (space repurposed in a union). + }; +} NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX; + +//! This enum extends \c D3D12_RAYTRACING_INSTANCE_FLAGS with additional values. +//! Only new values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX +{ + // D3D12_RAYTRACING_INSTANCE_FLAGS flags + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_NONE_EX = 0x0, //!< No options specified for this instance. + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE_EX = NV_BIT(0), //!< Disable triangle culling for this instance. + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE_EX = NV_BIT(1), //!< Use counter-clockwise winding for defining front faces, instead of the default of clockwise winding. + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE_EX = NV_BIT(2), //!< Force all geometries in this instance to be opaque. + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE_EX = NV_BIT(3), //!< All geometries in this instance will be processed as if they never had the \c D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE flag applied to them. + + // NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX specific flags + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE_EX = NV_BIT(4), //!< Ignore the Unknown state and only consider the Transparent/Opaque bit for all 4-state OMMs encountered during traversal. + //!< This flag has no effect if #NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX is set. + NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX = NV_BIT(5) //!< Disable OMMs for all triangles, and revert to using geometry opaque/non-opaque state instead (legacy behavior). + //!< This flag is only valid if the referenced BLAS was built with the #NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS_EX flag; omitting that flag during BLAS build will result in undefined behavior. +} NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX; + +//! This structure extends \c D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS by supporting additional geometry types. +//! Only modified members are fully described below; for more information on the other members, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX +{ + D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE type; //!< Whether a top-level acceleration structure (TLAS) or bottom-level acceleration structure (BLAS) will be built using this information. + NVAPI_D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS_EX flags; //!< Options influencing how the acceleration structure is built and which of its features can be used. + NvU32 numDescs; //!< If \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, it represents the number of descriptions stored in \c instanceDescs. + //!< Otherwise, it contains the number of geometry descriptions stored in \c pGeometryDescs or \c ppGeometryDescs. + D3D12_ELEMENTS_LAYOUT descsLayout; //!< If \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL, it specifies which of \c pGeometryDescs and \c ppGeometryDescs to use. + //!< Otherwise, this parameter is unused. + NvU32 geometryDescStrideInBytes; //!< Stride between consecutive geometry descriptors. Should typically be set to sizeof(NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX). + //!< Only used if \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL and \c descLayout is \c D3D12_ELEMENTS_LAYOUT_ARRAY. + //!< This field guarantees backwards compatibility, even if the geometry descriptor size increases in future NVAPI versions. + union + { + D3D12_GPU_VIRTUAL_ADDRESS instanceDescs; //!< If \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TOP_LEVEL, the referenced instance structures can used the extended set of flags #NVAPI_D3D12_RAYTRACING_INSTANCE_FLAGS_EX in place of the \c D3D12_RAYTRACING_INSTANCE_FLAGS mentioned in \c D3D12_RAYTRACING_INSTANCE_DESC. + //!< Otherwise, this parameter is unused (space repurposed in a union). + const NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX* pGeometryDescs; //!< If \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL and \c descLayout is \c D3D12_ELEMENTS_LAYOUT_ARRAY, it contains the descriptions of all geometries to be built into a BLAS. + //!< Otherwise, this parameter is unused (space repurposed in a union). + const NVAPI_D3D12_RAYTRACING_GEOMETRY_DESC_EX*const* ppGeometryDescs; //!< If \c type is \c D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BOTTOM_LEVEL and \c descLayout is \c D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS, it contains the addresses of descriptions for all geometries to be built into a BLAS. + //!< Otherwise, this parameter is unused (space repurposed in a union). + }; +} NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX; + +//! Parameters given to NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx(). +//! +//! \ingroup dx +typedef struct _NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_VER. + const NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX* pDesc; //!< [in] Description of the acceleration-structure build. + D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO* pInfo; //!< [out] Result of the query. +} NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1; +#define NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1, 1) +typedef NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_V1 NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS; +#define NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_VER NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx +// +//! DESCRIPTION: This function is an extension of ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo() with additional input types. +//! +//! \note Only supported on GPUs capable of DXR. +//! Some of the flags and fields have further restrictions, in which case their description will include a note with more details. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pDevice Device on which the acceleration structure will be built. +//! \param [in,out] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx( + __in ID3D12Device5* pDevice, + __inout NVAPI_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_EX_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12Device5_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +//! Description of the inputs and memory areas used during the building of OMM Arrays. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC +{ + D3D12_GPU_VIRTUAL_ADDRESS destOpacityMicromapArrayData; //!< Output location for the OMM Array build. + //!< NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo() reports the amount of memory required for the result given a set of input parameters. + //!< The address must be aligned to 256 bytes (#NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT). + NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_INPUTS inputs; //!< Description of the input data for the OMM Array build. + D3D12_GPU_VIRTUAL_ADDRESS scratchOpacityMicromapArrayData; //!< Location where the build will store temporary data. + //!< NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo() reports the amount of scratch memory the implementation will need for a given set of input parameters. + //!< The address must be aligned to 256 bytes (#NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT). + //!< Contents of this memory going into a build on the GPU timeline are irrelevant and will not be preserved. + //!< After the build is complete on the GPU timeline, the memory is left with whatever undefined contents the build finished with. + //!< The memory pointed to must be in state \c D3D12_RESOURCE_STATE_UNORDERED_ACCESS. +} NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC; + +//! Structure emitted by NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo(), and optionally NvAPI_D3D12_BuildRaytracingOpacityMicromapArray(), when \c type equals #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC +{ + NvU64 currentSizeInBytes; //!< Size of the OMM Array buffer. + //!< The queried size may be smaller than the size reported by NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo(). + //!< This allows the application to move and relocate the OMM Array to a smaller buffer to reclaim any unused memory after the OMM Array build is complete. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC; + +//! Type of postbuild info to emit after an OMM Array build. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0x0 //!< Size of the current OMM Array. May be smaller than reported by the NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo() call. + //!< Unused memory can be reclaimed by copying the OMM Array into a new resource; see #NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE; + +//! Description of the postbuild information to generate from an OMM Array. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC +{ + D3D12_GPU_VIRTUAL_ADDRESS destBuffer; //!< Result storage. + //!< Size required and the layout of the contents written by the system depend on \p infoType. + //!< The memory pointed to must be in state \c D3D12_RESOURCE_STATE_UNORDERED_ACCESS. + //!< The memory must be aligned to the natural alignment for the members of the particular output structure being generated (e.g. 8 bytes for a struct with the largest member being \c NvU64). + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE infoType; //!< Type of postbuild information to retrieve. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC; + +//! Parameters given to NvAPI_D3D12_BuildRaytracingOpacityMicromapArray(). +//! +//! \ingroup dx +typedef struct _NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER. + const NVAPI_D3D12_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC* pDesc; //!< [in] Description of the OMM Array build. + NvU32 numPostbuildInfoDescs; //!< [in] Size of postbuild info desc array. Set to 0 if none are needed. + const NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC* pPostbuildInfoDescs; //!< [in] Optional array of descriptions for postbuild info to generate describing properties of the acceleration structure that was built. + //!< [in] Any given postbuild info type, \c D3D12_RAYTRACING_ACCEELRATION_STRUCTURE_POSTBUILD_INFO_TYPE, can only be selected for output by at most one array entry. +} NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1; +#define NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1, 1) +typedef NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS; +#define NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_BuildRaytracingOpacityMicromapArray +// +//! DESCRIPTION: Construct OMM Array for a collection of OMMs on the GPU. +//! The CPU-side input buffers are not referenced after this call. +//! The GPU-side input resources are not referenced after the build has concluded after ExecuteCommandList(). +//! Additionally, the application may optionally output postbuild information immediately after the build. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pCommandList Command list on which the command will execute. +//! \param [in] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \retval NVAPI_INVALID_COMBINATION pParams->pPostbuildInfoDescs was set to \c NULL while pParams->numPostbuildInfoDescs is non zero. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingOpacityMicromapArray( + __in ID3D12GraphicsCommandList4* pCommandList, + __in NVAPI_BUILD_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +//! Parameters given to NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray(). +//! +//! \ingroup dx +typedef struct _NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER. + D3D12_GPU_VIRTUAL_ADDRESS opacityMicromapArray; //!< [in] OMM Array current memory address; it must be 256-byte aligned (#NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT). +} NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1; +#define NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1, 1) +typedef NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_V1 NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS; +#define NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray +// +//! DESCRIPTION: Makes the OMM Array usable at its current location in memory. +//! An OMM Array that has been copied to a new location must be relocated using this function before it may be attached to any BLAS. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pCommandList Command list on which the command will execute. +//! \param [in] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray( + __in ID3D12GraphicsCommandList4* pCommandList, + __in const NVAPI_RELOCATE_RAYTRACING_OPACITY_MICROMAP_ARRAY_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +//! Parameters given to NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo(). +//! +//! \ingroup dx +typedef struct _NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_VER. + const NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC* pDesc; //!< [in] Description of which postbuild info to emit. + NvU32 numSources; //!< [in] Number of OMM Arrays in \p pSources. + const D3D12_GPU_VIRTUAL_ADDRESS* pSources; //!< [in] List of OMM Arrays for which postbuild info should be emitted. +} NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1; +#define NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1, 1) +typedef NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_V1 NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS; +#define NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_VER NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo +// +//! DESCRIPTION: Emits information about one or more OMM Arrays, only available after the OMM Array constructions have finished. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pCommandList Command list on which the command will execute. +//! \param [in] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo( + __in ID3D12GraphicsCommandList4* pCommandList, + __in const NVAPI_EMIT_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +//! This structure extends \c D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC by supporting additional geometry types as inputs. +//! For more information on the different members, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef struct _NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX +{ + D3D12_GPU_VIRTUAL_ADDRESS destAccelerationStructureData; //!< Memory where the resulting acceleration structure will be stored. + NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_EX inputs; //!< The inputs to the build process. + D3D12_GPU_VIRTUAL_ADDRESS sourceAccelerationStructureData; //!< The acceleration structure to be updated. + //!< Otherwise if the acceleration structure should be rebuilt entirely, this value must be \c NULL. + D3D12_GPU_VIRTUAL_ADDRESS scratchAccelerationStructureData; //!< Memory that will be temporarily used during the building process. +} NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX; + +//! Parameters given to NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray(). +//! +//! \ingroup dx +typedef struct _NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1 +{ + NvU32 version; //!< [in] Structure version; it should be set to #NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_VER. + const NVAPI_D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC_EX* pDesc; //!< [in] Description of the acceleration structure to build. + NvU32 numPostbuildInfoDescs; //!< [in] Size of postbuild info desc array. Set to 0 if none are needed. + const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs; //!< [in] Optional array of descriptions for postbuild info to generate describing properties of the acceleration structure that was built. + //!< Any given postbuild info type, \c D3D12_RAYTRACING_ACCEELRATION_STRUCTURE_POSTBUILD_INFO_TYPE, can only be selected for output by at most one array entry. +} NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1; +#define NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_VER1 MAKE_NVAPI_VERSION(NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1, 1) +typedef NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_V1 NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS; +#define NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_VER NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS_VER1 + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_D3D12_BuildRaytracingAccelerationStructureEx +// +//! DESCRIPTION: Perform an acceleration structure build on the GPU. +//! Also optionally output postbuild information immediately after the build. +//! This function is an extension of ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure() with additional serialized data types. +//! +//! \note Only supported on GPUs capable of DXR. +//! Some of the flags and fields have further restrictions, in which case their description will include a note with more details. +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! \since Release: 520 +//! +//! \param [in] pCommandList Command list on which the command will execute. +//! \param [in] pParams Wrapper around the inputs and outputs of the function. +//! +//! \return This API can return any of the error codes enumerated in #NvAPI_Status. +//! If there are return error codes with specific meaning for this API, they are listed below. +//! +//! \retval NVAPI_INVALID_COMBINATION pParams->pPostbuildInfoDescs was set to \c NULL while pParams->numPostbuildInfoDescs is non zero. +//! +//! \ingroup dx +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_D3D12_BuildRaytracingAccelerationStructureEx( + __in ID3D12GraphicsCommandList4* pCommandList, + __in const NVAPI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_EX_PARAMS* pParams); + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +#if defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + +/////////////////////////////////////////////////////////////////////////////// +// +// Miscellaneous +// +/////////////////////////////////////////////////////////////////////////////// + +//! Opacity Micromap micro-triangle states. +//! Not part of any input, but listed here for convenience. +//! +//! \ingroup dx +typedef enum _NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE +{ + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0, //!< Transparent OMM state: hit is ignored. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1, //!< Opaque OMM state: hit is committed. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2, //!< Unknown-transparent OMM state. + //!< * If operating in 2-state mode, ignore hit. + //!< * If operating in 4-state mode, invoke any-hit shader. + NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3 //!< Unknown-opaque OMM state. + //!< * If operating in 2-state mode, commit hit. + //!< * If operating in 4-state mode, invoke any-hit shader. +} NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_STATE; + +//! Mandatory alignment for the address of an OMM Array. +//! +//! \ingroup dx +#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT 256 + +//! Highest subdivision-level allowed with OC1. +//! +//! \ingroup dx +#define NVAPI_D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL 12 + +//! A list of flags that can be given to the \c TraceRay() function in HLSL. +//! Only new or modified values are fully described below; for more information on the other values, please check Microsoft's DirectX Raytracing Specification. +//! +//! \ingroup dx +typedef enum _NVAPI_RAY_FLAGS_EX +{ + // RAY_FLAGS flags + NVAPI_RAY_FLAG_NONE_EX = 0x0, //!< No flag specified. + NVAPI_RAY_FLAG_FORCE_OPAQUE_EX = NV_BIT( 0), //!< Consider all intersected geometries to be opaque, regardless of the flags specified at the geometry and instance level. + NVAPI_RAY_FLAG_FORCE_NON_OPAQUE_EX = NV_BIT( 1), //!< Consider all intersected geometries to be non-opaque, regardless of the flags specified at the geometry and instance level. + NVAPI_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH_EX = NV_BIT( 2), //!< End the traversal as soon as a geometry is hit, and that hit is not ignored by the any hit shader. + NVAPI_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER_EX = NV_BIT( 3), //!< Do not invoke the closest hit shader once the traversal ends. + NVAPI_RAY_FLAG_CULL_BACK_FACING_TRIANGLES_EX = NV_BIT( 4), //!< Never intersect triangle geometries that are back facing with regard to the ray. + NVAPI_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES_EX = NV_BIT( 5), //!< Never intersect triangle geometries that are front facing with regard to the ray. + NVAPI_RAY_FLAG_CULL_OPAQUE_EX = NV_BIT( 6), //!< Never intersect geometries that were flagged as opaque. + NVAPI_RAY_FLAG_CULL_NON_OPAQUE_EX = NV_BIT( 7), //!< Never intersect geometries that were not flagged as opaque. + NVAPI_RAY_FLAG_SKIP_TRIANGLES_EX = NV_BIT( 8), //!< Never intersect triangle geometries. + NVAPI_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES_EX = NV_BIT( 9), //!< Never intersect AABB geometries. + + // NVAPI_RAY_FLAGS_EX specific flags + NVAPI_RAY_FLAG_FORCE_OMM_2_STATE_EX = NV_BIT(10), //!< Treat unknown-opaque and unknown-transparent as opaque and transparent, respectively, during traversal. + //!< If an instance is flagged with #NVAPI_D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS_EX, that takes precedence over this flag. +} NVAPI_RAY_FLAG_EX; + +#endif // defined(__cplusplus) && defined(__d3d12_h__) && defined(__ID3D12GraphicsCommandList4_INTERFACE_DEFINED__) + //! \ingroup vidio @@ -20244,9 +21485,32 @@ typedef struct _NV_DISPLAY_DRIVER_INFO NvU32 reserved : 27; //!< Reserved for future use. } NV_DISPLAY_DRIVER_INFO_V1; +typedef struct _NV_DISPLAY_DRIVER_INFO_V2 +{ + NvU32 version; //!< Structure Version. + NvU32 driverVersion; //!< Contains the driver version after successful return. + NvAPI_ShortString szBuildBranch; //!< Contains the driver-branch string after successful return. + NvU32 bIsDCHDriver : 1; //!< Contains the driver DCH status after successful return. + //!< Value of 1 means that this is DCH driver. + //!< Value of 0 means that this is not a DCH driver (NVAPI may be unable to query the DCH status of the driver due to some registry API errors, in that case the API will return with NVAPI_ERROR) + NvU32 bIsNVIDIAStudioPackage : 1; //!< On successful return, this field provides information about whether the installed driver is from an NVIDIA Studio Driver package. + //!< Value of 1 means that this driver is from the NVIDIA Studio Driver package. + NvU32 bIsNVIDIAGameReadyPackage : 1; //!< On successful return, this field provides information about whether the installed driver is from an NVIDIA Game Ready Driver package. + //!< Value of 1 means that this driver is from the NVIDIA Game Ready Driver package. + NvU32 bIsNVIDIARTXProductionBranchPackage : 1; //!< On successful return, this field confirms whether the installed driver package is from an NVIDIA RTX Enterprise Production Branch which offers ISV certifications, long life-cycle support, regular security updates, and access to the same functionality as corresponding NVIDIA Studio Driver Packages (i.e., of the same driver version number). + //!< Value of 1 means that this driver is from the NVIDIA RTX Enterprise Production Branch package. + NvU32 bIsNVIDIARTXNewFeatureBranchPackage : 1; //!< On successful return, this field confirms whether the installed driver package is from an NVIDIA RTX New Feature Branch. + //!< This driver typically gives access to new features, bug fixes, new operating system support, and other driver enhancements offered between NVIDIA RTX Enterprise Production Branch releases. Support duration for NVIDIA RTX New Feature Branches is shorter than that for NVIDIA RTX Enterprise Production Branches. + //!< Value of 1 means that this driver is from the NVIDIA RTX New Feature Branch package. + NvU32 reserved : 27; //!< Reserved for future use. + NvAPI_ShortString szBuildBaseBranch; //!< (OUT) Contains the driver base branch string after successful return. + NvU32 reservedEx; //!< Reserved for future use +} NV_DISPLAY_DRIVER_INFO_V2; + #define NV_DISPLAY_DRIVER_INFO_VER1 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_INFO_V1, 1) -typedef NV_DISPLAY_DRIVER_INFO_V1 NV_DISPLAY_DRIVER_INFO; -#define NV_DISPLAY_DRIVER_INFO_VER NV_DISPLAY_DRIVER_INFO_VER1 +#define NV_DISPLAY_DRIVER_INFO_VER2 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_INFO_V2, 2) +typedef NV_DISPLAY_DRIVER_INFO_V2 NV_DISPLAY_DRIVER_INFO; +#define NV_DISPLAY_DRIVER_INFO_VER NV_DISPLAY_DRIVER_INFO_VER2 /////////////////////////////////////////////////////////////////////////////// // diff --git a/vendor/nvapi/nvapi_lite_common.h b/vendor/nvapi/nvapi_lite_common.h index 7af056bda0..21263566c1 100644 --- a/vendor/nvapi/nvapi_lite_common.h +++ b/vendor/nvapi/nvapi_lite_common.h @@ -88,6 +88,7 @@ typedef unsigned short NvU16; typedef unsigned char NvU8; typedef signed char NvS8; typedef float NvF32; +typedef double NvF64; /*! * Macro to convert NvU32 to NvF32. @@ -140,6 +141,7 @@ NV_DECLARE_HANDLE(NvAudioHandle); //!< NVIDIA HD Audio Device NV_DECLARE_HANDLE(Nv3DVPContextHandle); //!< A handle for a 3D Vision Pro (3DVP) context NV_DECLARE_HANDLE(Nv3DVPTransceiverHandle); //!< A handle for a 3DVP RF transceiver NV_DECLARE_HANDLE(Nv3DVPGlassesHandle); //!< A handle for a pair of 3DVP RF shutter glasses +NV_DECLARE_HANDLE(NvPcfClientHandle); //!< A handle for NVPCF clients typedef void* StereoHandle; //!< A stereo handle, that corresponds to the device interface @@ -396,6 +398,17 @@ typedef enum _NvAPI_Status NVAPI_NO_VULKAN = -229, //!< OpenGL does not export Vulkan fake extensions NVAPI_REQUEST_PENDING = -230, //!< A request for NvTOPPs telemetry CData has already been made and is pending a response. NVAPI_RESOURCE_IN_USE = -231, //!< Operation cannot be performed because the resource is in use. + NVAPI_INVALID_IMAGE = -232, //!< Device kernel image is invalid + NVAPI_INVALID_PTX = -233, //!< PTX JIT compilation failed + NVAPI_NVLINK_UNCORRECTABLE = -234, //!< Uncorrectable NVLink error was detected during the execution + NVAPI_JIT_COMPILER_NOT_FOUND = -235, //!< PTX JIT compiler library was not found. + NVAPI_INVALID_SOURCE = -236, //!< Device kernel source is invalid. + NVAPI_ILLEGAL_INSTRUCTION = -237, //!< While executing a kernel, the device encountered an illegal instruction. + NVAPI_INVALID_PC = -238, //!< While executing a kernel, the device program counter wrapped its address space + NVAPI_LAUNCH_FAILED = -239, //!< An exception occurred on the device while executing a kernel + NVAPI_NOT_PERMITTED = -240, //!< Attempted operation is not permitted. + NVAPI_CALLBACK_ALREADY_REGISTERED = -241, //!< The callback function has already been registered. + NVAPI_CALLBACK_NOT_FOUND = -242, //!< The callback function is not found or not registered. } NvAPI_Status; /////////////////////////////////////////////////////////////////////////////// @@ -487,6 +500,7 @@ typedef NV_DISPLAY_DRIVER_MEMORY_INFO_V3 NV_DISPLAY_DRIVER_MEMORY_INFO; //! DESCRIPTION: This function retrieves the available driver memory footprint for the specified GPU. //! If the GPU is in TCC Mode, only dedicatedVideoMemory will be returned in pMemoryInfo (NV_DISPLAY_DRIVER_MEMORY_INFO). //! +//! \deprecated Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetMemoryInfoEx. //! SUPPORTED OS: Windows 7 and higher //! //! @@ -504,7 +518,64 @@ typedef NV_DISPLAY_DRIVER_MEMORY_INFO_V3 NV_DISPLAY_DRIVER_MEMORY_INFO; //! //! \ingroup driverapi /////////////////////////////////////////////////////////////////////////////// +__nvapi_deprecated_function("Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetMemoryInfoEx.") NVAPI_INTERFACE NvAPI_GPU_GetMemoryInfo(NvPhysicalGpuHandle hPhysicalGpu, NV_DISPLAY_DRIVER_MEMORY_INFO *pMemoryInfo); + + +//! \ingroup driverapi +//! Used in NvAPI_GPU_GetMemoryInfoEx(). +typedef struct +{ + NvU32 version; //!< Structure version + NvU64 dedicatedVideoMemory; //!< Size(in bytes) of the physical framebuffer. + NvU64 availableDedicatedVideoMemory; //!< Size(in bytes) of the available physical framebuffer for allocating video memory surfaces. + NvU64 systemVideoMemory; //!< Size(in bytes) of system memory the driver allocates at load time. + NvU64 sharedSystemMemory; //!< Size(in bytes) of shared system memory that driver is allowed to commit for surfaces across all allocations. + NvU64 curAvailableDedicatedVideoMemory; //!< Size(in bytes) of the current available physical framebuffer for allocating video memory surfaces. + NvU64 dedicatedVideoMemoryEvictionsSize; //!< Size(in bytes) of the total size of memory released as a result of the evictions. + NvU64 dedicatedVideoMemoryEvictionCount; //!< Indicates the number of eviction events that caused an allocation to be removed from dedicated video memory to free GPU + //!< video memory to make room for other allocations. + NvU64 dedicatedVideoMemoryPromotionsSize; //!< Size(in bytes) of the total size of memory allocated as a result of the promotions. + NvU64 dedicatedVideoMemoryPromotionCount; //!< Indicates the number of promotion events that caused an allocation to be promoted to dedicated video memory +} NV_GPU_MEMORY_INFO_EX_V1; + +//! \ingroup driverapi +typedef NV_GPU_MEMORY_INFO_EX_V1 NV_GPU_MEMORY_INFO_EX; + +//! \ingroup driverapi +//! Macro for constructing the version field of NV_GPU_MEMORY_INFO_EX_V1 +#define NV_GPU_MEMORY_INFO_EX_VER_1 MAKE_NVAPI_VERSION(NV_GPU_MEMORY_INFO_EX_V1,1) + +//! \ingroup driverapi +#define NV_GPU_MEMORY_INFO_EX_VER NV_GPU_MEMORY_INFO_EX_VER_1 + + + +/////////////////////////////////////////////////////////////////////////////// +// +// FUNCTION NAME: NvAPI_GPU_GetMemoryInfoEx +// +//! DESCRIPTION: This function retrieves the available driver memory footprint for the specified GPU. +//! If the GPU is in TCC Mode, only dedicatedVideoMemory will be returned in pMemoryInfo (NV_GPU_MEMORY_INFO_EX). +//! +//! SUPPORTED OS: Windows 10 and higher +//! +//! +//! TCC_SUPPORTED +//! +//! \since Release: 520 +//! +//! \param [in] hPhysicalGpu Handle of the physical GPU for which the memory information is to be extracted. +//! \param [out] pMemoryInfo The memory footprint available in the driver. See NV_GPU_MEMORY_INFO_EX. +//! +//! \retval NVAPI_INVALID_ARGUMENT pMemoryInfo is NULL. +//! \retval NVAPI_OK Call successful. +//! \retval NVAPI_NVIDIA_DEVICE_NOT_FOUND No NVIDIA GPU driving a display was found. +//! \retval NVAPI_INCOMPATIBLE_STRUCT_VERSION NV_GPU_MEMORY_INFO_EX structure version mismatch. +//! +//! \ingroup driverapi +/////////////////////////////////////////////////////////////////////////////// +NVAPI_INTERFACE NvAPI_GPU_GetMemoryInfoEx(NvPhysicalGpuHandle hPhysicalGpu, NV_GPU_MEMORY_INFO_EX *pMemoryInfo); /////////////////////////////////////////////////////////////////////////////// // // FUNCTION NAME: NvAPI_EnumPhysicalGPUs diff --git a/vendor/nvapi/x86/nvapi.lib b/vendor/nvapi/x86/nvapi.lib index e6ebdf106c842aacc21f34ccf94bac32b8dba088..d0e4c62874684f80295f6c91597c4a5e4b75ce4c 100644 GIT binary patch literal 394740 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∓k7hzRPj{7~$O8V)gPpxOUw-D|VvZ<#2S)WYtw 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 uqb3ySyBuL0hnAV~SQf{$7%c?K$QSd