added nvparams dumping

and check for feature disposing
This commit is contained in:
cdozdil
2024-06-10 21:22:22 +03:00
parent a896942f78
commit a0ef38a677
5 changed files with 398 additions and 82 deletions
+301
View File
@@ -1,5 +1,306 @@
#pragma once
#include "pch.h"
#include <ankerl/unordered_dense.h>
inline static ankerl::unordered_dense::map<std::string, std::string> nvParamNames;
void PrepareLogger();
void CloseLogger();
inline static void FillNvParamNames()
{
if (nvParamNames.size() > 0)
return;
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved00","#\x00" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_SuperSampling_Available","#\x01" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_InPainting_Available","#\x02" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSuperResolution_Available","#\x03" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_SlowMotion_Available","#\x04" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_VideoSuperResolution_Available","#\x05" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved06","#\x06" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved07","#\x07" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved08","#\x08" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSignalProcessing_Available","#\x09" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSuperResolution_ScaleFactor_2_1","#\x0a" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSuperResolution_ScaleFactor_3_1","#\x0b" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSuperResolution_ScaleFactor_3_2","#\x0c" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ImageSuperResolution_ScaleFactor_4_3","#\x0d" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_NumFrames","#\x0e" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Scale","#\x0f" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Width","#\x10" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Height","#\x11" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_OutWidth","#\x12" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_OutHeight","#\x13" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Sharpness","#\x14" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Scratch","#\x15" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Scratch_SizeInBytes","#\x16" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_EvaluationNode","#\x17" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input1","#\x18" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input1_Format","#\x19" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input1_SizeInBytes","#\x1a" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input2","#\x1b" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input2_Format","#\x1c" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Input2_SizeInBytes","#\x1d" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Color","#\x1e" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Color_Format","#\x1f" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Color_SizeInBytes","#\x20" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Albedo","#\x21" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Output","#\x22" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Output_Format","#\x23" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Output_SizeInBytes","#\x24" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reset","#\x25" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_BlendFactor","#\x26" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_MotionVectors","#\x27" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Rect_X","#\x28" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Rect_Y","#\x29" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Rect_W","#\x2a" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Rect_H","#\x2b" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_MV_Scale_X","#\x2c" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_MV_Scale_Y","#\x2d" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Model","#\x2e" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Format","#\x2f" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_SizeInBytes","#\x30" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ResourceAllocCallback","#\x31" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_BufferAllocCallback","#\x32" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Tex2DAllocCallback","#\x33" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_ResourceReleaseCallback","#\x34" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_CreationNodeMask","#\x35" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_VisibilityNodeMask","#\x36" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_PreviousOutput","#\x37" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_MV_Offset_X","#\x38" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_MV_Offset_Y","#\x39" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Hint_UseFireflySwatter","#\x3a" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Resource_Width","#\x3b" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Resource_Height","#\x3c" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Depth","#\x3d" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_DLSSOptimalSettingsCallback","#\x3e" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_PerfQualityValue","#\x3f" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_RTXValue","#\x40" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_DLSSMode","#\x41" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_DeepResolve_Available","#\x42" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Deprecated_43","#\x43" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_OptLevel","#\x44" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_IsDevSnippetBranch","#\x45" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved_46","#\x46" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Graphics_API","#\x47" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved_48","#\x48" });
nvParamNames.insert({ "NVSDK_NGX_EParameter_Reserved_49","#\x49" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OptLevel","Snippet.OptLevel" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_IsDevSnippetBranch","Snippet.IsDevBranch" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_ScaleFactor","SuperSampling.ScaleFactor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_ScaleFactor","ImageSignalProcessing.ScaleFactor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_Available","SuperSampling.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_InPainting_Available","InPainting.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_Available","ImageSuperResolution.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SlowMotion_Available","SlowMotion.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VideoSuperResolution_Available","VideoSuperResolution.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_Available","ImageSignalProcessing.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DeepResolve_Available","DeepResolve.Available" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_NeedsUpdatedDriver","SuperSampling.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_InPainting_NeedsUpdatedDriver","InPainting.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_NeedsUpdatedDriver","ImageSuperResolution.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SlowMotion_NeedsUpdatedDriver","SlowMotion.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VideoSuperResolution_NeedsUpdatedDriver","VideoSuperResolution.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_NeedsUpdatedDriver","ImageSignalProcessing.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DeepResolve_NeedsUpdatedDriver","DeepResolve.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FrameInterpolation_NeedsUpdatedDriver","FrameInterpolation.NeedsUpdatedDriver" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_MinDriverVersionMajor","SuperSampling.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_InPainting_MinDriverVersionMajor","InPainting.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_MinDriverVersionMajor","ImageSuperResolution.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SlowMotion_MinDriverVersionMajor","SlowMotion.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VideoSuperResolution_MinDriverVersionMajor","VideoSuperResolution.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_MinDriverVersionMajor","ImageSignalProcessing.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DeepResolve_MinDriverVersionMajor","DeepResolve.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FrameInterpolation_MinDriverVersionMajor","FrameInterpolation.MinDriverVersionMajor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_MinDriverVersionMinor","SuperSampling.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_InPainting_MinDriverVersionMinor","InPainting.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_MinDriverVersionMinor","ImageSuperResolution.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SlowMotion_MinDriverVersionMinor","SlowMotion.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VideoSuperResolution_MinDriverVersionMinor","VideoSuperResolution.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_MinDriverVersionMinor","ImageSignalProcessing.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DeepResolve_MinDriverVersionMinor","DeepResolve.MinDriverVersionMinor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SuperSampling_FeatureInitResult","SuperSampling.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_InPainting_FeatureInitResult","InPainting.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_FeatureInitResult","ImageSuperResolution.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SlowMotion_FeatureInitResult","SlowMotion.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VideoSuperResolution_FeatureInitResult","VideoSuperResolution.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSignalProcessing_FeatureInitResult","ImageSignalProcessing.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DeepResolve_FeatureInitResult","DeepResolve.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FrameInterpolation_FeatureInitResult","FrameInterpolation.FeatureInitResult" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_ScaleFactor_2_1","ImageSuperResolution.ScaleFactor.2.1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_ScaleFactor_3_1","ImageSuperResolution.ScaleFactor.3.1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_ScaleFactor_3_2","ImageSuperResolution.ScaleFactor.3.2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ImageSuperResolution_ScaleFactor_4_3","ImageSuperResolution.ScaleFactor.4.3" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_NumFrames","NumFrames" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Scale","Scale" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Width","Width" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Height","Height" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutWidth","OutWidth" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutHeight","OutHeight" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Sharpness","Sharpness" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Scratch","Scratch" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Scratch_SizeInBytes","Scratch.SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input1","Input1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input1_Format","Input1.Format" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input1_SizeInBytes","Input1.SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input2","Input2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input2_Format","Input2.Format" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Input2_SizeInBytes","Input2.SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Color","Color" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Color_Format","Color.Format" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Color_SizeInBytes","Color.SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Color1","Color1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Color2","Color2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Albedo","Albedo" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Output","Output" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Output_Format","Output.Format" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Output_SizeInBytes","Output.SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Output1","Output1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Output2","Output2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Output3","Output3" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Reset","Reset" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_BlendFactor","BlendFactor" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MotionVectors","MotionVectors" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_MotionVectors1","MotionVectors1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_MotionVectors2","MotionVectors2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Rect_X","Rect.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Rect_Y","Rect.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Rect_W","Rect.W" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Rect_H","Rect.H" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutRect_X","OutRect.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutRect_Y","OutRect.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutRect_W","OutRect.W" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_OutRect_H","OutRect.H" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MV_Scale_X","MV.Scale.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MV_Scale_Y","MV.Scale.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Model","Model" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Format","Format" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_SizeInBytes","SizeInBytes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ResourceAllocCallback","ResourceAllocCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_BufferAllocCallback","BufferAllocCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Tex2DAllocCallback","Tex2DAllocCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ResourceReleaseCallback","ResourceReleaseCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_CreationNodeMask","CreationNodeMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_VisibilityNodeMask","VisibilityNodeMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MV_Offset_X","MV.Offset.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MV_Offset_Y","MV.Offset.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Hint_UseFireflySwatter","Hint.UseFireflySwatter" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Resource_Width","ResourceWidth" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Resource_Height","ResourceHeight" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Resource_OutWidth","ResourceOutWidth" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Resource_OutHeight","ResourceOutHeight" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Depth","Depth" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Depth1","Depth1" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Depth2","Depth2" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSSOptimalSettingsCallback","DLSSOptimalSettingsCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSSGetStatsCallback","DLSSGetStatsCallback" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_PerfQualityValue","PerfQualityValue" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_RTXValue","RTXValue" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSSMode","DLSSMode" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_Mode","FIMode" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_OF_Preset","FIOFPreset" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FI_OF_GridSize","FIOFGridSize" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Jitter_Offset_X","Jitter.Offset.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Jitter_Offset_Y","Jitter.Offset.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Denoise","Denoise" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_TransparencyMask","TransparencyMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_ExposureTexture","ExposureTexture" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Feature_Create_Flags","DLSS.Feature.Create.Flags" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Checkerboard_Jitter_Hack","DLSS.Checkerboard.Jitter.Hack" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Normals","GBuffer.Normals" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Albedo","GBuffer.Albedo" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Roughness","GBuffer.Roughness" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_DiffuseAlbedo","GBuffer.DiffuseAlbedo" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_SpecularAlbedo","GBuffer.SpecularAlbedo" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_IndirectAlbedo","GBuffer.IndirectAlbedo" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_SpecularMvec","GBuffer.SpecularMvec" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_DisocclusionMask","GBuffer.DisocclusionMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Metallic","GBuffer.Metallic" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Specular","GBuffer.Specular" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Subsurface","GBuffer.Subsurface" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_ShadingModelId","GBuffer.ShadingModelId" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_MaterialId","GBuffer.MaterialId" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_8","GBuffer.Attrib.8" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_9","GBuffer.Attrib.9" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_10","GBuffer.Attrib.10" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_11","GBuffer.Attrib.11" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_12","GBuffer.Attrib.12" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_13","GBuffer.Attrib.13" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_14","GBuffer.Attrib.14" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_GBuffer_Atrrib_15","GBuffer.Attrib.15" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_TonemapperType","TonemapperType" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FreeMemOnReleaseFeature","FreeMemOnReleaseFeature" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MotionVectors3D","MotionVectors3D" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_IsParticleMask","IsParticleMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_AnimatedTextureMask","AnimatedTextureMask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DepthHighRes","DepthHighRes" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_Position_ViewSpace","Position.ViewSpace" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_FrameTimeDeltaInMsec","FrameTimeDeltaInMsec" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_RayTracingHitDistance","RayTracingHitDistance" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_MotionVectorsReflection","MotionVectorsReflection" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Enable_Output_Subrects","DLSS.Enable.Output.Subrects" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Color_Subrect_Base_X","DLSS.Input.Color.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Color_Subrect_Base_Y","DLSS.Input.Color.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Depth_Subrect_Base_X","DLSS.Input.Depth.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Depth_Subrect_Base_Y","DLSS.Input.Depth.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_MV_SubrectBase_X","DLSS.Input.MV.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_MV_SubrectBase_Y","DLSS.Input.MV.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Translucency_SubrectBase_X","DLSS.Input.Translucency.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Translucency_SubrectBase_Y","DLSS.Input.Translucency.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Output_Subrect_Base_X","DLSS.Output.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Output_Subrect_Base_Y","DLSS.Output.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Render_Subrect_Dimensions_Width","DLSS.Render.Subrect.Dimensions.Width" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Render_Subrect_Dimensions_Height","DLSS.Render.Subrect.Dimensions.Height" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Pre_Exposure","DLSS.Pre.Exposure" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Exposure_Scale","DLSS.Exposure.Scale" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask","DLSS.Input.Bias.Current.Color.Mask" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_SubrectBase_X","DLSS.Input.Bias.Current.Color.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_SubrectBase_Y","DLSS.Input.Bias.Current.Color.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Indicator_Invert_Y_Axis","DLSS.Indicator.Invert.Y.Axis" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Indicator_Invert_X_Axis","DLSS.Indicator.Invert.X.Axis" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_INV_VIEW_PROJECTION_MATRIX","InvViewProjectionMatrix" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_CLIP_TO_PREV_CLIP_MATRIX","ClipToPrevClipMatrix" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayer","DLSS.TransparencyLayer" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayer_Subrect_Base_X","DLSS.TransparencyLayer.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayer_Subrect_Base_Y","DLSS.TransparencyLayer.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayerOpacity","DLSS.TransparencyLayerOpacity" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayerOpacity_Subrect_Base_X","DLSS.TransparencyLayerOpacity.Subrect.Base.X" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_TransparencyLayerOpacity_Subrect_Base_Y","DLSS.TransparencyLayerOpacity.Subrect.Base.Y" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Max_Render_Width","DLSS.Get.Dynamic.Max.Render.Width" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Max_Render_Height","DLSS.Get.Dynamic.Max.Render.Height" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Width","DLSS.Get.Dynamic.Min.Render.Width" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Height","DLSS.Get.Dynamic.Min.Render.Height" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_DLAA","DLSS.Hint.Render.Preset.DLAA" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_Quality","DLSS.Hint.Render.Preset.Quality" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_Balanced","DLSS.Hint.Render.Preset.Balanced" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_Performance","DLSS.Hint.Render.Preset.Performance" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_UltraPerformance","DLSS.Hint.Render.Preset.UltraPerformance" });
nvParamNames.insert({ "NVSDK_NGX_Parameter_DLSS_Hint_Render_Preset_UltraQuality","DLSS.Hint.Render.Preset.UltraQuality" });
}
inline static void DumpNvParams(const NVSDK_NGX_Parameter* InParams)
{
FillNvParamNames();
spdlog::debug("DumpNvParams Dumping known NvParam values");
for (const auto& [key, value] : nvParamNames)
{
unsigned long long ull = 0;
float f = 0.0f;
double d = 0.0;
unsigned int ui = 0;
int i = 0;
void* v = nullptr;
InParams->Get(value.c_str(), &ull);
InParams->Get(value.c_str(), &f);
InParams->Get(value.c_str(), &d);
InParams->Get(value.c_str(), &ui);
InParams->Get(value.c_str(), &i);
InParams->Get(value.c_str(), &v);
spdlog::debug("DumpNvParams {0} => ULL: {1}, F: {2}, D: {3}, UI: {4}, I: {5}, V*: {6:x}", key, ull, f, d, ui, i, (UINT64)v);
}
}
+30 -26
View File
@@ -58,35 +58,39 @@ bool DLSSFeatureDx11::Init(ID3D11Device* InDevice, ID3D11DeviceContext* InContex
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
//if (_AllocateParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureDx11::Init _AllocateParameters will be used");
if (_AllocateParameters != nullptr)
{
spdlog::debug("DLSSFeatureDx11::Init _AllocateParameters will be used");
// nvResult = _AllocateParameters(&Parameters);
nvResult = _AllocateParameters(&Parameters);
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureDx11::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else if (_GetParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureDx11::Init _GetParameters will be used");
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureDx11::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
break;
}
// nvResult = _GetParameters(&Parameters);
DumpNvParams(Parameters);
}
else if (_GetParameters != nullptr)
{
spdlog::debug("DLSSFeatureDx11::Init _GetParameters will be used");
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureDx11::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else
//{
// spdlog::error("DLSSFeatureDx11::Init _AllocateParameters and _GetParameters are both nullptr!");
// break;
//}
nvResult = _GetParameters(&Parameters);
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureDx11::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
break;
}
DumpNvParams(Parameters);
}
else
{
spdlog::error("DLSSFeatureDx11::Init _AllocateParameters and _GetParameters are both nullptr!");
break;
}
spdlog::info("DLSSFeatureDx12::Evaluate Creating DLSS feature");
@@ -299,6 +303,6 @@ DLSSFeatureDx11::~DLSSFeatureDx11()
if (Parameters != nullptr && _DestroyParameters != nullptr)
_DestroyParameters(Parameters);
if (_ReleaseFeature != nullptr)
if (_ReleaseFeature != nullptr && _p_dlssHandle != nullptr)
_ReleaseFeature(_p_dlssHandle);
}
+33 -26
View File
@@ -59,35 +59,39 @@ bool DLSSFeatureDx12::Init(ID3D12Device* InDevice, ID3D12GraphicsCommandList* In
}
//if (_AllocateParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureDx12::Init _AllocateParameters will be used");
if (_AllocateParameters != nullptr)
{
spdlog::debug("DLSSFeatureDx12::Init _AllocateParameters will be used");
// nvResult = _AllocateParameters(&Parameters);
nvResult = _AllocateParameters(&Parameters);
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureDx12::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else if (_GetParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureDx12::Init _GetParameters will be used");
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureDx12::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
break;
}
// nvResult = _GetParameters(&Parameters);
DumpNvParams(Parameters);
}
else if (_GetParameters != nullptr)
{
spdlog::debug("DLSSFeatureDx12::Init _GetParameters will be used");
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureDx12::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else
//{
// spdlog::error("DLSSFeatureDx12::Init _AllocateParameters and _GetParameters are both nullptr!");
// break;
//}
nvResult = _GetParameters(&Parameters);
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureDx12::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
break;
}
DumpNvParams(Parameters);
}
else
{
spdlog::error("DLSSFeatureDx12::Init _AllocateParameters and _GetParameters are both nullptr!");
break;
}
spdlog::info("DLSSFeatureDx12::Evaluate Creating DLSS feature");
@@ -193,6 +197,9 @@ bool DLSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, const N
(sharpness > 0.0f || (Config::Instance()->MotionSharpnessEnabled.value_or(false) && Config::Instance()->MotionSharpness.value_or(0.4) > 0.0f)) &&
RCAS->IsInit() && RCAS->CreateBufferResource(Device, setBuffer, D3D12_RESOURCE_STATE_UNORDERED_ACCESS))
{
// Disable DLSS sharpness
Parameters->Set(NVSDK_NGX_Parameter_Sharpness, 0.0f);
RCAS->SetBufferState(InCommandList, D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
setBuffer = RCAS->Buffer();
}
@@ -412,7 +419,7 @@ DLSSFeatureDx12::~DLSSFeatureDx12()
if (Parameters != nullptr && _DestroyParameters != nullptr)
_DestroyParameters(Parameters);
if (_ReleaseFeature != nullptr)
if (_ReleaseFeature != nullptr && _p_dlssHandle != nullptr)
_ReleaseFeature(_p_dlssHandle);
if (RCAS != nullptr && RCAS.get() != nullptr)
@@ -1,7 +1,6 @@
#pragma once
#include "DLSSFeature.h"
#include "../IFeature_Dx12.h"
//#include "../../cas/CAS_Dx12.h"
#include "../../rcas/RCAS_Dx12.h"
#include <string>
+34 -29
View File
@@ -1,7 +1,8 @@
#include "DLSSFeature_Vk.h"
#include <dxgi1_4.h>
#include "../../Config.h"
#include "../../pch.h"
#include "../../Config.h"
#include "../../Logger.h"
#include "DLSSFeature_Vk.h"
bool DLSSFeatureVk::Init(VkInstance InInstance, VkPhysicalDevice InPD, VkDevice InDevice, VkCommandBuffer InCmdList, PFN_vkGetInstanceProcAddr InGIPA, PFN_vkGetDeviceProcAddr InGDPA, const NVSDK_NGX_Parameter* InParameters)
{
@@ -61,35 +62,39 @@ bool DLSSFeatureVk::Init(VkInstance InInstance, VkPhysicalDevice InPD, VkDevice
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
//if (_AllocateParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureVk::Init _AllocateParameters will be used");
if (_AllocateParameters != nullptr)
{
spdlog::debug("DLSSFeatureVk::Init _AllocateParameters will be used");
// nvResult = _AllocateParameters(&Parameters);
nvResult = _AllocateParameters(&Parameters);
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureVk::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else if (_GetParameters != nullptr)
//{
// spdlog::debug("DLSSFeatureVk::Init _GetParameters will be used");
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureVk::Init _AllocateParameters result: {0:X}", (unsigned int)nvResult);
break;
}
// nvResult = _GetParameters(&Parameters);
DumpNvParams(Parameters);
}
else if (_GetParameters != nullptr)
{
spdlog::debug("DLSSFeatureVk::Init _GetParameters will be used");
// if (nvResult != NVSDK_NGX_Result_Success)
// {
// spdlog::error("DLSSFeatureVk::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
// break;
// }
//}
//else
//{
// spdlog::error("DLSSFeatureVk::Init _AllocateParameters and _GetParameters are both nullptr!");
// break;
//}
nvResult = _GetParameters(&Parameters);
if (nvResult != NVSDK_NGX_Result_Success)
{
spdlog::error("DLSSFeatureVk::Init _GetParameters result: {0:X}", (unsigned int)nvResult);
break;
}
DumpNvParams(Parameters);
}
else
{
spdlog::error("DLSSFeatureVk::Init _AllocateParameters and _GetParameters are both nullptr!");
break;
}
spdlog::info("DLSSFeatureVk::Evaluate Creating DLSS feature");
@@ -216,6 +221,6 @@ DLSSFeatureVk::~DLSSFeatureVk()
if (Parameters != nullptr && _DestroyParameters != nullptr)
_DestroyParameters(Parameters);
if (_ReleaseFeature != nullptr)
if (_ReleaseFeature != nullptr && _p_dlssHandle != nullptr)
_ReleaseFeature(_p_dlssHandle);
}