Contribute
Register

Dell Latitude 3330 Intel HD 4000 glitches/noise/artifacts

Status
Not open for further replies.
Joined
Dec 11, 2015
Messages
17
Motherboard
Dell Latitude 3330-Clover
CPU
i5-3337U/HM77
Graphics
HD4000 1366x768
Mac
  1. MacBook Pro
Hi.
I am trying to run a Hackintosh on my Dell Latitude 3330.

I have followed this guide (UEFI, GPT/GUID):
http://www.tonymacx86.com/el-capita...de-booting-os-x-installer-laptops-clover.html
To make an installer with this config.plist:
https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/config_HD4000_1366x768.plist
With the "Boot graphics glitch, 10.10.x/10.11.x" enabled.

I have successfully installed OSX 10.11.1.

However I am experiencing glitches/noise/artifacts on the laptop monitor. This noise to flickers when there is activity on the screen. When connecting an HDMI monitor this noise is not present on the HDMI monitor but still on the laptop monitor.

Here a picture that shows the noise (with screen mirroring on):
20151222_235039.jpg

The problem is very similar to the problems experienced in this thread:
http://www.tonymacx86.com/el-capitan-laptop-support/176069-graphic-glitch-hd-4000-graphic.html

I have already tried to set ig-platform-id to other values as 0x01660003, but 0x01660003 is the only value that works.

There are no settings to change the DVMT preallocated memory size in the Dell UEFI. When checking the "Dedicated Video Memory" in Windows 10 it says 0mb, suggesting that DVMT is set to 32MB, not matching the 64MB for 0x01660003. However I have read that the Windows value is not reliable.

Attached the IOReg made according to: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html
View attachment test’s MacBook Pro.ioreg

I am not sure what next steps to take to solve this problem. Please help, thank you.
 

CPU PM not implemented.
IGPU PM not implemented.
Backlight control not implemented.

http://www.tonymacx86.com/el-capita...01-guide-native-power-management-laptops.html

http://www.tonymacx86.com/el-capitan-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html

http://www.tonymacx86.com/el-capita...ching-dsdt-ssdt-laptop-backlight-control.html

You can always patch the framebuffer to match 32mb if you think that is how it is set.

Name: AppleIntelFramebuferCapri
Find: <0300 6601 0102 0402 0000 0004>
Replace: <0300 6601 0102 0402 0000 0002>

You should verify DVMT-prealloc by extracting BIOS/IFR and checking via UEFI shell though.

Enabling CSM (or legacy boot if CSM not available) may also help.
 
CPU PM not implemented.
IGPU PM not implemented.
Backlight control not implemented.

Ok, so I have implemented the above points:
View attachment test’s MacBook Pro2.ioreg

I noticed however before applying the patch "[igpu] Rename GFX0 to IGPU" next to the GFX0 there are PCI0.VID references in the DSDT. Not sure about this.

Furthermore I checked the DVMT Pre-Allocated setting with help from this guide:
http://www.tonymacx86.com/yosemite-...hd-graphics-5500-os-x-yosemite-10-10-3-a.html

Found this:
Code:
0x5E829         Setting: DVMT Pre-Allocated, Variable: 0x1C7 {05 A6 2D 03 3F 03 63 01 02 00 C7 01 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x5E84F             Option: 32M, Value: 0x1 {09 0E 2E 03 30 00 01 00 00 00 00 00 00 00}
0x5E85D             Option: 64M, Value: 0x2 {09 0E 2F 03 00 00 02 00 00 00 00 00 00 00}
0x5E86B             Option: 96M, Value: 0x3 {09 0E 30 03 00 00 03 00 00 00 00 00 00 00}
0x5E879             Option: 128M, Value: 0x4 {09 0E 31 03 00 00 04 00 00 00 00 00 00 00}
0x5E887             Option: 160M, Value: 0x5 {09 0E 32 03 00 00 05 00 00 00 00 00 00 00}
0x5E895             Option: 192M, Value: 0x6 {09 0E 33 03 00 00 06 00 00 00 00 00 00 00}
0x5E8A3             Option: 224M, Value: 0x7 {09 0E 34 03 00 00 07 00 00 00 00 00 00 00}
0x5E8B1             Option: 256M, Value: 0x8 {09 0E 35 03 00 00 08 00 00 00 00 00 00 00}
0x5E8BF             Option: 288M, Value: 0x9 {09 0E 36 03 00 00 09 00 00 00 00 00 00 00}
0x5E8CD             Option: 320M, Value: 0xA {09 0E 37 03 00 00 0A 00 00 00 00 00 00 00}
0x5E8DB             Option: 352M, Value: 0xB {09 0E 38 03 00 00 0B 00 00 00 00 00 00 00}
0x5E8E9             Option: 384M, Value: 0xC {09 0E 39 03 00 00 0C 00 00 00 00 00 00 00}
0x5E8F7             Option: 416M, Value: 0xD {09 0E 3A 03 00 00 0D 00 00 00 00 00 00 00}
0x5E905             Option: 448M, Value: 0xE {09 0E 3B 03 00 00 0E 00 00 00 00 00 00 00}
0x5E913             Option: 480M, Value: 0xF {09 0E 3C 03 00 00 0F 00 00 00 00 00 00 00}
0x5E921             Option: 512M, Value: 0x10 {09 0E 3D 03 00 00 10 00 00 00 00 00 00 00}
0x5E92F             Option: 1024M, Value: 0x11 {09 0E 3E 03 00 00 11 00 00 00 00 00 00 00}
0x5E93D         End of Options {29 02}

The value for 0x1C7 was set to 0x01, thus 32MB indeed. However changing this to 0x02 did not help.

The laptop monitor is still showing the noise, where can I go from here?
 
I noticed however before applying the patch "[igpu] Rename GFX0 to IGPU" next to the GFX0 there are PCI0.VID references in the DSDT. Not sure about this.

VID is part of the discrete GPU. Nothing to do with Intel graphics.

Furthermore I checked the DVMT Pre-Allocated setting with help from this guide:
http://www.tonymacx86.com/yosemite-...hd-graphics-5500-os-x-yosemite-10-10-3-a.html

Found this:
Code:
0x5E829         Setting: DVMT Pre-Allocated, Variable: 0x1C7 {05 A6 2D 03 3F 03 63 01 02 00 C7 01 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
0x5E84F             Option: 32M, Value: 0x1 {09 0E 2E 03 30 00 01 00 00 00 00 00 00 00}
0x5E85D             Option: 64M, Value: 0x2 {09 0E 2F 03 00 00 02 00 00 00 00 00 00 00}
0x5E86B             Option: 96M, Value: 0x3 {09 0E 30 03 00 00 03 00 00 00 00 00 00 00}
0x5E879             Option: 128M, Value: 0x4 {09 0E 31 03 00 00 04 00 00 00 00 00 00 00}
0x5E887             Option: 160M, Value: 0x5 {09 0E 32 03 00 00 05 00 00 00 00 00 00 00}
0x5E895             Option: 192M, Value: 0x6 {09 0E 33 03 00 00 06 00 00 00 00 00 00 00}
0x5E8A3             Option: 224M, Value: 0x7 {09 0E 34 03 00 00 07 00 00 00 00 00 00 00}
0x5E8B1             Option: 256M, Value: 0x8 {09 0E 35 03 00 00 08 00 00 00 00 00 00 00}
0x5E8BF             Option: 288M, Value: 0x9 {09 0E 36 03 00 00 09 00 00 00 00 00 00 00}
0x5E8CD             Option: 320M, Value: 0xA {09 0E 37 03 00 00 0A 00 00 00 00 00 00 00}
0x5E8DB             Option: 352M, Value: 0xB {09 0E 38 03 00 00 0B 00 00 00 00 00 00 00}
0x5E8E9             Option: 384M, Value: 0xC {09 0E 39 03 00 00 0C 00 00 00 00 00 00 00}
0x5E8F7             Option: 416M, Value: 0xD {09 0E 3A 03 00 00 0D 00 00 00 00 00 00 00}
0x5E905             Option: 448M, Value: 0xE {09 0E 3B 03 00 00 0E 00 00 00 00 00 00 00}
0x5E913             Option: 480M, Value: 0xF {09 0E 3C 03 00 00 0F 00 00 00 00 00 00 00}
0x5E921             Option: 512M, Value: 0x10 {09 0E 3D 03 00 00 10 00 00 00 00 00 00 00}
0x5E92F             Option: 1024M, Value: 0x11 {09 0E 3E 03 00 00 11 00 00 00 00 00 00 00}
0x5E93D         End of Options {29 02}

The value for 0x1C7 was set to 0x01, thus 32MB indeed. However changing this to 0x02 did not help.

The laptop monitor is still showing the noise, where can I go from here?

Did you verify that you successfully changed the setting to 64mb?

Did you enable CSM/legacy boot?
 
Backlight control is not implemented.
I do not understand.
I have a working backlight control slider in system preferences. In the IOReq you can see AppleACPIPlatformExport/PCI0@0/AppleACPIPCI/IGPU@2/IntelBacklightHandler.
What is not implemented?

VID is part of the discrete GPU. Nothing to do with Intel graphics.
There is no other graphics card than the integrated Intel HD 4000. So can this be ignored?

Did you verify that you successfully changed the setting to 64mb?
Checking the 0x1C7 variable after changing and rebooting shows the variable is indeed changed. Not sure to how to verify that the DVMT pre-alloc is actually set to 64MB?

Did you enable CSM/legacy boot?

So I have this option in the BIOS settings:
20151225_020035.jpg
Is this CSM? This has been on the whole time. The only other option is to ditch UEFI in favor of legacy/BIOS booting.
With legacy you mean old style BIOS booting? My Clover install is EUFI + GPT install, is switching to BIOS + GPT possible?
 
I do not understand.
I have a working backlight control slider in system preferences. In the IOReq you can see AppleACPIPlatformExport/PCI0@0/AppleACPIPCI/IGPU@2/IntelBacklightHandler.
What is not implemented?

Note edit.

There is no other graphics card than the integrated Intel HD 4000. So can this be ignored?

Of course.

Checking the 0x1C7 variable after changing and rebooting shows the variable is indeed changed. Not sure to how to verify that the DVMT pre-alloc is actually set to 64MB?

Make sure there aren't two variables for the same...
 
Make sure there aren't two variables for the same...
Not quite sure what you mean by that.

Enabling CSM (or legacy boot if CSM not available) may also help.
So I created a Clover USB with legacy boot + MBR. Started my install with it, but the problem still persists.

Any other suggestions on investigating/tackling this problem?
 
Found a solution!

After stumbling upon this page:
https://discussions.apple.com/thread/6240037?start=0&tstart=0

In AppleIntelFramebufferCapri.kext
Code:
0035dc0:
0300 6601   0x01660003 
0102 0402   Ports/Pipes/NumFrameBuf
0000 0004   64MB - StolenMemorySize 
0000 0001   16MB - FramebufferMemory Size
0000 0060   1.5GB VRAM
(Notice the amount of VRAM has changed since the post mentioned above)

This finally made sense to me:
Name: AppleIntelFramebuferCapri
Find: <0300 6601 0102 0402 0000 0004>
Replace: <0300 6601 0102 0402 0000 0002>

However instead of changing the amount of stolen memory (DVMT prealloc) the framebuffer size was off for my machine.

Changing framebuffer size 16MB to 8MB fixed the noise!

Thus:
Code:
F: 0300 6601 0102 0402 0000 0004 0000 0001
R: 0300 6601 0102 0402 0000 0004 0000 8000

Added this to my Clover config.plist
Code:
<dict>
    <key>Comment</key>
    <string>HD4000 0x01660003 FrameBuffer 8 MB</string>
    <key>Name</key>
    <string>AppleIntelFramebufferCapri</string>
    <key>Find</key>
    <data>AwBmAQECBAIAAAAEAAAAAQ==</data>
    <key>Replace</key>
    <data>AwBmAQECBAIAAAAEAACAAA==</data>
</dict>

No more noise!

Only now my hackintosh fails to boot with my patched DSDT. Not sure why... I will first try making a new one.
 
Not quite sure what you mean by that.

Check your IFR extract for multiple offsets for the same DVMT-prealloc setting.

So I created a Clover USB with legacy boot + MBR. Started my install with it, but the problem still persists.

Any other suggestions on investigating/tackling this problem?

No need to switch to legacy. But enabling CSM/legacy boot (still booting UEFI) can help.
 
Found a solution!

After stumbling upon this page:
https://discussions.apple.com/thread/6240037?start=0&tstart=0

In AppleIntelFramebufferCapri.kext
Code:
0035dc0:
0300 6601   0x01660003 
0102 0402   Ports/Pipes/NumFrameBuf
0000 0004   64MB - StolenMemorySize 
0000 0001   16MB - FramebufferMemory Size
0000 0060   1.5GB VRAM
(Notice the amount of VRAM has changed since the post mentioned above)

This finally made sense to me:


However instead of changing the amount of stolen memory (DVMT prealloc) the framebuffer size was off for my machine.

Changing framebuffer size 16MB to 8MB fixed the noise!

Thus:
Code:
F: 0300 6601 0102 0402 0000 0004 0000 0001
R: 0300 6601 0102 0402 0000 0004 0000 8000

Added this to my Clover config.plist
Code:
<dict>
    <key>Comment</key>
    <string>HD4000 0x01660003 FrameBuffer 8 MB</string>
    <key>Name</key>
    <string>AppleIntelFramebufferCapri</string>
    <key>Find</key>
    <data>AwBmAQECBAIAAAAEAAAAAQ==</data>
    <key>Replace</key>
    <data>AwBmAQECBAIAAAAEAACAAA==</data>
</dict>

No more noise!

Only now my hackintosh fails to boot with my patched DSDT. Not sure why... I will first try making a new one.

You should try changing the "stolen size" to match your BIOS setting.
 
Status
Not open for further replies.
Back
Top