Jump to content
Cassio

AppleGraphicsPowerManagement (AGPM) nas nVidia Fermi

Recommended Posts

Se você está percebendo baixa performance na sua nVidia Fermi, o problema pode estar na kext AppleGraphicsPowerManagement. Um bom programa para testar é o OpenGL Extensions Viewer.


Para fazer ajustes, você pode editar o Info.plist da própria kext, ou criar uma kext legacy e manter a AGPM original.


Como editar o Info.plist da kext http://Olarila.com/forum/viewtopic.php?f=3&t=69


Exemplos de kext legacy:


Laptop

LegacyAGPM.kext.zip

Desktop

LegacyAGPM.kext.zip

Edit: a estrutura da AGPM mudou em 10.8.2, aqui tem exemplos atualizados de legacy

http://Olarila.com/forum/viewtopic.php?f=3&t=629&start=90#p22641


O problema normalmente ocorre porque a placa permanece sempre no G-state mais baixo (menor performance para maior economia de energia).


Os G-states são definidos nas chaves Threshold_High e Threshold_Low, por exemplo:

<key>Threshold_High</key>
<array>
<integer>[color=#FF0000]57[/color]</integer>
<integer>[color=#008000]70[/color]</integer>
<integer>[color=#0000FF]88[/color]</integer>
<integer>[color=#8000FF]100[/color]</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>[color=#FF0000]0[/color]</integer>
<integer>[color=#008000]68[/color]</integer>
<integer>[color=#0000FF]75[/color]</integer>
<integer>[color=#8000FF]95[/color]</integer>
</array>

Significa que quando a placa estiver de 95 a 100 % ociosa, deve engajar o state 3 (maior economia de energia).

De 75 a 88 % ociosa, state 2.

De 68 a 70 % ociosa, state 1.

De 0 a 57 % ociosa, state 0 (máxima performance).


Para que a mudança de G-state seja ativada, precisamos definir o vendor e device ID da placa de vídeo dentro da chave com o identificador de modelo (SMproductname) que usamos no SMBIOS.


Exemplo:

<key>[color=#FF0000]MacBookPro6,2[/color]</key>
<dict>
<key>[b]LogControl[/b]</key>
<integer>0</integer>
<key>Vendor[color=#0000FF]10de[/color]Device[color=#008000]0df0[/color]</key>
<dict>
	...
</dict>
</dict>

 

Como encontrar o vendor e device ID http://Olarila.com/forum/viewtopic.php?f=6&t=25


Mude o LogControl de 0 para 1 para ver as mudanças de state no kernel log

Apr  8 18:29:18 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 2, ControlID = 17
Apr  8 18:29:19 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17
Apr  8 18:30:30 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17
Apr  8 18:30:32 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 2 from 1, ControlID = 17

 

Se optar pela kext legacy, copie da kext original uma chave de acordo com o seu hardware. Para desktop use iMac ou MacPro. Para laptop use MacBook ou MacBookPro.


Na legacy do exemplo o último valor de ambas as chaves threshold são iguais (100). Isso foi feito porque na minha placa ocorre um lag no mouse quando ela entra ou sai do state 3, então optei por fazer com que ela nunca entre no state 3, ficando entre 2 quando estiver ociosa e 0 quando estiver sendo exigida ao máximo.

LegacyAGPM.kext.zip

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Você acha que uma GT425M iria ter melhor desempenho do que este abaixo, fazendo os comandos acima ou seria desnecessário?


http://imageshack.us/photo/my-images/834/opengl.jpg/

ASUS G75VW-RS72 • CPU: Intel Core i7- 3610QM 2.29GHz • RAM: 12 GB DDR 3 ELPIDA • HD: 240GB CORSAIR GS SSD (MAC OS) HD 2 750GB (Win 8) • GPU: GeForce GTX 670M 3GB 1920x1080 • OS: Mac OS X 10.10. (14A389) • BIOS: 223.

Link to comment
Share on other sites

Não sei te dizer, só testando. Como você pode ver, no meu caso melhorou bastante, mas não dá pra comparar os valores porque a minha resolução é full HD (1920x1080) e a sua é apenas 1366x768. Também depende do identificador de modelo usado, eu uso MacBookPro6,2 (Nehalem) e faz muita diferença, já com MacBookPro8,3 eu testei num Sandy Bridge com GT 460M e não muda quase nada.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Estou com uma duvida.


Sobre o id da placa sei qual o id das minhas VGA's mas estou confuso de onde colocar a identificação.


Meu SMbios está assim.

 

<key>SMbiosdate</key>
<string>03/04/2009</string>
<key>SMbiosversion</key>
<string>MP41.88Z.0081.B04.0903051113</string>
<key>SMcputype</key>
<string>1793</string>
<key>SMfamily</key>
<string>Mac Pro</string>
<key>SMmanufacter</key>
<string>Apple Inc.</string>
<key>SMproductname</key>
<string>MacPro4,1</string>
<key>SMserial</key>
<string>10KG90AKE79</string>

 


Os id's das minhas placas são esses 10de&1080, então devo deixar o SMbios desse jeito abaixo ?


 

<key>SMbiosdate</key>
<string>03/04/2009</string>
<key>SMbiosversion</key>
<string>MP41.88Z.0081.B04.0903051113</string>
<key>SMcputype</key>
<string>1793</string>
<key>SMfamily</key>
<string>Mac Pro</string>
<key>SMmanufacter</key>
<string>Apple Inc.</string>
<key>SMproductname</key>
<string>MacPro4,1</string>
       <key>LogControl</key>
<integer>0</integer>
<key>Vendor10deDevice1080</key>
<key>SMserial</key>
<string>10KG90AKE79</string>

é isso ?

Link to comment
Share on other sites

Não, leia o primeiro post com atenção, é no Info.plist da AppleGraphicsPowerManagement (dentro da chave MacPro4,1) ou da legacy, não no SMBIOS.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

O edição da LegacyAGPM deu certo, porém tenho outra dúvida.


Porque ela só funciona se inicio o sistema com -v ?


Se inicio o Sistema sem o argumento -v o OpenGl Extensions Viewer não executa corretamente, ele abre normalmente mas quando inicio o teste a tela fica piscando em preto e branco e os frames são baixos.

Link to comment
Share on other sites

Deve ser bug na versão do Chameleon que você tá usando.


Instalou a legacy em /E/E ou /S/L/E?


Ativou UseKernelCache?


Leia http://Olarila.com/forum/viewtopic.php?f=10&t=456

 


Estou usando a ultima versão do Chameleon instalada pelo Chameleon Wizard.


Instalei a LegacyAGPM em /S/L/E.


Sim ativei o UseKernelCache.


Que por sinal melhorou muito, pois toda vez que iniciava o sistema com -v demorava demais .

Link to comment
Share on other sites

Faça um teste com outra versão do Chameleon, to usando a v2.1svn r1684 e funciona independente do -v.


O LogControl=1 é só pra testes, pra uso normal deixe zero mesmo, pra não lotar o log.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

entao mi desculpe nao entendi muinto bem

estou notando meu processamento grafico lento



este e o msm procedimento feito neste video ???????

eu fiz como o cara do video fez so ki mudei o valor para a minha plca GTX 560 TI


http://www.youtube.com/watch?v=2XYrF-InlQI


eu posso utilizar esse valores na ediçao da info.plist da minha AppleGraphicsPowerManagement

 

<key>Threshold_High</key>
<array>
<integer>57</integer>
<integer>70</integer>
<integer>88</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>68</integer>
<integer>75</integer>
<integer>95</integer>
</array>

 


A minha info.plis da AppleGraphicsPowerManagementno momento se emcontra assim: obs eu uso Imac 12,2 na Smbios e tenho uma GTX 560 TI

 

			<key>iMac12,2</key>
		<dict>
			<key>Vendor10deDevice1200</key>
			<dict>
				<key>Heuristic</key>
				<dict>
					<key>ID</key>
					<integer>0</integer>
					<key>IdleInterval</key>
					<integer>250</integer>
					<key>SensorOption</key>
					<integer>0</integer>
					<key>SensorSampleRate</key>
					<integer>4</integer>
					<key>TargetCount</key>
					<integer>1</integer>
					<key>Threshold_High</key>
					<array>
						<integer>90</integer>
						<integer>165</integer>
						<integer>182</integer>
						<integer>200</integer>
					</array>
					<key>Threshold_Low</key>
					<array>
						<integer>0</integer>
						<integer>168</integer>
						<integer>175</integer>
						<integer>195</integer>
					</array>
				</dict>
				<key>LogControl</key>
				<integer>1</integer>
				<key>control-id</key>
				<integer>17</integer>
			</dict>
		</dict>

 

AKI VAI UMA IMAGEM DO TESTE

1827732005_CapturadeTela2012-04-01s23_32_32.png.bbe66a7fd8dbcd939121029866c2ea65.png

 

Quero ter uma boa performace

obrigado pela ajuda.

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

De onde você tirou esses valores? Se ler o primeiro post vai ver que os valores de threshold são uma porcentagem, logo não devem ser maiores que 100.


Observe no kernel.log se todos os G-states (0 a 3) são usados.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Entao Posso utilizar esses valores ?????

 

<key>Threshold_High</key>
<array>
  <integer>57</integer>
  <integer>70</integer>
  <integer>88</integer>
  <integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
  <integer>0</integer>
  <integer>68</integer>
  <integer>75</integer>
  <integer>95</integer>
</array>

 


terei um bom desempenho ????

omde emcontro esse kernel log?

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

É mais fácil você testar do que perguntar aqui se vai ter bom desempenho.


O kernel log está na pasta /var/log, pode usar o app Console.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Esta parte e obrigatoria ????


Mude o LogControl de 0 para 1 para ver as mudanças de state no kernel log

Código:

Apr 8 18:29:18 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 2, ControlID = 17

Apr 8 18:29:19 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 0 from 1, ControlID = 17

Apr 8 18:30:30 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 1 from 0, ControlID = 17

Apr 8 18:30:32 MacBook-de-Cassio kernel[0]: AGPM: GPU = GFX0 G-state set to 2 from 1, ControlID = 17






o meu kernel log esta assim Apr 2 10:49:36


Mac-Pro-de-Mac kernel[0]: AGPM: GPU = display Initialized, Control ID 17

Apr 2 10:49:44 Mac-Pro-de-Mac kernel[0]: AGPM: GPU = display G-state set to 3 from 3, ControlID = 17

Apr 2 10:49:45 Mac-Pro-de-Mac kernel[0]: AGPM: GPU = display G-state set to 0 from 3, ControlID = 17

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

Por que seria obrigatório? Serve apenas para ver as mudanças de G-state, no momento em que estiver funcionando a contento, pode desligar.


O ideal é que fique no state 3 com a placa ociosa e chegue até 0 quando a placa é exigida.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

bem agora esta asism estou notando uma melhora no desempenhoo

 

			<key>iMac12,2</key>
		<dict>
			<key>Vendor10deDevice1200</key>
			<dict>
				<key>Heuristic</key>
				<dict>
					<key>ID</key>
					<integer>0</integer>
					<key>IdleInterval</key>
					<integer>250</integer>
					<key>SensorOption</key>
					<integer>0</integer>
					<key>SensorSampleRate</key>
					<integer>4</integer>
					<key>TargetCount</key>
					<integer>1</integer>
					<key>Threshold_High</key>
					<array>
						<integer>57</integer>
						<integer>70</integer>
						<integer>88</integer>
						<integer>100</integer>
					</array>
					<key>Threshold_Low</key>
					<array>
						<integer>0</integer>
						<integer>68</integer>
						<integer>75</integer>
						<integer>95</integer>
					</array>
				</dict>
				<key>LogControl</key>
				<integer>1</integer>
				<key>control-id</key>
				<integer>17</integer>
			</dict>
		</dict>

 




meu logcontrol esta em 1



olhando ai vc algo de errado ??????


desculpa mas e qui nao entendi muinto bem este assunto de G-state.

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

Tente ler com atenção e usar a cabeça, não tem nenhum mistério, é o que está explicado no primeiro post.


O LogControl não faz diferença no desempenho, é apenas para mostrar as mudanças de G-state no log ou não. O que muda o desempenho são os valores de threshold.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

entao em se eu quiser um otimo desempenho


eu tenho ki deixar os valores entre


0 a 57 %


estes valores tem que estar na chave do Threshold_High


e so eu deixar os valores nas 4 chaves entre 0 e 57 ????

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

Olha, sinceramente eu não consigo explicar melhor do que está no primeiro post, para mim está bem claro. Se você não consegue entender, sinto mas não posso ajudar.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

obrigado pela ajuda assim msm amigo fico gratoo ...

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

Posso te dizer que os últimos valores estão dentro da normalidade, enquanto os primeiros que você postou (indo até 200) não fazem sentido.

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

Estou usano esses valores oq mi diz ????

Threshold_High
0
45
75
100
Threshold_Low
0
0
87
98 

 

pretendo testar esse pode aver perigo quanto a keima da placa de video ????

 

Threshold_High
0
85
75
100
Threshold_Low
0
0
95
98 

 


estou acompanhando a temperatura ela nao esta oscilando em nenhum dos casos obtive um aumento no desempenho vc mi indica outra maneira de monitorar a gpu ????

• CPU: i7 2600k 3.4 GHz • Mobo: Asus Maximus Extreme 4 • RAM: 8 GB Corsair 1600Mhz • Cooler: H100 Corsair • Fonte: Corsair GS 800 • GPU: GTX 560 TI 2 GB • HD: Sandsung 250 GB • OS: Mac OS X 10.7.3 • Windows 7 •
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
  • Create New...
The popup will be closed in 15 seconds...