Topic Title: Documentation for Catalyst/Driver Registry Configuration
Topic Summary: Looking for information to help with tweaking for low-latency
Created On: 03/20/2013 06:50 AM
Status: Post and Reply
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
View similar topics View similar topics
View topic in raw text format. Print this topic.
 03/20/2013 06:50 AM
User is offline View Users Profile Print this message

Author Icon
C0932
Peon

Posts: 3
Joined: 03/20/2013

Over the years as driver suties and Windows components have gotten more complicated and as input devices have gotten upwards of 8000 dpi, I have been noticing significantly more latency from the mouse, keyboard, and monitor.  For over 9 months I have been working to address these problems and while the overwhelming majority are flaws with Windows, .NET framework, and VC++, I have also looked into trying to streamline the configuration of the Catalyst drivers under Windows.  

What I have been unable to find is documentation about all the little curious registry entries under both HKLM/SYSTEM/CurrentControlSet/services/amdkmdag and HKLM/SYSTEM/CurrentControlSet/Control/Class/{Device GUID}/0000

While I appreciate that these drivers come pre-configured for performance, in FPS games, tweaking for better responsiveness of the controls may be more important than more typical measures of performance.  Factor in that a number of Windows features do not work as intended and simplifying the graphics drivers can be an important step in mitigating some of the Windows bugs, the effects of which become compounded by latency or any unnecessary handling of desktop/UI features.

I'm interested in any documentation for the variables in the registry in the two locations described above. I'm particularly interested in how/where things like FlipQueue are configured and anything related to the hardware acceleration of the cursor, desktop, or any other Windows UI components.  

 

Also if it is possible, I'm curious to know: 

- Why many of the configuration settings are duplicated between both keys

- Why some drivers are listed in trplicate, e.g. the Usermode driver entries

- Why the entry for InstalledDisplayDrivers also lists these .dlls repetitively

- Why the display adapter is cloned 5 times in the machine key

 

After 9 months of testing I've managed smooth out many of the kinks causing issues with input latency/corruption within Windows and on a system I have configured with my fixes, I find that reconfiguring the registry entries for the Catalyst driver to only list the driver for the actual adapter under Control/Class/{GUID}/0000/Settings gives by far the most immediacy and accurate translation of mouse input -- that is, I remove all duplicate listings of the .dlls and for the InstalledDisplayDrivers entry I list only 'atikmpag'.  Note that depending upon the Windows version and certain installed components, changing the start parameter of the amdkmdag and amdkmdap driver services to System start rather than Demand can also significantly improve input consistency.

 

I'm anxious to continue my work and would be very appreciative if anybody could point me to any such documentation or help explain the configuration of the drivers in the Windows registry.

Thanks!

 03/20/2013 08:43 PM
User is offline View Users Profile Print this message

Author Icon
Eydee
Dungeon Master

Posts: 4277
Joined: 12/27/2008

I suggest you try contacting Ray Adams, the creator or AtiTrayTools. He has years of experience of these settings. You won't get an official answer from AMD, that's almost sure.

As for input lag, usually it's caused by vsync. If you turn it off, the lag disappears.



-------------------------

CPU: AMD Phenom II X4 810 @ 3250MHz | RAM: Kingmax 2x2GB DDR2 800 @ 833MHz| MoBo: MSI K9A2 CF v1.0 (BIOS: 1.D)| GPU: Asus HD 6850 1024MB (DirectCu) @ 850/1150MHz | Display: L24FHD | PSU: PC Power & Cooling Silencer 750 Quad | OS: MS Windows 7 Pro x64

CPU: Pentium 4 Northwood S478 @ 3200MHz | RAM: 1,5GB DDR 400| MoBo: Gigabyte GA-8S661FXMP-RZ | GPU: ASUS Radeon X1650 Pro 256MB | Display: Dimarson 19" CRT | PSU: Noname 400W | OS: changing twice every week...

 03/20/2013 10:45 PM
User is offline View Users Profile Print this message

Author Icon
black_zion
Nanotechnology Guru

Posts: 11580
Joined: 04/17/2008

Or your monitor if it uses an "accelerator" or "overdrive" mechanism to artificially reduce response time.

-------------------------
ASUS Sabertooth 990FX/Gen3 R2, FX-8350 w/ Corsair H60, 8 GiB G.SKILL RipjawsX DDR3-2133, XFX HD 7970 Ghz, 512GB Vertex 4, 256GB Vector, 240GB Agility 3, Creative X-Fi Titanium w/ Creative Gigaworks S750, SeaSonic X750, HP ZR2440w, Win 7 Ultimate x64
 03/21/2013 04:55 AM
User is offline View Users Profile Print this message

Author Icon
C0932
Peon

Posts: 3
Joined: 03/20/2013

Thanks for trying to be help but I'm well beyond looking at vsync or monitor settings.  The testing I've done has been with 6 different editions of windows and multiple monitors, AMD cards from multiple vendors on multiple motherboards, and I've put nvidia cards in too to test. 

The bulk of the problem comes down to the fact that the way NT-based versions of Windows (which includes every release in the last 12 years) work is that for a session multiple users are logged on - your user profile, as well as profiles for the main system profile, network, and service accounts.  And since Vista, drivers run in a separate session from your user evnironment entirely, in Session0 (your desktop/applications run in Session1).  This is handled like a terminal server / remote desktop connection, and if you poke around even on mobile editions of Windows you'll see it's technically a 'server' deployment.  The problem is that this isn't exactly done right and drivers and their buffers aren't separated cleanly, and desktops (which you don't see) for the built-in system accounts are also interacting with drivers.  And another problem is that all of these desktops including 'your' basic user desktop are also being handled by a sort of dummy video device and driver called TSDDD, which you cannot disable.  The boot environment will hang up if you try to get rid of this, which is called Terminal Services Display Device something-or-the-other but is actually a framebuffer of some sort.  Keep in mind that early DirectX moved handling of some input (e.g. cursor) to be accelerated by the video driver and having multiple active display drivers linked to multiple desktops is really a mess.

 

Believe me I haven't spent 9 months plugging away at this because I don't have the sense to turn Vsync off.   Most people, even competitive gamers, don't realize how much the lag and input distortion has increased.  I have tested this by running 32-bit XP SP1 and 64-bit Windows 7 on identical hardware (clean installs) and the immediacy of input on XP is just miles better.  I think it drives me crazy more than most because I had been a high-ish level competitive gamer for the better part of a decade and I play at very high sensitivity.  I currently use 8200dpi and only play against other competitive players. And trust me, the lag and distortion is appreciable. I can certainly tell you that if you know how rip into Windows and tweak around some of the major bugs and redundancies, high grade gaming mice are capable of far more accuracy than most people would believe playing on their standard installs.

 


On the subject of Ray Adams, it is my understanding that he has not been actively developing for quite some time, and given that almost nothing in the registry in Catalyst 13.X is as it was back when he was still working on Tray Tools, I'd hate to sweat him for information.

This isn't a matter of 'I want MY computer to run better' this is a matter of 'because of my experience with gaming and hardware over the years, I can attest that without a doubt certain things REALLY are not working right as far as Windows is concerned'

If anybody, especially AMD devs, could give me a major break and help me out with giving me a little info on the current configuration of the many Catalyst bits and pieces,I would just be elated.  I could put down pages and pages of my testing/observations of all the strange things and a few outright errors I've found in Windows as I've worked on this and all that is up for grabs, all I'm asking for is a tiny bit of documentation.  

 

Again, let me point out that I'm not hunting for problems in the Catalyst drivers, but rather, because of some peculiar things I've found with Windows there may be slightly better ways to configure the drivers that help circumvent the lousy input and video handling present in recent Windows releases.  The end result of this, I hope, is a driver configuration/profile aimed at competitive gamers.  I've neared the end of what I'm able to do as far as modifying Windows and the input stacks themselves, I'm just trying to make sure that there is minimal lag in the video driver stacks as well, which hasn't been noticed due to there already being so much lag and pollution of the mouse input.

 03/24/2013 03:05 AM
User is offline View Users Profile Print this message

Author Icon
C0932
Peon

Posts: 3
Joined: 03/20/2013

In the last two days I have found and disabled the last remaining problems for the mouse input, which were a few software buffers, event collectors, and an outdated plug-in for MouseKeys which was always active at the driver level.  Apart from distorting the mouse input data, since these software filters were part of the UI and user32 API, the synchronization of the input was more or less bound to these.

With these filters no longer affecting the driver, the effects of Catalyst's configuration became more apparent.  I got simply incredible results by tweaking Catalyst settings to avoid any unnecessary processing and to handle various other things at the hardware level.  Some of the most important settings to change were ATMS_DEF, CFM_DEF,  DisableTiling, DisableDmaCopy, and Main3D_DEF.  Other than that turning off renderer functions and support for video processing vastly improved input synchronization.  I have not seen input-to-3D synchronization this fluid and responsive in recent years. My next step is to test my Windows configuration fixes on a clean install using an nvidia card and the latest geforce drivers to compare.

At this point I think I have mostly concluded my project.  Without any help on more advanced methods of configuring the Catalyst drivers beyond just tweaking the Windows registry, this is as far as I can take things.  Still, the results are pretty remarkable and my findings are available to the AMD devs upon request.   

 

I strongly reccommend that for the next Catalyst release that the profiler includes settings for running the graphics driver stack as cleanly as possible with minimal software or user-mode handling -- the difference for high-resolution gaming mice with high polling rates is quite dramatic.

 03/24/2013 05:30 AM
User is offline View Users Profile Print this message

Author Icon
Eydee
Dungeon Master

Posts: 4277
Joined: 12/27/2008

Originally posted by: C0932  Still, the results are pretty remarkable and my findings are available to the AMD devs upon request.   

 

 

 

I strongly reccommend that for the next Catalyst release that the profiler includes settings for running the graphics driver stack as cleanly as possible with minimal software or user-mode handling -- the difference for high-resolution gaming mice with high polling rates is quite dramatic.

 

This is still a peer-to-peer community forum, so you're not talking to AMD here. If you want to tell them something, just contact them directly.



-------------------------

CPU: AMD Phenom II X4 810 @ 3250MHz | RAM: Kingmax 2x2GB DDR2 800 @ 833MHz| MoBo: MSI K9A2 CF v1.0 (BIOS: 1.D)| GPU: Asus HD 6850 1024MB (DirectCu) @ 850/1150MHz | Display: L24FHD | PSU: PC Power & Cooling Silencer 750 Quad | OS: MS Windows 7 Pro x64

CPU: Pentium 4 Northwood S478 @ 3200MHz | RAM: 1,5GB DDR 400| MoBo: Gigabyte GA-8S661FXMP-RZ | GPU: ASUS Radeon X1650 Pro 256MB | Display: Dimarson 19" CRT | PSU: Noname 400W | OS: changing twice every week...

Statistics
80979 users are registered to the AMD Support and Game forum.
There are currently 0 users logged in.

FuseTalk Hosting Executive Plan v3.2 - © 1999-2014 FuseTalk Inc. All rights reserved.