added dlaa checks

This commit is contained in:
cdozdil
2024-06-24 19:17:04 +03:00
parent 5787c340fd
commit f24f35de15
4 changed files with 28 additions and 7 deletions
+25 -6
View File
@@ -8,13 +8,13 @@ void IFeature::SetHandle(unsigned int InHandleId)
spdlog::info("IFeatureContext::SetHandle Handle: {0}", _handle->Id);
}
bool IFeature::SetInitParameters(const NVSDK_NGX_Parameter* InParameters)
bool IFeature::SetInitParameters(NVSDK_NGX_Parameter* InParameters)
{
unsigned int width = 0;
unsigned int outWidth = 0;
unsigned int height = 0;
unsigned int outHeight = 0;
int pqValue = 1;
int pqValue = 0;
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Feature_Create_Flags, &_featureFlags);
@@ -42,12 +42,32 @@ bool IFeature::SetInitParameters(const NVSDK_NGX_Parameter* InParameters)
_displayWidth = width > outWidth ? width : outWidth;
_displayHeight = height > outHeight ? height : outHeight;
_renderWidth = width < outWidth ? width : outWidth;
_renderHeight = height < outHeight ? height : outHeight;
_targetWidth = _displayWidth;
_targetHeight = _displayHeight;
_renderWidth = width < outWidth ? width : outWidth;
_renderHeight = height < outHeight ? height : outHeight;
_perfQualityValue = (NVSDK_NGX_PerfQuality_Value)pqValue;
//Should not be needed but who knows
if (_perfQualityValue == NVSDK_NGX_PerfQuality_Value_DLAA)
{
_renderWidth = _displayWidth;
_renderHeight = _displayHeight;
}
//Should not be needed but who knows
if (_renderWidth == _displayWidth && _renderHeight == _displayHeight && _perfQualityValue != NVSDK_NGX_PerfQuality_Value_DLAA)
{
_perfQualityValue == NVSDK_NGX_PerfQuality_Value_DLAA;
pqValue = (int)_perfQualityValue;
InParameters->Set(NVSDK_NGX_Parameter_PerfQualityValue, pqValue);
InParameters->Set(NVSDK_NGX_Parameter_Width, _displayWidth);
InParameters->Set(NVSDK_NGX_Parameter_Height, _displayHeight);
InParameters->Set(NVSDK_NGX_Parameter_OutWidth, _displayWidth);
InParameters->Set(NVSDK_NGX_Parameter_OutHeight, _displayHeight);
}
spdlog::info("IFeatureContext::SetInitParameters Render Resolution: {0}x{1}, Display Resolution {2}x{3}, Quality: {4}",
_renderWidth, _renderHeight, _displayWidth, _displayHeight, pqValue);
@@ -58,7 +78,7 @@ bool IFeature::SetInitParameters(const NVSDK_NGX_Parameter* InParameters)
return false;
}
void IFeature::GetRenderResolution(const NVSDK_NGX_Parameter* InParameters, unsigned int* OutWidth, unsigned int* OutHeight)
void IFeature::GetRenderResolution(const NVSDK_NGX_Parameter* InParameters, unsigned int* OutWidth, unsigned int* OutHeight)
{
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Render_Subrect_Dimensions_Width, OutWidth) != NVSDK_NGX_Result_Success ||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Render_Subrect_Dimensions_Height, OutHeight) != NVSDK_NGX_Result_Success)
@@ -70,7 +90,6 @@ void IFeature::GetRenderResolution(const NVSDK_NGX_Parameter* InParameters, unsi
do
{
if (InParameters->Get(NVSDK_NGX_Parameter_Width, &width) == NVSDK_NGX_Result_Success &&
InParameters->Get(NVSDK_NGX_Parameter_Height, &height) == NVSDK_NGX_Result_Success)
{
+1 -1
View File
@@ -36,7 +36,7 @@ protected:
bool _moduleLoaded = false;
void SetHandle(unsigned int InHandleId);
bool SetInitParameters(const NVSDK_NGX_Parameter* InParameters);
bool SetInitParameters(NVSDK_NGX_Parameter* InParameters);
void GetRenderResolution(const NVSDK_NGX_Parameter* InParameters, unsigned int* OutWidth, unsigned int* OutHeight);
virtual void SetInit(bool InValue) { _isInited = InValue; }
+1
View File
@@ -197,6 +197,7 @@ void DLSSFeature::ProcessEvaluateParams(NVSDK_NGX_Parameter* InParameters)
InParameters->Set(NVSDK_NGX_Parameter_Sharpness, 0.0f);
}
// Read render resolution
unsigned int width;
unsigned int height;
GetRenderResolution(InParameters, &width, &height);
@@ -27,6 +27,7 @@ void DLSSDFeature::ProcessEvaluateParams(NVSDK_NGX_Parameter* InParameters)
InParameters->Set(NVSDK_NGX_Parameter_Sharpness, 0.0f);
}
// Read render resolution
unsigned int width;
unsigned int height;
GetRenderResolution(InParameters, &width, &height);