This adds dynamic engine reclocking when engine doesn't work too much.

I calculate amount of not processed commands using fences. If that is
0, I set planned action to DOWNCLOCK with some delay. If that amount
is bigger than 3 (just some my guess) i set planned action to UPCLOCK
(with delay).

This keeps my engine downclocked when just using KDE or even starting glxgears.

When playing openarena this upclocks my engine. I didn't notice any
serious regression in openarena demo (I don't cound 0.5FPS drop).

Please try this patch and developers please comment. After applying
this you have to load radeon module with parameter dynclks
modprobe radeon dynclks=1

To confirm you applied patch, recompiled kernel and used parameter try:
dmesg | grep "dynamic"

TODO:
- calculate minimum engine clock using AtomBIOS data
- avoid ~10 horizontal black lines when reclocking

LATER:
- wait for IRQ support, add memory reclocking
- add voltage changing
- consider other heuristics (more aggressive reclocking?)

-- 
Rafał

Attachment: 0001-drm-radeon-kms-pm-add-non-aggressive-dynamic-engine-.patch
Description: Binary data

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to