Streamline icon indicating copy to clipboard operation
Streamline copied to clipboard

Streamline forces DXGI_PRESENT_ALLOW_TEARING

Open doodlum opened this issue 9 months ago • 1 comments

Streamline forces DXGI_PRESENT_ALLOW_TEARING with no control over it, as described by AMD. There is currently no option to disable this behaviour.

doodlum avatar Mar 05 '25 11:03 doodlum

Can point, where is described by AMD?

oscarbg avatar Mar 16 '25 02:03 oscarbg

Can you provide more info regarding what you’re seeing (is it true for any plugin, or just with FG, etc) and what your expectations are? Reference to the issue with AMD would be helpful

jake-nv avatar Apr 05 '25 15:04 jake-nv

Came across this issue whilst digging through some previous notes I had whilst attempting non-blocking vsync. For what it's worth, whilst I used to work at AMD I cant remember ever describing the issue I faced publicly, so it is likely unrelated to what the reporter states.

My issue was this line: https://github.com/NVIDIA-RTX/Streamline/blob/3e78b8f4cecf4b7d83a58e9398f1edb192c74aae/source/platforms/sl.chi/d3d12.cpp#L756 It is completely valid to have syncinterval = 0 without tearing flag to reduce vsync input latency in various situations. Adding it silently was hard to track down - only discovered it after seeing streamline in the call stack.

Domipheus avatar Jul 01 '25 12:07 Domipheus

It's noted in the official integration PDF:

"We have seen Streamline add tearing flags when the game requested none. This can directly affect the quality of FSR3 Frame Generation, and we recommend it is avoided when FSR3 used"

What scenario would you want to disable tearing if the display is reporting as VRR?

doodlum avatar Jul 01 '25 13:07 doodlum

Aha! Of course. I think this was an early version of FG in FSR3.0 where we explicitly used non-blocking vsync to reduce latency. It was removed in subsequent releases, fwiw.

For VRR you want the flag :) The usecase was not within VRR scope.

Domipheus avatar Jul 01 '25 13:07 Domipheus