Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 13 Jun 2021, 08:52

I want to reduce the input lag of my BenQ DLP Projector with a 6-segment color-wheel (RYWCBG). I measured a lag of ~35ms using the Leo Bodnar device (which I suspect runs at 60Hz VSYNC ON).

I now hoped that I could reduce input lag by turning VSYNC OFF and increasing the framerate. The application is based on WebGL and runs in Chrome using a GTX1080. I disabled VSYNC in the NVIDIA control panel and turned off pre-rendered frames and tripple buffering.

I start Chrome with "--disable-frame-rate-limit --disable-gpu-vsync --start-fullscreen".

When I open the DisplayHz test website I get framerates of ~2500Hz.

I then opened Test UFO Scanout page and recorded it at 960fps (SuperSlowMo 0.4s@960fps => 12.8s@30fps using Samsung Galaxy Note 10+).

I expected to see effects of the scanout and tearing, e.g. certain horizontal bands of the screen should belong to different frames (indicated by the frame number + different background).

However, in all frames captured the frame counter is the same from top to bottom:
Screenshot 2021-06-13 at 15.30.12.png
Screenshot 2021-06-13 at 15.30.12.png (1.46 MiB) Viewed 3224 times
Then I did notice that the screen seems to update from bottom to top
Screenshot 2021-06-13 at 15.32.14.jpg
Screenshot 2021-06-13 at 15.32.14.jpg (324.15 KiB) Viewed 3224 times
Rotating the camera 90° degrees showed that the screen seems to update in different directions depending on the orientation of the camera, so apparently I am not recording scanout of the projector, but scanout of the camera?

I am not sure how to proceed here.

A) is the projectors scanout so fast that I can't record it at 960fps? Does the DLP switch so much faster? Is my Note10+ @960fps too slow?
B) Why can't I record tearline/multiple frames at once despite VSYNC OFF? Does the projector perform additional buffering? (it seems like at least a whole cycle on the color wheel always belongs to the same frame)
C) Is it even possible to reduce latency by turning VSYNC OFF and increasing framerate or does this not apply to DLP projectors?

I suspect that DLP projector behave very much different than monitors usually talked about here, but it would be great if someone could clarify the differences.

Would love to hear some feedback from the experts. This topics seems to be such a rabbit hole that you need years of experience to grasp all the details involved.

User avatar
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by RealNC » 13 Jun 2021, 16:08

It's complicated with applications that don't have a true fullscreen mode. Not sure if browsers do that now or not. But you can try and find the application profile of your browser in the nvidia control panel's 3D settings. Find the entry there for Chrome or Firefox (or whatever browser you're using) and see if vsync is forced there for that profile. Force it to off, restart the browser, and see what happens.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 13 Jun 2021, 16:21

Global settings and application specific settings for Chrome are identical (i.e. VSYNC OFF, Tripple Buffering, Max Framerate Off). I suspect it is the DLP projector and not the software.

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 13 Jun 2021, 16:24

Also if VSYNC was still on, I shouldn't be seeing 2500Hz on the DisplayHz website, right?

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by Chief Blur Buster » 13 Jun 2021, 16:44

All of this is normal.
You are just unfamiliar with how a DLP refreshes.
It does NOT have such a thing as a traditional scanout.
And yes, camera sensor scan speed can be a factor.
RealNC wrote:
13 Jun 2021, 16:08
It's complicated with applications that don't have a true fullscreen mode. Not sure if browsers do that now or not. But you can try and find the application profile of your browser in the nvidia control panel's 3D settings. Find the entry there for Chrome or Firefox (or whatever browser you're using) and see if vsync is forced there for that profile. Force it to off, restart the browser, and see what happens.
RealNC is right, since this distorts testing as TestUFO is designed for VSYNC ON browsers.

Do this, don't use VSYNC OFF with browsers. Fix TestUFO first before reading the below. TestUFO problems are unrelated to DLP. Make sure TestUFO Hz equals Windows Hz. Then once you fixed that, read onwards:
LagIsTooDamnHigh wrote:
13 Jun 2021, 08:52
Rotating the camera 90° degrees showed that the screen seems to update in different directions depending on the orientation of the camera, so apparently I am not recording scanout of the projector, but scanout of the camera?
Correct, scanout of camera.

The www.testufo.com/scanout is useless without a camera capable of 1000fps -- try a Samsung Galaxy S9, S10 or S20 in Super Slo Mo mode.
LagIsTooDamnHigh wrote:
13 Jun 2021, 08:52
A) is the projectors scanout so fast that I can't record it at 960fps? Does the DLP switch so much faster? Is my Note10+ @960fps too slow?
DLP is a global refresh technolgy that refreshes a 1-bit refresh cycle in 1/1440sec to 1/2880sec.

DLP does the following:
1. It buffers the refresh cycle from the cable, and then;
2. Temporally separate the frame into about 24 to 48 separate 1-bit refresh cycles that are displayed in a ultrafast 1/1440 to 1/2880sec sweep as a 1-bit monochrome
3. The DLP refresh flashes a different 1-bit refresh cycle every 1/1440sec to 1/2880sec.

Depending on the DLP chip, the DLP is outputting about 960, 1440, 1920 or 2880 different 1-bit pictures per second, as a method of temporally dithering. The mirrors of a DLP chip is always binary (only ON, or only OFF) so you're seeing effectively greyscaleless monochrome refresh cycles in fast 1/1440sec or 1/2880sec camera exposures.

This is also done in sync with the color wheel, so it will be focussing on 1-bit red refresh cycles, or 1-bit green refresh cycles, or 1-bit blue refresh cycles. It may even refresh in sync with the color wheel boundaries, as the color wheel boundaries sweep past the chip, or simply blackframing them out until the colorwheel boundary is past -- different DLPs do different algorithms for this.
LagIsTooDamnHigh wrote:
13 Jun 2021, 08:52
B) Why can't I record tearline/multiple frames at once despite VSYNC OFF? Does the projector perform additional buffering? (it seems like at least a whole cycle on the color wheel always belongs to the same frame)
For a commodity consumer camera or smartphone to properly capture a DLP projector and its tearlines, you must, must, must, must, must, must, must, must, must, must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must must, must, must, must, must, must, must, must, MUST configure camera exposure to EXACTLY the refresh cycle or a multiple thereof (e.g. 1/60sec camera exposure for a 60Hz refresh cycle, or 1/120sec camera exposure for a 120Hz refresh cycle). Don't let the camera set exposure.

Now, that's probably not your goal, though (I just say this as camera science in the age of a display requiring temporal dithering). If you capture DLP too fast, you're capturing fragments of DLP's temporal dithering, resulting in distorted color. But the photos become perfect color (with tearing artifacts visible), once your exposure is a full refresh cycle. Even if the timing of camera exposures is not perfectly aligned with timing of refresh cycles (that creates potential artifacts, but far less than interrupted temporal color, thanks to too-short camera exposure), it should still be able to make tearlines visible.

If you are capturing pursuit camera images of a DLP, that's okay as long as it's a multiple thereof (exactly 4 refresh cycles -- e.g. 1/15sec camera exposure for a 60Hz pursuit camera capture of www.testufo.com/ghosting via the hand wave smartphone method described in the pursuit camera forum).

If you are capturing VSYNC OFF tearing on a DLP, you will capture it successfully for fast horizontally scrolling motion (try 10,000 pixels/sec panning speed in your game, like pegging a joystick while taking a picture). As long as your camera exposure speed is set correctly -- never faster than a refresh cycle for this specific kind of situation.
LagIsTooDamnHigh wrote:
13 Jun 2021, 08:52
C) Is it even possible to reduce latency by turning VSYNC OFF and increasing framerate or does this not apply to DLP projectors?
VSYNC OFF is always lower lag for DLP projectors, but the latency will feel odd because VSYNC OFF is scanout-following, while DLP buffers-and-globally-refreshes (in repeated ultrafast 1/1440sec to 1/2880sec 1-bit scanout, as part of its art of temporal dithering). This means top edge and bottom edge will have different latencies, since VSYNC OFF feels better on synchronous-scanout monitors like LCDs and DLPs. To compensate for this lag-ugliness partially, get a 240Hz DLP such as Optoma. Then this reduces the buffering penalty to 1/240sec.

VSYNC OFF is at the signal level so it's already delivering fresher pixels sooner to the display, no matter what odd things a display is doing. However, whether it's a superior lagfeel (top=bottom) or an odd lagfeel (top unequal bottom) despite being lower lag as before, it is up to you to decide if you prefer that specific latency.

This may be why you are erroneously claiming "Unable to reduce input lag with VSYNC OFF" with DLP, it's simply because you're getting erratic amounts of latency reductions. Most gamers prefer higher-but-consistent latency rather than erratic-but-lower-latency.

Also, Leo Bodnar is a "60fps VSYNC ON" latency tester, and there is no VSYNC OFF latency test mode in a Leo Bodnar, so it cannot be used to benchmark VSYNC OFF latency improvements.
LagIsTooDamnHigh wrote:
13 Jun 2021, 08:52
Would love to hear some feedback from the experts. This topics seems to be such a rabbit hole that you need years of experience to grasp all the details involved.
Kind of. But it's not too difficult to understand once you've got a basic understanding of all the articles at www.blurbusters.com/area51 which is still easier to study than say, first-year University math. Then begin to understand the scan conversion thing at Quick Frame Transport, especially fixed-scanrate LCDs versus variable-scanrate LCDs (why certain 240Hz LCDs have high 60Hz latency).

Then you understand there's two separate scanouts involved -- the signal scanout -- and the panel scanout -- and they can be different velocities. And scan conversion becomes necessary, which means buffering a different-speed scanout (signal to display memory), then played out to the display pixels at a different scanout velocity (display memory to actual pixels).

Then, you simply picture DLP projectors as ultra-high-Hz 1-bit 1440Hz displays that needs to buffer a slow-scanning signal (60Hz, 120Hz, 240Hz) before the DLP projector electronics can begin refreshing at 1440+ 1-bit refresh cycles per second.

A minimum of 1440 refresh cycles is needed for DLP to generate 24-bit 60Hz, because 60 x 24 = 1440. And as a result, DLP scanout is ultrafast sweeps (1/1440sec) too fast for anything but an expensive Phantom Flex camera to capture.

For a typical consumer camera/smartphone, you can essentially only capture aggregate behaviors (like VSYNC OFF tearing) by having camera exposures equalling a refresh cycle.

One of your band-aid DLP latency solution to scan conversion latencies and the latency gradient (asymmetries in top/center/bottom), is to speed up the signal-side of thing closer to the DLP scanout speed. Such as the 240Hz Optima (inexpensive) or the 480Hz Christie (expensive).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 13 Jun 2021, 17:37

Wow, thanks so much for your reply.

Picturing the DLP as an >1.4KHz Display that has to buffer a whole frame and thus adding 1/60Hz really helps in understanding. This also means that every DLP will have at least an input lag of 1/(Refresh Rate)? If my projector is 60Hz and has a 6 segments on the color wheel, does this mean that the DLP chip must operate at 60Hz*6 Segments*8bit = 2.88KHz? Essentially for every position on the color wheel the DLP will temporally dither over the 8 bits?
The www.testufo.com/scanout is useless without a camera capable of 1000fps -- try a Samsung Galaxy S9, S10 or S20 in Super Slo Mo mode.
For a commodity consumer camera or smartphone to properly capture a DLP projector and its tearlines, you MUST configure camera exposure to EXACTLY the refresh cycle or a multiple thereof (e.g. 1/60sec camera exposure for a 60Hz refresh cycle, or 1/120sec camera exposure for a 120Hz refresh cycle).


I already used a Note 10+ in SuperSlo Mode, but I am not sure how to sync Windows Hz, Test UFO Hz and Camera. Camera is supposedly fixed at 960fps in SuperSloMode but VSYNC OFF in Chrome runs of at 2500Hz and neither the max frame rate in NVIDIA control panel nor the max-gum-fps setting in Chrome has an effect. Should I replace the rAF in Test UFO Hz with a custom setTimeout?

But even if I had all these in sync, I still don't understand how the DLP would be able to create tearlines in VSYNC OFF when they apparently have their own additional buffer set before - or why (if they do have tearlines) I was not able to catch any of them in the current camera@960fps, Chrome@2500Hz recording setup. Is the scanout test page the wrong one to use (is scanskew better suited for my scenario?) Could you help clarify?

Thanks again for sharing your knowledge, already learned a lot.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by Chief Blur Buster » 13 Jun 2021, 17:50

LagIsTooDamnHigh wrote:
13 Jun 2021, 17:37
I already used a Note 10+ in SuperSlo Mode, but I am not sure how to sync Windows Hz, Test UFO Hz and Camera. Camera is supposedly fixed at 960fps in SuperSloMode but VSYNC OFF in Chrome runs of at 2500Hz
Whoa, stop it there. Don't do that.

TestUFO is currently designed to only work with VSYNC ON

It's non-sequitur. You're doing something like 2+2=5. By writing like that, you're doing things like mixing up biology and geography.

VSYNC OFF is not a Hz, and VSYNC OFF is frameslices only at the signal level, and you can capture 2500fps VSYNC OFF only via a 1/60sec exposure on a 60Hz frame! Even though you'd have to use different software (like a game) to reproduce this, since TestUFO is not currently useful for testing VSYNC OFF physics because of how web browsers are designed for VSYNC ON. It sounds like you don't understand VSYNC OFF physics fully yet.

Please fix TestUFO so it runs VSYNC ON. I can't help you until you do correct science & physics.

Note: TestUFO Hz may incorrectly guess Hz with VSYNC OFF. This Hz information is fake/false because TestUFO is designed only to work with VSYNC ON. Don't get misled by this.

Can you please go back and re-read and heed my advice:
Chief Blur Buster wrote:
13 Jun 2021, 16:44
RealNC wrote:
13 Jun 2021, 16:08
It's complicated with applications that don't have a true fullscreen mode. Not sure if browsers do that now or not. But you can try and find the application profile of your browser in the nvidia control panel's 3D settings. Find the entry there for Chrome or Firefox (or whatever browser you're using) and see if vsync is forced there for that profile. Force it to off, restart the browser, and see what happens.
RealNC is right, since this distorts testing as TestUFO is designed for VSYNC ON browsers.

Do this, don't use VSYNC OFF with browsers. Fix TestUFO first before reading the below. TestUFO problems are unrelated to DLP. Make sure TestUFO Hz equals Windows Hz. Then once you fixed that, read onwards:
Once you've fixed TestUFO, you can more properly attempt to capture DLP behaviors via TestUFO.

However, 960fps high speed camera mode will still be subject to the temporal dithering behaviors of a DLP, so it's only academically useful for understanding some concepts of the DLP like how it outputs 1-bit refresh cycles.

If you do a close-up of 960fps filming of the pixels filming certain solid colors, you'll see how DLP flashes off pixels for the greyscale colors, while keeping pixels mostly continuously on for near-white colors, and mostly continuously OFF for dark colors/black. It'll still flash red-green-blue-red-green-blue due to the color wheel (possibly as bands, due to the color wheel seam interacting with the camera sensor scanout) -- but you'd see evidence of the 1-bit behavior of a DLP. 960fps may capture two or three 1-bit refresh cycles so you might see some minor greyscaling, but you'd still see the exposures are pretty much mostly 1-bit.

Now if you were lag debugging a DLP, you can split a signal to a LCD while displaying a small DLP image on an adjacent wall (or a distant screen further back from the monitor). Kind of like the SMTT technique.

You won't be able to do any further lag-improvement with your BenQ, and your solution may involve purchasing a different DLP as a latency solution.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 13 Jun 2021, 19:09

Sorry if I am being dense. Just taking a step back here to make sure of some basics.

So TestUFO is broken for the VSYNC OFF scenario, but let's assume we have fixed it or used a different software.

The DLP would still wait 1/60Hz to fill up its internal, additional framebuffer, copies it to a second buffer (or multiple buffers corresponding to each segment of the color wheel and brightness/duration), and over the next 1/60Hz wiggle its mirrors at 2.8KHz (60Hz*6Segments*8Bits*1revolution) to temporally dither whatever color is currently on the color wheel. So during these second 1/60Hz the data in the "second buffer(s)" doesn't change and the data being displayed at different position on the color wheel are only of different colors/brightness, but not different in content (in comparison to what was gathered in the first 1/60Hz). Using a 960fps camera I can see the different colors of the colorwheel but I won't see how the mirrors change orientation between frames because this happens too fast (2.8KHz).

In the meantime, the DLP has gathered the next 1/60Hz worth of data from the signal in its first buffer, copies it to the "second buffer(s)", and we repeat.

In this scenario, no tearlines would be generated while a frame is being "painted/accumulated" (i.e. during one spin of the color wheel). The only scenario in which tearlines would be visible is if the DLP (while waiting 1/60 Hz to fill up its internal framebuffer) was already being presented with multiple frames. So if VSYNC OFF is off and I present at 4x60Hz the DLP might gather 4 or 5 different frames during the 1/60 Hz to fill up its first internal framebuffer, but then that "picture" (with the tearlines) is frozen for the next 1/60Hz. In fact, presenting at 4x60Hz with VSYNC OFF means that there never is any "complete" frame without tearlines.

Which means that running VSYNC OFF at high framerates can improve latency, but can never be below 1/60Hz because updates during the current spin of the colorwheel won't be visible until the next revolution.

And I can't see evidence of multiple frames being collected in the DLP's "first framebuffer" because of an issue with TestUFO/Browser/VSYNC behaviour?

Is this understanding correct so far?

Thanks again for your help.

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 14 Jun 2021, 10:13

So I wrote my own program to test the tearlines. It updates at 480Hz and shows a red vertical line going left/right and blue horizontal line going up/down.

This is what I get on the DLP projector (please ignore the the rgb cross in the center top):
20210614_170423.jpeg
20210614_170423.jpeg (613.26 KiB) Viewed 2995 times
What confuses me is how is the DLP monitor able to show straight vertical lines? If the signal on the cable is at 60Hz, but VSYNC is OFF, and I present at 8x60Hz = 480fps, then the DLP should never be able to retrieve a picture with completely straight lines. So the GPU has to transfer the signal faster than 60Hz for the DLP to do this and the DLP is essentially always getting pictures with completely straight lines?
Last edited by LagIsTooDamnHigh on 16 Jun 2021, 08:20, edited 2 times in total.

LagIsTooDamnHigh
Posts: 10
Joined: 13 Jun 2021, 08:18

Re: Unable to reduce input lag with VSYNC OFF and uncapped FPS with DLP projector.

Post by LagIsTooDamnHigh » 16 Jun 2021, 06:42

I added frame numbers to my testing program.
Result: What I identified as tearlines earlier one is just the pixel response of the LCD.
Screenshot 2021-06-16 at 13.34.46.jpg
Screenshot 2021-06-16 at 13.34.46.jpg (111.87 KiB) Viewed 2895 times
On both LCD/DLP there are no tearlines visible that are caused by the higher framerate. The reason I don't see what I mistook as tearlines on the DLP is because its "pixel response" is practically instant.

So Windows is somehow buffering complete frames every 16ms instead of pushing them out as they come (8x60fps = 480fps), despite Vertical Sync Off and Triple buffering Off in the NVIDIA control panel (probably because of Windows DWM triple buffering?)

If I run the same exact program on Mac with disabled VSYNC, the result is what I would have expected (pixel response at the top, tearlines in the rest):
Screenshot 2021-06-16 at 13.33.38.jpg
Screenshot 2021-06-16 at 13.33.38.jpg (124.81 KiB) Viewed 2895 times

Post Reply