mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-08-25 07:36:45 +00:00
added dlaa checks
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user