Bug 26350

Summary: Single corruption (artifacts) on engine reclocking
Product: DRI Reporter: Rafał Miłecki <zajec5>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: NEW --- QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Switch AtomBIOS parser to udelay
none
Switch engine clock setting to registers operations
none
Full results of my speed test none

Description Rafał Miłecki 2010-01-31 09:17:09 UTC
Engine reclocking is too slow and so artifacts are visible when it happens. We need to make it faster.
Comment 1 Rafał Miłecki 2010-01-31 09:28:14 UTC
Created attachment 32948 [details] [review]
Switch AtomBIOS parser to udelay

Dave noticed we lost a lot of time when sleeping in AtomBIOS. Switching to udelay drastically improves this.
Comment 2 Rafał Miłecki 2010-01-31 09:30:52 UTC
Created attachment 32949 [details] [review]
Switch engine clock setting to registers operations

It may be good idea to perform sensible operations manually, without parsing AtomBIOS commands. Unfortunately it needs rewriting AtomBIOS code for each GPU generation.
Comment 3 Rafał Miłecki 2010-01-31 09:39:33 UTC
Created attachment 32950 [details]
Full results of my speed test

Currently reclocking engine takes averagely .005152s. That's way too long.

Using Dave's patch I went down to averagely .000287s.
With registers patch went down to averagely .000267s.

Using both patches gave even nicer result:  .000185s.
Both + my patch hacked (to use "while" op): .000177s.

In every case corruptions were gone.

About hacked version of my patch, I switched to using "while" (just like AtomBIOS does) instead of waiting in "for" for bit in 0x600.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.