Try rebooting
I wish the forum would allow me to specify my technical knowledge as part of my system specs. In other words, I'm not a computer noob (computer engineer), so of course I tried rebooting. The AMD dual-core optimizer process shows up as part of the startup tasks in msconfig, but just isn't running in Task Manager or Process Explorer. I also tried starting it manually from a command prompt window and got no error messages and again it doesn't show up in Task Manager or Process Explorer.Try rebooting
This is a very interesting find. I was unable to get rid of tearing with RMClock or the AMD Dual-Core Optimizer. I also was unable to turn on the Aero theme because I have a vLite modified Vista install. I finally figured out how to enable Aero by enabling Windows service "Desktop Window Manager Session Manager".I find out a way to solve Evr tearing under Media Portal.
On my htpc I 've an Asus 2600 PRO I had tearing without Aero and stuttering with Aero active.
I guess the problem is related to Catalyst overdrive features.
Ati Overdrive reduce automaticly core gpu clock and memory clock when gpu load is lower than 3 thresold level.
my graphic card in idle run at 110 MHZ for gpu and 252 MHZ for the memory. max in 500/600.
When a file is play (both is sw or dxva/hw mode) the gpu load is too much low so Ati Overdrive do not increase
to next thresold.
I've created an utility AutoIt script based to change the thresolds
http://www.4shared.com/file/3461972...ystGPUMEMTHRESOLD.html?dirPwdVerified=f1c1905
(only for Catalyst based systems)
I've changed the first thresold to 300/400/1,15V value for GPU,MEM and Voltage (equal to second thresol levels)
now in idle the 2600 pro work three times faster for GPU and almost double memory clock freq. than default
The result is : no tearing with Aero off and no stuttering with Aero active.
I tried with a reference file MKV 25 fps AVC1 with monitor refersh rate at 50HZ and other reference file
MKV 24 fps AVC1 with refresh at 60HZ. back to default the tearing and suttering come back.
The Catalyst beahviour is weird and annoying. Seems not possibile to change this beahviour for example change the load GPU thresold level to pass to upper thresold GPU clock/Memory/voltage ones.
Can MP to solve this comunicating to Catalyst need more power? Catalyst should have an SDK for that.
#include <_XMLDomWrapper.au3>
#include <Array.au3>
#include <File.au3>
$ProfileXMLRoot=@UserProfileDir & "\profiles.xml"
$a = _FileSearch($ProfileXMLRoot,1)
if $a[0]>0 then
$ProfileXML=$a[1]
$filefound=StringInStr($a[1],"profiles.xml",0)>0 and StringInStr($a[1],"ati",0)>0
else
$ProfileXML="not found"
$filefound=false
Endif
if $filefound=false Then
MsgBox(0,"Information", "Catalyst installation has not been found!",10)
Exit;
EndIf
_XMLFileOpen($ProfileXML)
$GPUWant_0=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[1]","value","")
if $GPUWant_0='' Then
MsgBox(0,"Information", "Catalyst installation is present but no Overdrive thresolds feature has been found.",10)
Exit;
EndIf
$MOMPATH=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ATI Technologies\Install\ccc-install","cccroot")
if not FileExists($ProfileXML) or $MOMPATH="" then
MsgBox(0,"Information", "Catalyst installation has not been found!",10)
Exit;
Else
if not FileExists($ProfileXML & ".backup") then
FileCopy($ProfileXML, $ProfileXML & ".backup")
endif
EndIf
_XMLFileOpen($ProfileXML & ".backup")
$GPUWant_0default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[1]","value","")
$GPUWant_1default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[2]","value","")
$GPUWant_2default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[3]","value","")
$MemoryWant_0default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[1]","value","")
$MemoryWant_1default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[2]","value","")
$MemoryWant_2default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[3]","value","")
$VoltageWant_0default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[1]","value","")
$VoltageWant_1default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[2]","value","")
$VoltageWant_2default=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[3]","value","")
_XMLFileOpen($ProfileXML)
$GPUWant_0=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[1]","value","")
$GPUWant_1=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[2]","value","")
$GPUWant_2=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[3]","value","")
$MemoryWant_0=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[1]","value","")
$MemoryWant_1=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[2]","value","")
$MemoryWant_2=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[3]","value","")
$VoltageWant_0=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[1]","value","")
$VoltageWant_1=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[2]","value","")
$VoltageWant_2=_XMLGetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[3]","value","")
;MsgBox(0,"Informazione", $GPUWant_0 & " " & $GPUWant_1 & " " & $GPUWant_2,3)
;MsgBox(0,"Informazione", $MemoryWant_0 & " " & $MemoryWant_1 & " " & $MemoryWant_2,3)
$gui = GUICreate("Change ATI Catalyst Overdrive's GPU & MEM Thresold", 410, 350)
GUICtrlCreateGroup ("", 1, 1, 300, 98)
; 1° GPU THRESOLD
GUICtrlCreateLabel("Core GPU Thresold # 1", 7, 15)
Global $GPUWant_0Value = GUICtrlCreateCombo ($GPUWant_0Default/100, 125, 12, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($GPUWant_0Value,$GPUWant_1Default/100 & "|" & $GPUWant_2Default/100,$GPUWant_0/100)
GUICtrlCreateLabel("Default = " & $GPUWant_0default/100 & " Mhz.", 190, 15)
; 2° FIRST GPU THRESOLD
GUICtrlCreateLabel("Core GPU Thresold # 2", 7, 45)
Global $GPUWant_1Value = GUICtrlCreateCombo($GPUWant_1Default/100, 125, 42, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($GPUWant_1Value,$GPUWant_2Default/100,$GPUWant_1/100)
GUICtrlCreateLabel("Default = " & $GPUWant_1default/100 & " Mhz.", 190, 45)
; 3° FIRST GPU THRESOLD
GUICtrlCreateLabel("Core GPU Thresold # 3", 7, 75)
Global $GPUWant_2Value = GUICtrlCreateCombo($GPUWant_2Default/100, 125, 72, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlCreateLabel("Default = " & $GPUWant_2default/100 & " Mhz.", 190, 75)
GUICtrlCreateGroup ("", 1, 93, 300, 96)
; 1° MEMORY THRESOLD
GUICtrlCreateLabel("Memory Thresold # 1", 7, 105)
Global $MemoryWant_0Value = GUICtrlCreateCombo($MemoryWant_0Default/100, 125, 102, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($MemoryWant_0Value,$MemoryWant_1Default/100 & "|" & $MemoryWant_2Default/100,$MemoryWant_0/100)
GUICtrlCreateLabel("Default = " & $MemoryWant_0default/100 & " Mhz.", 190, 105)
; 2° MEMORY THRESOLD
GUICtrlCreateLabel("Memory Thresold # 2", 7, 135)
Global $MemoryWant_1Value = GUICtrlCreateCombo($MemoryWant_1Default/100, 125, 132, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($MemoryWant_1Value,$MemoryWant_2Default/100,$MemoryWant_1/100)
GUICtrlCreateLabel("Default = " & $MemoryWant_1default/100 & " Mhz.", 190, 135)
; 3° MEMORY THRESOLD
GUICtrlCreateLabel("Memory Thresold # 3", 7, 165)
Global $MemoryWant_2Value = GUICtrlCreateCombo($MemoryWant_2Default/100, 125, 162, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlCreateLabel("Default = " & $MemoryWant_2default/100 & " Mhz.", 190, 165)
GUICtrlCreateGroup ("", 1, 183, 300, 96)
; 1° VOLTAGE THRESOLD
GUICtrlCreateLabel("Voltage Thresold # 1", 5, 195)
Global $VoltageWant_0Value = GUICtrlCreateCombo($VoltageWant_0Default/1000, 125, 192, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($VoltageWant_0Value,$VoltageWant_1Default/1000 & "|" & $VoltageWant_2Default/1000,$VoltageWant_0/1000)
GUICtrlCreateLabel("Default = " & $VoltageWant_0default/1000 & " Volts.", 190, 195)
; 2° VOLTAGE THRESOLD
GUICtrlCreateLabel("Voltage Thresold # 2", 5, 225)
Global $VoltageWant_1Value = GUICtrlCreateCombo($VoltageWant_1Default/1000, 125, 222, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlSetData($VoltageWant_1Value,$VoltageWant_2Default/1000,$VoltageWant_1/1000)
GUICtrlCreateLabel("Default = " & $VoltageWant_1default/1000 & " Volts.", 190, 225)
; 3° VOLTAGE THRESOLD
GUICtrlCreateLabel("Voltage Thresold # 3", 5, 255)
Global $VoltageWant_2Value = GUICtrlCreateCombo($VoltageWant_2Default/1000, 125, 252, 55, 20,$CBS_DROPDOWNLIST)
GUICtrlCreateLabel("Default = " & $VoltageWant_2default/1000 & " Volts.", 190, 255)
GUICtrlCreateLabel("by Red5goahead", 322, 2)
; SALVA
$salva = GUICtrlCreateButton("Save", 75, 310, 90, 25)
; DEFAULT
$default = GUICtrlCreateButton("Default", 220, 310, 90, 25)
GUISetState()
; GUI MESSAGE LOOP
While 1
$msg = GUIGetMsg()
Select
Case $msg = $salva
if MsgBox(1,"Confirmation", "Do you want to proceed to save these settings?", 10)=1 then
; GPU
$Value = GUICtrlRead ( $GPUWant_0Value )
if $Value <> $GPUWant_0 then
if $value>$GPUWant_2Default then
$value=$GPUWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[1]","value",$Value*100)
EndIf
$Value = GUICtrlRead ( $GPUWant_1Value )
if $Value <> $GPUWant_1 then
if $value>$GPUWant_2Default then
$value=$GPUWant_2Default
endif
if $value<GUICtrlRead ( $GPUWant_0Value ) then
$value=GUICtrlRead ( $GPUWant_0Value )
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[2]","value",$Value*100)
EndIf
$Value = GUICtrlRead ( $GPUWant_2Value )
if $Value <> $GPUWant_2 then
if $value>$GPUWant_2Default then
$value=$GPUWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[1]/Property[3]","value",$Value*100)
EndIf
; MEMORY
$Value = GUICtrlRead ( $MemoryWant_0Value )
if $Value <> $MemoryWant_0 then
if $value>$MemoryWant_2Default then
$value=$MemoryWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[1]","value",$Value*100)
EndIf
$Value = GUICtrlRead ( $MemoryWant_1Value )
if $Value <> $MemoryWant_1 then
if $value>$MemoryWant_2Default then
$value=$MemoryWant_2Default
endif
if $value<GUICtrlRead ( $MemoryWant_0Value ) then
$value=GUICtrlRead ( $MemoryWant_0Value )
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[2]","value",$Value*100)
EndIf
$Value = GUICtrlRead ( $MemoryWant_2Value )
if $Value <> $MemoryWant_2 then
if $value>$MemoryWant_2Default then
$value=$MemoryWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[2]/Property[3]","value",$Value*100)
EndIf
; VOLTAGE
$Value = GUICtrlRead ( $VoltageWant_0Value )
if $Value <> $VoltageWant_0 then
if $value>$VoltageWant_2Default then
$value=$VoltageWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[1]","value",$Value*1000)
EndIf
$Value = GUICtrlRead ( $VoltageWant_1Value )
if $Value <> $VoltageWant_1 then
if $value>$VoltageWant_2Default then
$value=$VoltageWant_2Default
endif
if $value<GUICtrlRead ( $VoltageWant_0Value ) then
$value=GUICtrlRead ( $VoltageWant_0Value )
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[2]","value",$Value*1000)
EndIf
$Value = GUICtrlRead ( $VoltageWant_2Value )
if $Value <> $VoltageWant_2 then
if $value>$VoltageWant_2Default then
$value=$VoltageWant_2Default
endif
_XMLSetAttrib("/Profile/Caste/Groups/Group/Feature[3]/Property[3]","value",$Value*1000)
EndIf
; lancio MOM.EXE per fare ripartire il runtime
if MsgBox(1,"Confirmation", "Do you want to restart Ati Runtime?", 10)=1 then
$MOMEXE=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ATI Technologies\Install\ccc-install","cccroot") & "Core-Static\MOM.exe"
$MOMPATH=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ATI Technologies\Install\ccc-install","cccroot") & "Core-Static"
if FileExists($MOMEXE) Then
ShellExecute($MOMEXE,"Restart", $MOMPATH)
EndIf
EndIf
else
exit
endif
Exit
Case $msg = $default
GUICtrlSetData($GPUWant_0Value,$GPUWant_0default/100)
GUICtrlSetData($GPUWant_1Value,$GPUWant_1default/100)
GUICtrlSetData($GPUWant_2Value,$GPUWant_2default/100)
GUICtrlSetData($MemoryWant_0Value,$MemoryWant_0default/100)
GUICtrlSetData($MemoryWant_1Value,$MemoryWant_1default/100)
GUICtrlSetData($MemoryWant_2Value,$MemoryWant_2default/100)
GUICtrlSetData($VoltageWant_0Value,$VoltageWant_0default/1000)
GUICtrlSetData($VoltageWant_1Value,$VoltageWant_1default/1000)
GUICtrlSetData($VoltageWant_2Value,$VoltageWant_2default/1000)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case Else
;;
EndSelect
WEnd
GUIDelete()
Func _FileSearch($szMask,$nOption)
$szRoot = ""
$hFile = 0
$szBuffer = ""
$szReturn = ""
$szPathList = "*"
Dim $aNULL[1]
If Not StringInStr($szMask,"\") Then
$szRoot = @SCRIPTDIR & "\"
Else
While StringInStr($szMask,"\")
$szRoot = $szRoot & StringLeft($szMask,StringInStr($szMask,"\"))
$szMask = StringTrimLeft($szMask,StringInStr($szMask,"\"))
Wend
EndIf
If $nOption = 0 Then
_FileSearchUtil($szRoot, $szMask, $szReturn)
Else
While 1
$hFile = FileFindFirstFile($szRoot & "*.*")
If $hFile >= 0 Then
$szBuffer = FileFindNextFile($hFile)
While Not @ERROR
If $szBuffer <> "." And $szBuffer <> ".." And _
StringInStr(FileGetAttrib($szRoot & $szBuffer),"D") Then _
$szPathList = $szPathList & $szRoot & $szBuffer & "*"
$szBuffer = FileFindNextFile($hFile)
Wend
FileClose($hFile)
EndIf
_FileSearchUtil($szRoot, $szMask, $szReturn)
If $szPathList == "*" Then ExitLoop
$szPathList = StringTrimLeft($szPathList,1)
$szRoot = StringLeft($szPathList,StringInStr($szPathList,"*")-1) & "\"
$szPathList = StringTrimLeft($szPathList,StringInStr($szPathList,"*")-1)
Wend
EndIf
If $szReturn = "" Then
$aNULL[0] = 0
Return $aNULL
Else
Return StringSplit(StringTrimRight($szReturn,1),"*")
EndIf
EndFunc
Func _FileSearchUtil(ByRef $ROOT, ByRef $MASK, ByRef $RETURN)
$hFile = FileFindFirstFile($ROOT & $MASK)
If $hFile >= 0 Then
$szBuffer = FileFindNextFile($hFile)
While Not @ERROR
If $szBuffer <> "." And $szBuffer <> ".." Then _
$RETURN = $RETURN & $ROOT & $szBuffer & "*"
$szBuffer = FileFindNextFile($hFile)
Wend
FileClose($hFile)
EndIf
EndFunc
I often search for this thread as it's in completely wrong place. I think it should be found on Mediaportal General Development instead of TV Server General Talk.