DMDX Help.


Relaxed Raster Tracking

    So in order to track the raster and have tachistoscopically accurate millisecond RTs DMDX hammers the raster status for a few milliseconds each retrace interval however some time around the introduction of Windows 8 certain machines started blocking DMDX for some time ranging from fractions of a second to minutes at a time depending on idiosyncratic features I've yet to nail down (most likely overheating).  DMDX detects this and when it does it switches to relaxed raster tracking.  When relaxed raster tracking is active after each poll of the raster status the thread polling the vertical blank status will sleep for a time rather than immediately testing it again which will hopefully stop pathetic machines like Microsoft's Surface Pro series (or HP Envy things) from overheating while running full bore DMDX as it hammers the vertical blank status while not completely sacrificing synchronization with the raster.  The first time DMDX gets blocked for a second it will sleep for 1 millisecond each time it polls for the raster, each successive time it gets blocked it doubles the sleeping interval and will keep doing so till it's sleeping for more than half the retrace interval at which time it will switch to simulating the retrace (in which case you probably want to give serious thought to purchasing an adaptive sync setup and using DMDX's freesync video mode).  As of DMDX 6.3.2.0 this relaxed raster status now gets written to the registry so when the next job is run DMDX won't have to make the subject wait through a block before it dials back the polling.  Each time DMDX runs a job it loads the previous relaxed raster status and halves it so that if a machine momentarily needed much more relaxed polling there's a chance DMDX will dial it back and find a setting that the machine can handle -- DMDX however never goes back to full on hammering as 1 ms polling does a pretty good job.  When using test mode 1 you'll see a lot more retraces timed out and multiply timed out ones as well however there are still enough hits (at least on my machine) to maintain sync with the raster (these days you can easily see this by hitting the Introduction button on the main DMDX dialog and using T to get to the test mode section of it where the first test is test mode 1, no item file needed).  Test mode 1 now has a line indicating whether the raster is being tracked relentlessly like normal or whether it has switched to relaxed mode.  Display errors also indicate if the retrace tracking is relaxed as well and if your machine is so crappy DMDX has switched to simulating the raster you'll get a warning (as of version 6.3.5.1) in the diagnostics and data file.

    BTW if you suspect your machine is one of those that overheat (or whatever it is) when running DMDX you're more than welcome to download and run the raster status test, maybe I'll learn something more (you will have to click through the Windows protection dialog with the More Info option and then the Run Anyway command that you might have to scroll to the right to see): https://psy1.psych.arizona.edu/~jforster/dmdx/rastertrackingtest.exe

    Relaxed raster tracking can also be used to squeeze a bit more performance out of a machine should it be doing something particularly intensive like rendering 60 Hz HD video or running an eye tracker on the same machine as DMDX is running on.  Here you either have to manually invoke the mode with -ez -auto on the command line or use test mode 18 once, after that (assuming you're using DMDX 6.3.2.0 or later) because it's written to the registry that instance of DMDX will forever use relaxed raster tracking -- at least until the SOFTWARE\DMDX\5\RelaxedRT registry key gets nuked or you use test mode 18 enough times that DMDX reverts to full on hammering of the raster status.  For instance running this item file and responding with a positive response to the more? prompt until you see "Retrace tracking is relentless" in the test mode 1 display then exiting will turn relaxed raster tracking off without the peril of using a registry editor:

f20 <cr>
0 "relaxed raster tracking test" <bu 0>;
11 "test mode 18" <testmode 18> /;
0 "test mode 1" <testmode 1>;
+1 "more?" * <bic -11>;
0 "end";


    Note that if you really need millisecond accuracy (say you're sending codes to another machine) and your machine has to use relaxed raster tracking and it's a desktop computer buying an AMD FreeSync or NVidia GSync monitor and a compatible video card and using DMDX's freesync video mode will likely yield more accurate millisecond synchronization than DMDX's regular raster tracking even under the best of circumstances.





DMDX Index.