Skip to content

Commit

Permalink
Update nvapi to r550
Browse files Browse the repository at this point in the history
  • Loading branch information
Dutchman101 committed Jun 21, 2024
1 parent 2e50c6c commit 7830635
Show file tree
Hide file tree
Showing 9 changed files with 1,343 additions and 36 deletions.
36 changes: 28 additions & 8 deletions vendor/nvapi/NvApiDriverSettings.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,6 @@ EValues_OGL_SINGLE_BACKDEPTH_BUFFER g_valuesOGL_SINGLE_BACKDEPTH_BUFFER[OGL_SING
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,
Expand Down Expand Up @@ -775,6 +768,30 @@ EValues_PS_SHADERDISKCACHE g_valuesPS_SHADERDISKCACHE[PS_SHADERDISKCACHE_NUM_VAL
PS_SHADERDISKCACHE_ON,
};

EValues_PS_SHADERDISKCACHE_FLAGS g_valuesPS_SHADERDISKCACHE_FLAGS[PS_SHADERDISKCACHE_FLAGS_NUM_VALUES] =
{
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEFAULT_COMPILES,
PS_SHADERDISKCACHE_FLAGS_DISABLE_OPTIONAL_COMPILES,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DRIVER_VERSIONING,
PS_SHADERDISKCACHE_FLAGS_DUMP_HISTOGRAM,
PS_SHADERDISKCACHE_FLAGS_DUMP_TIMELINE,
PS_SHADERDISKCACHE_FLAGS_DISABLE_GARBAGE_COLLECTION,
PS_SHADERDISKCACHE_FLAGS_ENABLE_ENCRYPTION,
PS_SHADERDISKCACHE_FLAGS_DISABLE_CRC,
PS_SHADERDISKCACHE_FLAGS_ENABLE_STATS_FILES,
PS_SHADERDISKCACHE_FLAGS_DISABLE_STATS_RESET,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEBUG_FORCED_COMPILE,
PS_SHADERDISKCACHE_FLAGS_NO_COMPRESSION,
PS_SHADERDISKCACHE_FLAGS_RLE_COMPRESSION,
PS_SHADERDISKCACHE_FLAGS_LZMA_COMPRESSION,
PS_SHADERDISKCACHE_FLAGS_BACKEND_MEM_MAP_FILES,
PS_SHADERDISKCACHE_FLAGS_BACKEND_DLL,
PS_SHADERDISKCACHE_FLAGS_FLOOD_CACHE_DIRECTORY,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEDUPLICATION,
PS_SHADERDISKCACHE_FLAGS_DELETE_PERFECT_CACHES,
PS_SHADERDISKCACHE_FLAGS_ALL_BUILDS_MISMATCH_TEST,
};

EValues_PS_SHADERDISKCACHE_MAX_SIZE g_valuesPS_SHADERDISKCACHE_MAX_SIZE[PS_SHADERDISKCACHE_MAX_SIZE_NUM_VALUES] =
{
PS_SHADERDISKCACHE_MAX_SIZE_MIN,
Expand Down Expand Up @@ -878,7 +895,6 @@ SettingDWORDNameString mapSettingDWORD[TOTAL_DWORD_SETTING_NUM] =
{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},
Expand All @@ -895,6 +911,8 @@ SettingDWORDNameString mapSettingDWORD[TOTAL_DWORD_SETTING_NUM] =
{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},
{APPIDLE_DYNAMIC_FRL_FPS_ID, APPIDLE_DYNAMIC_FRL_FPS_STRING, 0, NULL, 0x00000000},
{APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_ID, APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_STRING, 0, NULL, 0x00000000},
{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},
Expand Down Expand Up @@ -946,6 +964,7 @@ SettingDWORDNameString mapSettingDWORD[TOTAL_DWORD_SETTING_NUM] =
{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_FLAGS_ID, PS_SHADERDISKCACHE_FLAGS_STRING, 20, (NvU32 *)g_valuesPS_SHADERDISKCACHE_FLAGS, 0x00000000},
{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},
Expand All @@ -966,5 +985,6 @@ SettingWSTRINGNameString mapSettingWSTRING[TOTAL_WSTRING_SETTING_NUM] =
{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""},
{PS_SHADERDISKCACHE_DLL_PATH_WCHAR_ID, PS_SHADERDISKCACHE_DLL_PATH_WCHAR_STRING, 0, NULL, L""},
};

49 changes: 36 additions & 13 deletions vendor/nvapi/NvApiDriverSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
#define OGL_OVERLAY_SUPPORT_STRING L"Enable overlay"
#define OGL_QUALITY_ENHANCEMENTS_STRING L"High level control of the rendering quality on OpenGL"
#define OGL_SINGLE_BACKDEPTH_BUFFER_STRING L"Unified back/depth buffer"
#define OGL_SLI_CFR_MODE_STRING L"Set CFR mode"
#define OGL_SLI_MULTICAST_STRING L"Enable NV_gpu_multicast extension"
#define OGL_THREAD_CONTROL_STRING L"Threaded optimization"
#define OGL_TMON_LEVEL_STRING L"Event Log Tmon Severity Threshold"
Expand All @@ -74,6 +73,8 @@
#define ANSEL_ALLOW_STRING L"NVIDIA Predefined Ansel Usage"
#define ANSEL_ALLOWLISTED_STRING L"Ansel flags for enabled applications"
#define ANSEL_ENABLE_STRING L"Enable Ansel"
#define APPIDLE_DYNAMIC_FRL_FPS_STRING L"Idle Application Max FPS Limit"
#define APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_STRING L"Idle Application Threshold Time out in seconds"
#define APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_STRING L"Application Profile Notification Popup Timeout"
#define APPLICATION_STEAM_ID_STRING L"Steam Application ID"
#define BATTERY_BOOST_APP_FPS_STRING L"Battery Boost Application FPS"
Expand Down Expand Up @@ -128,6 +129,8 @@
#define MAXWELL_B_SAMPLE_INTERLEAVE_STRING L"Enable sample interleaving (MFAA)"
#define PRERENDERLIMIT_STRING L"Maximum pre-rendered frames"
#define PS_SHADERDISKCACHE_STRING L"Shader Cache"
#define PS_SHADERDISKCACHE_DLL_PATH_WCHAR_STRING L"shader cache path to dll"
#define PS_SHADERDISKCACHE_FLAGS_STRING L"shader cache control flags"
#define PS_SHADERDISKCACHE_MAX_SIZE_STRING L"Shader disk cache maximum size"
#define PS_TEXFILTER_ANISO_OPTS2_STRING L"Texture filtering - Anisotropic sample optimization"
#define PS_TEXFILTER_BILINEAR_IN_ANISO_STRING L"Texture filtering - Anisotropic filter optimization"
Expand Down Expand Up @@ -159,7 +162,6 @@ enum ESetting {
OGL_OVERLAY_SUPPORT_ID = 0x206C28C4,
OGL_QUALITY_ENHANCEMENTS_ID = 0x20797D6C,
OGL_SINGLE_BACKDEPTH_BUFFER_ID = 0x20A29055,
OGL_SLI_CFR_MODE_ID = 0x20343843,
OGL_SLI_MULTICAST_ID = 0x2092D3BE,
OGL_THREAD_CONTROL_ID = 0x20C1221E,
OGL_TMON_LEVEL_ID = 0x202888C1,
Expand All @@ -176,6 +178,8 @@ enum ESetting {
ANSEL_ALLOW_ID = 0x1035DB89,
ANSEL_ALLOWLISTED_ID = 0x1085DA8A,
ANSEL_ENABLE_ID = 0x1075D972,
APPIDLE_DYNAMIC_FRL_FPS_ID = 0x10835016,
APPIDLE_DYNAMIC_FRL_THRESHOLD_TIME_ID = 0x10835017,
APPLICATION_PROFILE_NOTIFICATION_TIMEOUT_ID = 0x104554B6,
APPLICATION_STEAM_ID_ID = 0x107CDDBC,
BATTERY_BOOST_APP_FPS_ID = 0x10115C8C,
Expand Down Expand Up @@ -230,6 +234,8 @@ enum ESetting {
MAXWELL_B_SAMPLE_INTERLEAVE_ID = 0x0098C1AC,
PRERENDERLIMIT_ID = 0x007BA09E,
PS_SHADERDISKCACHE_ID = 0x00198FFF,
PS_SHADERDISKCACHE_DLL_PATH_WCHAR_ID = 0x0019A002,
PS_SHADERDISKCACHE_FLAGS_ID = 0x00F4889B,
PS_SHADERDISKCACHE_MAX_SIZE_ID = 0x00AC8497,
PS_TEXFILTER_ANISO_OPTS2_ID = 0x00E73211,
PS_TEXFILTER_BILINEAR_IN_ANISO_ID = 0x0084CD70,
Expand All @@ -242,9 +248,9 @@ enum ESetting {
SET_VAB_DATA_ID = 0x00AB8687,
VSYNCMODE_ID = 0x00A879CF,
VSYNCTEARCONTROL_ID = 0x005A375C,
TOTAL_DWORD_SETTING_NUM = 96,
TOTAL_WSTRING_SETTING_NUM = 4,
TOTAL_SETTING_NUM = 100,
TOTAL_DWORD_SETTING_NUM = 98,
TOTAL_WSTRING_SETTING_NUM = 5,
TOTAL_SETTING_NUM = 103,
INVALID_SETTING_ID = 0xFFFFFFFF
};

Expand Down Expand Up @@ -371,14 +377,6 @@ enum EValues_OGL_SINGLE_BACKDEPTH_BUFFER {
OGL_SINGLE_BACKDEPTH_BUFFER_DEFAULT = OGL_SINGLE_BACKDEPTH_BUFFER_DISABLE
};

enum EValues_OGL_SLI_CFR_MODE {
OGL_SLI_CFR_MODE_DISABLE = 0x00,
OGL_SLI_CFR_MODE_ENABLE = 0x01,
OGL_SLI_CFR_MODE_CLASSIC_SFR = 0x02,
OGL_SLI_CFR_MODE_NUM_VALUES = 3,
OGL_SLI_CFR_MODE_DEFAULT = OGL_SLI_CFR_MODE_DISABLE
};

enum EValues_OGL_SLI_MULTICAST {
OGL_SLI_MULTICAST_DISABLE = 0x00,
OGL_SLI_MULTICAST_ENABLE = 0x01,
Expand Down Expand Up @@ -1056,6 +1054,31 @@ enum EValues_PS_SHADERDISKCACHE {
PS_SHADERDISKCACHE_DEFAULT = PS_SHADERDISKCACHE_ON
};

enum EValues_PS_SHADERDISKCACHE_FLAGS {
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEFAULT_COMPILES = 0x00000001,
PS_SHADERDISKCACHE_FLAGS_DISABLE_OPTIONAL_COMPILES = 0x00000002,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DRIVER_VERSIONING = 0x00000008,
PS_SHADERDISKCACHE_FLAGS_DUMP_HISTOGRAM = 0x00000010,
PS_SHADERDISKCACHE_FLAGS_DUMP_TIMELINE = 0x00000020,
PS_SHADERDISKCACHE_FLAGS_DISABLE_GARBAGE_COLLECTION = 0x00000040,
PS_SHADERDISKCACHE_FLAGS_ENABLE_ENCRYPTION = 0x00000080,
PS_SHADERDISKCACHE_FLAGS_DISABLE_CRC = 0x00000100,
PS_SHADERDISKCACHE_FLAGS_ENABLE_STATS_FILES = 0x00000200,
PS_SHADERDISKCACHE_FLAGS_DISABLE_STATS_RESET = 0x00000400,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEBUG_FORCED_COMPILE = 0x00000800,
PS_SHADERDISKCACHE_FLAGS_NO_COMPRESSION = 0x00001000,
PS_SHADERDISKCACHE_FLAGS_RLE_COMPRESSION = 0x00002000,
PS_SHADERDISKCACHE_FLAGS_LZMA_COMPRESSION = 0x00004000,
PS_SHADERDISKCACHE_FLAGS_BACKEND_MEM_MAP_FILES = 0x00010000,
PS_SHADERDISKCACHE_FLAGS_BACKEND_DLL = 0x00020000,
PS_SHADERDISKCACHE_FLAGS_FLOOD_CACHE_DIRECTORY = 0x00100000,
PS_SHADERDISKCACHE_FLAGS_DISABLE_DEDUPLICATION = 0x00200000,
PS_SHADERDISKCACHE_FLAGS_DELETE_PERFECT_CACHES = 0x00400000,
PS_SHADERDISKCACHE_FLAGS_ALL_BUILDS_MISMATCH_TEST = 0x00800000,
PS_SHADERDISKCACHE_FLAGS_NUM_VALUES = 20,
PS_SHADERDISKCACHE_FLAGS_DEFAULT = 0x0
};

enum EValues_PS_SHADERDISKCACHE_MAX_SIZE {
PS_SHADERDISKCACHE_MAX_SIZE_MIN = 0x0,
PS_SHADERDISKCACHE_MAX_SIZE_MAX = 0xffffffff,
Expand Down
Binary file modified vendor/nvapi/amd64/nvapi64.lib
Binary file not shown.
117 changes: 117 additions & 0 deletions vendor/nvapi/nvHLSLExtns.h
Original file line number Diff line number Diff line change
Expand Up @@ -1625,6 +1625,123 @@ uint4 NvWaveMultiPrefixExclusiveXOr(uint4 val, uint mask)
return NvWaveMultiPrefixInclusiveXOr(val, mask);
}


//----------------------------------------------------------------------------//
//------------------------- DXR Micro-map Extension --------------------------//
//----------------------------------------------------------------------------//

float3x3 NvRtTriangleObjectPositions()
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_TRIANGLE_OBJECT_POSITIONS;

float3x3 ret;
ret[0][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[0][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[0][2] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][2] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][2] = asfloat(g_NvidiaExt.IncrementCounter());
return ret;
}

float3x3 NvRtMicroTriangleObjectPositions()
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_MICRO_TRIANGLE_OBJECT_POSITIONS;

float3x3 ret;
ret[0][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[0][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[0][2] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][2] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][2] = asfloat(g_NvidiaExt.IncrementCounter());
return ret;
}

float3x2 NvRtMicroTriangleBarycentrics()
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_MICRO_TRIANGLE_BARYCENTRICS;

float3x2 ret;
ret[0][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[0][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[1][1] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][0] = asfloat(g_NvidiaExt.IncrementCounter());
ret[2][1] = asfloat(g_NvidiaExt.IncrementCounter());
return ret;
}

bool NvRtIsMicroTriangleHit()
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_IS_MICRO_TRIANGLE_HIT;
uint ret = g_NvidiaExt.IncrementCounter();
return ret != 0;
}

bool NvRtIsBackFacing()
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_IS_BACK_FACING;
uint ret = g_NvidiaExt.IncrementCounter();
return ret != 0;
}

#if __SHADER_TARGET_MAJOR > 6 || (__SHADER_TARGET_MAJOR == 6 && __SHADER_TARGET_MINOR >= 5)

float3 NvRtMicroVertexObjectPosition(RaytracingAccelerationStructure AccelerationStructure, uint InstanceIndex, uint GeometryIndex, uint PrimitiveIndex, uint2 UV)
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_MICRO_VERTEX_OBJECT_POSITION;
g_NvidiaExt[index].src0u.x = InstanceIndex;
g_NvidiaExt[index].src0u.y = GeometryIndex;
g_NvidiaExt[index].src0u.z = PrimitiveIndex;
g_NvidiaExt[index].src0u.w = UV.x;
g_NvidiaExt[index].src1u.x = UV.y;
uint handle = g_NvidiaExt.IncrementCounter();
float3 ret;
ret.x = asfloat(g_NvidiaExt.IncrementCounter());
ret.y = asfloat(g_NvidiaExt.IncrementCounter());
ret.z = asfloat(g_NvidiaExt.IncrementCounter());

RayQuery<0> rq;
rq.TraceRayInline(AccelerationStructure, 0, handle, (RayDesc)0);

return ret;
}

float2 NvRtMicroVertexBarycentrics(RaytracingAccelerationStructure AccelerationStructure, uint InstanceIndex, uint GeometryIndex, uint PrimitiveIndex, uint2 UV)
{
uint index = g_NvidiaExt.IncrementCounter();
g_NvidiaExt[index].opcode = NV_EXTN_OP_RT_MICRO_VERTEX_BARYCENTRICS;
g_NvidiaExt[index].src0u.x = InstanceIndex;
g_NvidiaExt[index].src0u.y = GeometryIndex;
g_NvidiaExt[index].src0u.z = PrimitiveIndex;
g_NvidiaExt[index].src0u.w = UV.x;
g_NvidiaExt[index].src1u.x = UV.y;
uint handle = g_NvidiaExt.IncrementCounter();
float2 ret;
ret.x = asfloat(g_NvidiaExt.IncrementCounter());
ret.y = asfloat(g_NvidiaExt.IncrementCounter());

RayQuery<0> rq;
rq.TraceRayInline(AccelerationStructure, 0, handle, (RayDesc)0);

return ret;
}

#endif

//----------------------------------------------------------------------------//
//------------------------- DXR HitObject Extension --------------------------//
//----------------------------------------------------------------------------//
Expand Down
9 changes: 9 additions & 0 deletions vendor/nvapi/nvShaderExtnEnums.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,15 @@
#define NV_EXTN_OP_HIT_OBJECT_IS_NOP 84
#define NV_EXTN_OP_HIT_OBJECT_MAKE_NOP 85

// Micro-map API
#define NV_EXTN_OP_RT_TRIANGLE_OBJECT_POSITIONS 86
#define NV_EXTN_OP_RT_MICRO_TRIANGLE_OBJECT_POSITIONS 87
#define NV_EXTN_OP_RT_MICRO_TRIANGLE_BARYCENTRICS 88
#define NV_EXTN_OP_RT_IS_MICRO_TRIANGLE_HIT 89
#define NV_EXTN_OP_RT_IS_BACK_FACING 90
#define NV_EXTN_OP_RT_MICRO_VERTEX_OBJECT_POSITION 91
#define NV_EXTN_OP_RT_MICRO_VERTEX_BARYCENTRICS 92

//----------------------------------------------------------------------------//
//-------------------- GET_SPECIAL subOpCode constants -----------------------//
//----------------------------------------------------------------------------//
Expand Down
Loading

0 comments on commit 7830635

Please sign in to comment.