Contribute
Register

Choosing the correct DVMT-prealloc, cursor, and ig-platform-id

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hello all,
Can anyone explain how to correctly set DVMT-prealloc, cursor, and ig-platform-id values?
My Z50-70's default DVMT-prealloc setting is set to 64MB and I've been using the 9MB cursor patch with the ig-patform-id=0x0a26006...
What would changing the DVMT-prealloc to higher value do? And what would using the 128MB DVMT, 48MB cursor patch do?
I'm asking all these questions because I'm trying to find out whether or not those values are related to the Intel HD 4400 and 4600 problem with safari playback in Sierra... Maybe changing some of those values can fix it?

Thanks all.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,285
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hello all,
Can anyone explain how to correctly set DVMT-prealloc, cursor, and ig-platform-id values?
My Z50-70's default DVMT-prealloc setting is set to 64MB and I've been using the 9MB cursor patch with the ig-patform-id=0x0a26006...
What would changing the DVMT-prealloc to higher value do? And what would using the 128MB DVMT, 48MB cursor patch do?
I'm asking all these questions because I'm trying to find out whether or not those values are related to the Intel HD 4400 and 4600 problem with safari playback in Sierra... Maybe changing some of those values can fix it?

Thanks all.

Have you verified in the special UEFI shell (with setup_var) that your DVMT-prealloc is actually 64MB?
More typical is 32MB.

The ig-platform-id selects a framebuffer configuration. You can extract all the data associated with each platform-id by extracting the bytes that correspond to each ig-platform-id you find in the framebuffer kext binary. Not all the data there is understood... such is the nature of closed-source software.

cursor-bytes is one setting within the platform data.
As is framebuffer size, BIOS reserved size, etc.
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Have you verified in the special UEFI shell (with setup_var) that your DVMT-prealloc is actually 64MB?
More typical is 32MB.
I have unlocked my BIOS so I can see it's set to 64MB by default. Maybe because I have a FHD screen?

The ig-platform-id selects a framebuffer configuration. You can extract all the data associated with each platform-id by extracting the bytes that correspond to each ig-platform-id you find in the framebuffer kext binary. Not all the data there is understood... such is the nature of closed-source software.

Well I guess 0x0e20008 is better? Since it requires less patches (No 9MB cursor patch is required) and I've noticed that in 10.12, the patch that enables the internal display after sleep is not required since it works by default.

cursor-bytes is one setting within the platform data.
As is framebuffer size, BIOS reserved size, etc.
I'll do some testing/research with the 0x0e20008 ig-platform-id, but I'm not sure which cursor-byte I should go with...
Also, will increasing the dvmt-prealloc in any way increase the performance if I enable the 128MB dvmt-prealloc using the patch in your repo?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,285
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
I have unlocked my BIOS so I can see it's set to 64MB by default. Maybe because I have a FHD screen?



Well I guess 0x0e20008 is better? Since it requires less patches (No 9MB cursor patch is required) and I've noticed that in 10.12, the patch that enables the internal display after sleep is not required since it works by default.


I'll do some testing/research with the 0x0e20008 ig-platform-id, but I'm not sure which cursor-byte I should go with...
Also, will increasing the dvmt-prealloc in any way increase the performance if I enable the 128MB dvmt-prealloc using the patch in your repo?

0x0e20008 is invalid. Perhaps you mean 0x02e0008.
You could try it and see what happens. By default 0x02e0008 assumes 128mb. There are various patches you can use to tweak that, framebuffer size, and cursor bytes. It is trial/error.
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
0x0e20008 is invalid. Perhaps you mean 0x02e0008.
Yeah sorry.

By default 0x02e0008 assumes 128mb. There are various patches you can use to tweak that, framebuffer size, and cursor bytes. It is trial/error.
If 0x02e0008 already expects DVMT-prealloc=128MB, then what does "Enable 128MB DVMT-prealloc, 0x0a2e0008" patch from your repo do?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,285
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
If 0x02e0008 already expects DVMT-prealloc=128MB, then what does "Enable 128MB DVMT-prealloc, 0x0a2e0008" patch from your repo do?

Sorry. I was remembering wrong. 0x04000000 is 64mb, so that is the default (a bit larger than 0x0a260006 which is 32mb).
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Sorry. I was remembering wrong. 0x04000000 is 64mb, so that is the default (a bit larger than 0x0a260006 which is 32mb).
Oh that's good to know... then I guess I'll make 0x0a2e0008 the default since Lenovo Z50-70 series have DVMT-prealloc set to 64MB by default...
Well sorry for the stupid question, but will changing the DVMT-prealloc from 64MB to 128MB increase the performance? And do I have to use "Enable 128MB DVMT-prealloc, 0x0a2e0008" patch?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,285
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Oh that's good to know... then I guess I'll make 0x0a2e0008 the default since Lenovo Z50-70 series have DVMT-prealloc set to 64MB by default...
Well sorry for the stupid question, but will changing the DVMT-prealloc from 64MB to 128MB increase the performance? And do I have to use "Enable 128MB DVMT-prealloc, 0x0a2e0008" patch?

No idea how DVMT-prealloc affects performance.
Experience has shown us that it is best to have the settings in the framebuffer match the actual setting in BIOS.
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
No idea how DVMT-prealloc affects performance.
Experience has shown us that it is best to have the settings in the framebuffer match the actual setting in BIOS.
I'll revert DVMT-prealloc to 64MB... I'll also update my repo and change the ig-platform-id to 0x0a2e0008 and change the HDMI audio patch accordingly...

Thanks a lot! :)
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,285
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
I'll revert DVMT-prealloc to 64MB... I'll also update my repo and change the ig-platform-id to 0x0a2e0008 and change the HDMI audio patch accordingly...

Thanks a lot! :)

Does 0x0a2e0008 solve the Safari/HD4400 video freeze?
 
Top