Subversion Repositories Moxba-Metrex.metrex

Rev

Blame | Last modification | View Log | Download

SetRefresh 1.2 ReadMe                                         December 5, 2003


================================================================================
          Overview
================================================================================

SetRefresh is a utility which attempts to optimize the monitor's refresh rate,
and in some cases the  resolution, for the best user experience.  It does this
by querying the capabilities of the display adapter and the monitor.  The first
time a given monitor and display adapter combination is detected, SetRefresh
will set the mode to the preferred timing mode specified by the monitor, if
one is specified in the monitor's EDID.  If no preferred timing mode is
specified, SetRefresh will only try to optimize the refresh rate.  If a monitor
and display adapter combination has been previously optimized, SetRefresh will
determine if the current resolution and color depth combination is one which has
not been previously optimized.  If so, SetRefresh will try to optimize the
refresh rate (the resolution will not be changed).  SetRefresh optimizes the
refresh rate by selecting the highest refresh rate both the display adapter and
the monitor support for a given resolution and color depth.  Only refresh rates
which the monitor has a preset for will be used.  If SetRefresh cannot
determine what the optimum display mode or refresh rate is or there is any
unexpected condition, then it will simply do nothing.

SetRefresh has no user interface, so other than the display changing modes or
refresh rates, there will be no user interaction.  The user will never be
prompted for input or see anything other than the monitor's refresh rate, and
possibly resolution, changing.

SetRefresh is run every time a user logs in. It does not stay resident in system
memory.  Once it has completed, SetRefresh will exit.  It will, however, wait
for any Windows  Plug and Play (PnP)  enumeration to complete before it
executes.  If PnP has not completed within 10 minutes, SetRefresh will exit with
out doing anything.  Any optimizations will occur on the next login.

If the user overrides a setting made by SetRefresh by changing the mode or
refresh rate, the user's setting will not be overridden by SetRefresh.  Note
that changing the color depth selects a new mode  and SetRefresh will attempt
to optimize the refresh rate.


================================================================================
          FAQ
================================================================================

Q: Why didn't SetRefresh optimize the refresh rate which I logged out and back
   in after selecting a new resolution?
A: You selected a resolution for which the monitor doesn't have a preset.
   SetRefresh will only select monitor presets unless the -p option is used.
   If the -p option is used, SetRefresh will select the highest refresh rate,
   for the current mode, the monitor and display adapter can both support.

Q: Why wasn't the monitor's preferred timing selected when it was first attached
   to the system?
A: The monitor's preferred timing is not listed in its presets.  To enable the
   preferred timing to be selected even when the timing is not specified as a
   preset, the -p option must be used the first time the monitor is detected.
   This can be accomplished by carefully editing the registry key
   HKLM\Software\Microsoft\Windows\CurrentVersion\Run\SetRefresh to add the -p
   option to the value (damaging the registry can prevent your machine from
   working so don't edit the registry unless you know what you are doing).
   Future automatic monitor optimizations will use this setting.  For
   combinations which have already been optimized, manually set the resolution
   to the one specified in the preferred timing and manually run SetRefresh with
   the -p and -f options to automatically optimize the refresh rate.

Q: Under what conditions will the resolution be changed instead of just the
   refresh rate?
A: The resolution will only be changed if all of the following conditions are
   met:
     1. It is the first time SetRefresh has seen a specific monitor and display
        adapter combination.
     2. The monitor has a preferred timing specified.
     3. The preferred timing is listed in the monitor's presets (as specified by
        the established and standard timings sections of the EDID), unless the
        -p option is used.
     4. The display adapter can support the preferred timing mode.
     5. The mode is in the range which Windows believes the monitor can support
        (see the next question).
   In all other cases, only the refresh rate will be changed.

Q: Why doesn't my monitor get set to its preferred timing and why don't all of
   the modes my monitor is capable of supporting get listed in the Windows
   Display Properties Page?
A: When a monitor with an INF file is installed in Windows, the operating
   system (OS) uses the information in the INF file to determine which modes the
   monitor supports.  Rather than using the horizontal and vertical sync ranges
   specified in the monitor's INF file and directly comparing them to the
   required rates for a specific mode, Microsoft introduced a factor into the
   calculation which effectively requires a monitor's range limits to exceed the
   required rates by a specified amount.  For example, the 1280x1024@75 Hz mode
   requires a horizontal sync rate of 79.9 kHz.  If the monitor's INF specifies
   the supported horizontal sync range as 31.5-80 kHz, the OS should allow the
   mode to be selected.  In fact, the OS requires the range to be specified as
   31.5-83 kHz in order to allow the mode to be selected.  This behavior is
   documented in Microsoft KnowledgeBase article KB309569.

   The INF file could be changed to indicate the larger range limits; however,
   Windows Hardware Quality Lab's (WHQL) certification requires the monitor's
   INF file to match the data provided in its EDID.  This would work around the
   behavior in Windows  but since other operating systems, which perform a
   direct comparison, rely only on the EDID, changing the EDID and INF to
   report the larger range could result in other operating systems attempting to
   set modes outside of the monitor's actual range limits.  That could result in
   a loss of the display image and, potentially, permanent damage to the
   monitor.

   Alternatively, if the monitor's INF file is deleted and the monitor is
   re-enumerated (which would require the monitor first be removed using the
   device manager), the OS will allow all of the monitor's supported modes.  The
   downside is that some monitors (those without an ASCII name descriptor) will
   be listed as a Play and Play Monitor while others (those with an ASCII name
   descriptor and a serial number descriptor) will be listed as a combination of
   the name and the serial number (e.g. a Compaq P110 with S/N A12345678F would
   be listed as Compaq P110 A12345678F Monitor).

Q: If I change the color depth, will the refresh rate change?
A: In most cases no, but some adapters have limitations on the refresh rate at
   their highest resolutions and color depths.  When such a resolution is
   selected and the color depth is changed, the refresh rate may be changed to
   match what the adapter is capable of supplying.

Q: Can I force SetRefresh to optimize the display even if it did it previously?
A: Yes, run SetRefresh with the -f option to force optimization.  This does not
   cause SetRefresh to ignore the flag which indicates that a specific monitor
   and display adapter configuration has been seen so using this option will
   not determine whether the resolution is changed or not.  In fact, it is
   superfluous.   The first time a new combination is seen, it will be
   optimized, so no -f option is needed.  Subsequent executions of SetRefresh
   will not change the resolution.  The -f option is intended to allow users
   who manually overrode the refresh rate setting SetRefresh selected, to
   automatically set the refresh rate to the original optimal setting.

Q: How do I get debug information to determine why a certain mode was selected?
A: Run SetRefresh with the -d option to generate a setrefresh.txt file in the
   same directory as the executable.

Q: How do I uninstall SetRefresh?
A: Login into an administrative account and run SetRefresh with the -u option to
   remove all registry entries associated with SetRefresh.  Note that the
   SetRefresh.exe file and the directory it is in are not deleted so this is
   not the same as removing SetRefresh using Add/Remove Programs.

   If you run SetRefresh with the -u option from a restricted account, it will
   delete all of the current user's registry keys but it won't delete the entry
   in the Run key, the software installation key, or any other users' keys.

   SetRefresh can also be removed by using the Add/Remove Programs utility in
   the Windows control panel.  This will remove all registry entries, the
   executable, and the directory it is in.  The entry in the Add/Remove
   Programs list will only be preset if SetRefresh was installed using the
   SoftPAQ.  If SetRefresh is preinstalled, it will not create an Add/Remove
   Programs entry.

Q: How do I install SetRefresh?
A: The SoftPAQ will automatically install SetRefresh when it is run. However,
   to install it without the SoftPAQ, login to an administrative account, copy
   the executable into a directory on the hard disk, and run SetRefresh with
   the -i option.  This will install SetRefresh into the Run key so it is
   executed at each login.  It will also install the software key which
   indicates SetRefresh is installed and which version is being used.  This will
   not create an entry in the Add/Remove Programs list.

   If the -i option is used in a restricted account, no changes will occur.

Q: In Windows 2000(tm) and Windows XP(tm), when SetRefresh changes the
   resolution, color depth, or refresh rate of the administrator, why does my
   restricted (user) account changes as well, and vice versa?
A: Windows 2000  and Windows XP  use the Administrator's mode settings for
   restricted (user) accounts.  A change in either the Administrator's account
   or a restricted (user) account will be reflected in the other account.
   SetRefresh does not alter this behavior.


================================================================================
        Optional Switches
================================================================================

The following optional switches can be used to adjust the operation of
SetRefresh.  When SetRefresh runs at login, none of these options are selected.
In the SoftPAQ installation, clicking on the menu entry will run SetRefresh
with the -f option.  The option switches are not case sensitive.

-d  This is used to enable the generation of a file with debug information
    regarding the display adapter and monitor. It will generate a filed named
    SetRefresh.txt in the same directory as SetRefresh.exe.

-f  This is used to force the optimization to be done, even if the monitor has
    been previously optimized or the settings have been modified by the user.
    SetRefresh will not override the user's settings unless it is run with this
    option.

-i  The SoftPAQ will automatically install SetRefresh when it is run.  This
    option is used to install SetRefresh without the SoftPAQ. It will install
    SetRefresh into the Run key so it is executed at each login.  It will also
    install the software key which indicates SetRefresh is installed and which
    version is being used.  This option must be run from an administrative
    account.  If it is used in a restricted account, it will do nothing.

-p  This is used to make SetRefresh optimize the refresh rate for the current
    display resolution even it this resolution is not a preset mode for the
    monitor.  Normally only presets are selected so the user is guaranteed to
    get a display which is properly centered and sized.

-u  This is used to uninstall SetRefresh.  If it is used by a restricted
    account, it will only remove the optimization flags for the current user.
    If it is used by an administrative account, it will remove  optimization
    flags for all users, the software key, and the entry in the Run key.  It
    does not delete the executable or the directory it is in.