mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-05-29 21:13:14 +00:00
changed resource state parameter
added xess quality override changed min render height and width
This commit is contained in:
@@ -22,6 +22,7 @@ void Config::Reload()
|
||||
DelayedInit = readBool("XeSS", "DelayedInit");
|
||||
BuildPipelines = readBool("XeSS", "BuildPipelines");
|
||||
NetworkModel = readInt("XeSS", "NetworkModel");
|
||||
OverrideQuality = readInt("XeSS", "OverrideQuality");
|
||||
|
||||
LoggingEnabled = readBool("Log", "LoggingEnabled");
|
||||
|
||||
|
||||
+7
-6
@@ -29,6 +29,7 @@ public:
|
||||
std::optional<bool> DelayedInit;
|
||||
std::optional<bool> BuildPipelines;
|
||||
std::optional<int32_t> NetworkModel;
|
||||
std::optional<int32_t> OverrideQuality;
|
||||
|
||||
// CAS
|
||||
std::optional<bool> CasEnabled;
|
||||
@@ -51,12 +52,12 @@ public:
|
||||
|
||||
//Hotfixes
|
||||
std::optional<bool> DisableReactiveMask;
|
||||
std::optional<bool> ColorResourceBarrier;
|
||||
std::optional<bool> MVResourceBarrier;
|
||||
std::optional<bool> DepthResourceBarrier;
|
||||
std::optional<bool> ExposureResourceBarrier;
|
||||
std::optional<bool> MaskResourceBarrier;
|
||||
std::optional<bool> OutputResourceBarrier;
|
||||
std::optional<int32_t> ColorResourceBarrier;
|
||||
std::optional<int32_t> MVResourceBarrier;
|
||||
std::optional<int32_t> DepthResourceBarrier;
|
||||
std::optional<int32_t> ExposureResourceBarrier;
|
||||
std::optional<int32_t> MaskResourceBarrier;
|
||||
std::optional<int32_t> OutputResourceBarrier;
|
||||
|
||||
void Reload();
|
||||
|
||||
|
||||
+57
-45
@@ -240,7 +240,7 @@ class FeatureContext
|
||||
xess_context_handle_t xessContext = nullptr;
|
||||
bool xessMaskEnabled = true;
|
||||
bool xessInit = false;
|
||||
|
||||
|
||||
// cas
|
||||
FfxCasContext casContext;
|
||||
bool casInit = false;
|
||||
@@ -607,29 +607,36 @@ public:
|
||||
int pqValue;
|
||||
initParams->Get(NVSDK_NGX_Parameter_PerfQualityValue, &pqValue);
|
||||
|
||||
switch ((NVSDK_NGX_PerfQuality_Value)pqValue)
|
||||
if (CyberXessContext::instance()->MyConfig->OverrideQuality.has_value())
|
||||
{
|
||||
case NVSDK_NGX_PerfQuality_Value_UltraPerformance:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_PERFORMANCE;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_MaxPerf:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_PERFORMANCE;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_Balanced:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_BALANCED;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_MaxQuality:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_QUALITY;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_UltraQuality:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_ULTRA_QUALITY;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_DLAA:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_ULTRA_QUALITY;
|
||||
break;
|
||||
default:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_BALANCED; //Set out-of-range value for non-existing XESS_QUALITY_SETTING_BALANCED mode
|
||||
break;
|
||||
xessParams.qualitySetting = (xess_quality_settings_t)CyberXessContext::instance()->MyConfig->OverrideQuality.value();
|
||||
}
|
||||
else
|
||||
{
|
||||
switch ((NVSDK_NGX_PerfQuality_Value)pqValue)
|
||||
{
|
||||
case NVSDK_NGX_PerfQuality_Value_UltraPerformance:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_PERFORMANCE;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_MaxPerf:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_PERFORMANCE;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_Balanced:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_BALANCED;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_MaxQuality:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_QUALITY;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_UltraQuality:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_ULTRA_QUALITY;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_DLAA:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_ULTRA_QUALITY;
|
||||
break;
|
||||
default:
|
||||
xessParams.qualitySetting = XESS_QUALITY_SETTING_BALANCED; //Set out-of-range value for non-existing XESS_QUALITY_SETTING_BALANCED mode
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
xessParams.initFlags = XESS_INIT_FLAG_NONE;
|
||||
@@ -722,8 +729,12 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
CasInit();
|
||||
CreateCasContext();
|
||||
|
||||
if (casActive)
|
||||
CreateCasContext();
|
||||
|
||||
xessInit = true;
|
||||
|
||||
@@ -803,12 +814,12 @@ public:
|
||||
{
|
||||
spdlog::debug("FeatureContext::XeSSExecuteDx12 Color exist..");
|
||||
|
||||
if (instance->MyConfig->ColorResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->ColorResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = params.pColorTexture;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_RENDER_TARGET;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->ColorResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -827,12 +838,12 @@ public:
|
||||
{
|
||||
spdlog::debug("FeatureContext::XeSSExecuteDx12 MotionVectors exist..");
|
||||
|
||||
if (instance->MyConfig->MVResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->MVResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = params.pVelocityTexture;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COMMON;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->MVResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -852,12 +863,12 @@ public:
|
||||
{
|
||||
spdlog::debug("FeatureContext::XeSSExecuteDx12 Output exist..");
|
||||
|
||||
if (instance->MyConfig->OutputResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->OutputResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = paramOutput;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COMMON;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->OutputResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -889,12 +900,12 @@ public:
|
||||
{
|
||||
spdlog::debug("FeatureContext::XeSSExecuteDx12 Depth exist..");
|
||||
|
||||
if (instance->MyConfig->DepthResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->DepthResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = params.pDepthTexture;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COMMON;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->DepthResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -915,12 +926,12 @@ public:
|
||||
if (initParams->Get(NVSDK_NGX_Parameter_ExposureTexture, ¶ms.pExposureScaleTexture) != NVSDK_NGX_Result_Success)
|
||||
initParams->Get(NVSDK_NGX_Parameter_ExposureTexture, (void**)¶ms.pExposureScaleTexture);
|
||||
|
||||
if (instance->MyConfig->ExposureResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->ExposureResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = params.pExposureScaleTexture;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COMMON;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->ExposureResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -939,12 +950,12 @@ public:
|
||||
if (initParams->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶ms.pResponsivePixelMaskTexture) != NVSDK_NGX_Result_Success)
|
||||
initParams->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶ms.pResponsivePixelMaskTexture);
|
||||
|
||||
if (instance->MyConfig->MaskResourceBarrier.value_or(false))
|
||||
if (instance->MyConfig->MaskResourceBarrier.has_value())
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
barrier.Transition.pResource = params.pResponsivePixelMaskTexture;
|
||||
barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_COMMON;
|
||||
barrier.Transition.StateBefore = (D3D12_RESOURCE_STATES)instance->MyConfig->MaskResourceBarrier.value();
|
||||
barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
|
||||
barrier.Transition.Subresource = 0;
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
@@ -976,6 +987,16 @@ public:
|
||||
spdlog::debug("FeatureContext::XeSSExecuteDx12 Executing!!");
|
||||
xessResult = xessD3D12Execute(xessContext, commandList, ¶ms);
|
||||
|
||||
if (xessResult != XESS_RESULT_SUCCESS)
|
||||
{
|
||||
spdlog::error("FeatureContext::XeSSExecuteDx12 xessD3D12Execute error: {0}", ResultToString(xessResult));
|
||||
return false;
|
||||
}
|
||||
|
||||
//apply cas
|
||||
if (casActive && !CasDispatch(commandList, initParams, casBuffer, paramOutput))
|
||||
return false;
|
||||
|
||||
if (params.pColorTexture && instance->MyConfig->ColorResourceBarrier.value_or(false))
|
||||
{
|
||||
D3D12_RESOURCE_BARRIER barrier = {};
|
||||
@@ -987,15 +1008,6 @@ public:
|
||||
commandList->ResourceBarrier(1, &barrier);
|
||||
}
|
||||
|
||||
if (xessResult != XESS_RESULT_SUCCESS)
|
||||
{
|
||||
spdlog::error("FeatureContext::XeSSExecuteDx12 xessD3D12Execute error: {0}", ResultToString(xessResult));
|
||||
return false;
|
||||
}
|
||||
|
||||
//apply cas
|
||||
if (casActive && !CasDispatch(commandList, initParams, casBuffer, paramOutput))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -83,9 +83,9 @@ inline NVSDK_NGX_Result NVSDK_CONV NVSDK_NGX_DLSS_GetOptimalSettingsCallback(NVS
|
||||
scalingRatio = 0.5f;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_Balanced:
|
||||
OutHeight = (unsigned int)((float)Height / 1.699115044247788);
|
||||
OutWidth = (unsigned int)((float)Width / 1.699115044247788);
|
||||
scalingRatio = 0.58854167f;
|
||||
OutHeight = (unsigned int)((float)Height / 1.699215044247788);
|
||||
OutWidth = (unsigned int)((float)Width / 1.699215044247788);
|
||||
scalingRatio = 0.58850703f;
|
||||
break;
|
||||
case NVSDK_NGX_PerfQuality_Value_MaxQuality:
|
||||
OutHeight = (unsigned int)((float)Height / 1.5);
|
||||
@@ -103,9 +103,9 @@ inline NVSDK_NGX_Result NVSDK_CONV NVSDK_NGX_DLSS_GetOptimalSettingsCallback(NVS
|
||||
scalingRatio = 1.0f;
|
||||
break;
|
||||
default:
|
||||
OutHeight = (unsigned int)((float)Height / 1.699115044247788);
|
||||
OutWidth = (unsigned int)((float)Width / 1.699115044247788);
|
||||
scalingRatio = 0.58854167f;
|
||||
OutHeight = (unsigned int)((float)Height / 1.699215044247788);
|
||||
OutWidth = (unsigned int)((float)Width / 1.699215044247788);
|
||||
scalingRatio = 0.58850703f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -120,10 +120,10 @@ inline NVSDK_NGX_Result NVSDK_CONV NVSDK_NGX_DLSS_GetOptimalSettingsCallback(NVS
|
||||
|
||||
InParams->Set(NVSDK_NGX_Parameter_Scale, scalingRatio);
|
||||
InParams->Set(NVSDK_NGX_Parameter_OutWidth, OutWidth);
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Width, OutWidth);
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Width, (unsigned int)((float)Width / 2.5));
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Max_Render_Width, Width);
|
||||
InParams->Set(NVSDK_NGX_Parameter_OutHeight, OutHeight);
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Height, OutHeight);
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Min_Render_Height, (unsigned int)((float)Height / 2.5));
|
||||
InParams->Set(NVSDK_NGX_Parameter_DLSS_Get_Dynamic_Max_Render_Height, Height);
|
||||
InParams->Set(NVSDK_NGX_Parameter_SizeInBytes, Width * Height * 31);
|
||||
|
||||
|
||||
@@ -43,6 +43,14 @@ BuildPipelines=auto
|
||||
;Always returns unsupported when setting network model
|
||||
;NetworkModel=0
|
||||
|
||||
;Override XeSS quality mode (will not change scale ratio, experimental)
|
||||
; XESS_QUALITY_SETTING_PERFORMANCE = 101,
|
||||
; XESS_QUALITY_SETTING_BALANCED = 102,
|
||||
; XESS_QUALITY_SETTING_QUALITY = 103,
|
||||
; XESS_QUALITY_SETTING_ULTRA_QUALITY = 104,
|
||||
; Default (auto) is DLSS value
|
||||
OverrideQuality=auto
|
||||
|
||||
[CAS]
|
||||
;Enables CAS shapening - Default (auto) is false
|
||||
Enabled=auto
|
||||
@@ -87,7 +95,7 @@ UpscaleRatioOverrideEnabled=auto
|
||||
;resolution values are calculated in this way:
|
||||
;OutHeight = Height / ratio;
|
||||
;OutWidth = Width / ratio;
|
||||
;example ratios: Quality preset = 1.5; Ultra performance preset = 3.0 - Default (auto) is 1.3
|
||||
;example ratios: Quality preset = 1.5; Ultra performance preset = 2.5 - Default (auto) is 1.3
|
||||
UpscaleRatioOverrideValue=auto
|
||||
|
||||
[QualityOverrides]
|
||||
@@ -101,7 +109,7 @@ QualityRatioOverrideEnabled=auto
|
||||
; Quality : 1.5
|
||||
; Balanced : 1.7
|
||||
; Performance : 2.0
|
||||
; Ultra Performance : 3.0
|
||||
; Ultra Performance : 2.5
|
||||
QualityRatioUltraQuality=auto
|
||||
QualityRatioQuality=auto
|
||||
QualityRatioBalanced=auto
|
||||
@@ -113,15 +121,48 @@ QualityRatioUltraPerformance=auto
|
||||
; You can enable and test if it fix or break something
|
||||
; Default (auto) is false
|
||||
DisableReactiveMask=auto
|
||||
; Color texture resource barrier fix for rainbow colors on AMD cards (for mostly UE games) - Default (auto) is false
|
||||
|
||||
; Resource barrier values
|
||||
; ----------------------------------------------------
|
||||
; D3D12_RESOURCE_STATE_COMMON = 0,
|
||||
; D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 1,
|
||||
; D3D12_RESOURCE_STATE_INDEX_BUFFER = 2,
|
||||
; D3D12_RESOURCE_STATE_RENDER_TARGET = 4,
|
||||
; D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 8,
|
||||
; D3D12_RESOURCE_STATE_DEPTH_WRITE = 16,
|
||||
; D3D12_RESOURCE_STATE_DEPTH_READ = 32,
|
||||
; D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 64,
|
||||
; D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 128,
|
||||
; D3D12_RESOURCE_STATE_STREAM_OUT = 256,
|
||||
; D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 512,
|
||||
; D3D12_RESOURCE_STATE_COPY_DEST = 1024,
|
||||
; D3D12_RESOURCE_STATE_COPY_SOURCE = 2048,
|
||||
; D3D12_RESOURCE_STATE_RESOLVE_DEST = 4096,
|
||||
; D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 8192,
|
||||
; D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 4194304,
|
||||
; D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 16777216,
|
||||
; D3D12_RESOURCE_STATE_GENERIC_READ = 2755,
|
||||
; D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = 192,
|
||||
; D3D12_RESOURCE_STATE_PRESENT = 0,
|
||||
; D3D12_RESOURCE_STATE_PREDICATION = 310,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 65536,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 131072,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 262144,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 524288,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 2097152,
|
||||
; D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 8388608
|
||||
;------------------------------------------------------
|
||||
;
|
||||
; Color texture resource state to fix for rainbow colors on AMD cards (for mostly UE games) - Default (auto) is false
|
||||
; For UE engine games on AMD, set it to D3D12_RESOURCE_STATE_RENDER_TARGET (4)
|
||||
ColorResourceBarrier=auto
|
||||
; MotionVector texture resource barrier to D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
; MotionVector texture resource state, from this to D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
MotionVectorResourceBarrier=auto
|
||||
; Depth texture resource barrier to D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
; Depth texture resource state, from this D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
DepthResourceBarrier=auto
|
||||
; Color mask texture resource barrier to D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
; Color mask texture resource state, from this D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
ColorMaskResourceBarrier=auto
|
||||
; Exposure texture resource barrier to D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
; Exposure texture resource state, from this D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE (for mostly debugging) - Default (auto) is false
|
||||
ExposureResourceBarrier=auto
|
||||
; Output texture resource barrier to D3D12_RESOURCE_STATE_UNORDERED_ACCESS (for mostly debugging) - Default (auto) is false
|
||||
; Output texture resource state, from this D3D12_RESOURCE_STATE_UNORDERED_ACCESS (for mostly debugging) - Default (auto) is false
|
||||
OutputResourceBarrier=auto
|
||||
Reference in New Issue
Block a user