Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Sets the base shading rate, and combiners, for variable-rate shading (VRS). For more info, see Variable-rate shading (VRS).
Syntax
void RSSetShadingRate(
D3D12_SHADING_RATE baseShadingRate,
const D3D12_SHADING_RATE_COMBINER *combiners
);
Parameters
baseShadingRate
Type: D3D12_SHADING_RATE
A constant from the D3D12_SHADING_RATE enumeration describing the base shading rate to set.
combiners
Type: const D3D12_SHADING_RATE_COMBINER*
An optional pointer to a constant array of D3D12_SHADING_RATE_COMBINER containing the shading rate combiners to set. The count of D3D12_SHADING_RATE_COMBINER elements in the array must be equal to the constant D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT, which is equal to 2.
Because per-primitive and screen-space image-based VRS isn't supported on Tier1 Variable-rate shading (VRS), for these values to be meaningful, the adapter requires Tier2 VRS support. See D3D12_FEATURE_DATA_D3D12_OPTIONS6 and D3D12_VARIABLE_SHADING_RATE_TIER.
A NULL pointer is equivalent to the default shading combiners, which are both D3D12_SHADING_RATE_COMBINER_PASSTHROUGH.
The algorithm for final shading-rate is determined by the following.
postRasterizerRate = ApplyCombiner(Combiners[0], CommandListShadingRate, Primitive->PrimitiveSpecifiedShadingRate);
finalRate = ApplyCombiner(Combiners[1], postRasterizerRate, ScreenSpaceImage[xy]);
where ApplyCombiner
is
UINT ApplyCombiner(D3D12_SHADING_RATE_COMBINER combiner, UINT a, UINT b)
{
MaxShadingRate = options6.AdditionalShadingRatesSupported ? 4 : 2;
switch (combiner)
{
case D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: // default
return a;
case D3D12_SHADING_RATE_COMBINER_OVERRIDE:
return b;
case D3D12_SHADING_RATE_COMBINER_MAX:
return max(a, b);
case D3D12_SHADING_RATE_COMBINER_MIN:
return min(a, b);
case D3D12_SHADING_RATE_COMBINER_SUM:
return min(MaxShadingRate, a + b);
case default:
return a;
}
}
Return value
None
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 Build 20348 |
Minimum supported server | Windows 10 Build 20348 |
Header | d3d12.h |