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.