Apple Event: May 7th at 7 am PT

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

HD4000 graphics problems when using a very big external screen

Hello,



I just got a new LG 34UM95 (3440x1440) which can get connected via Thunderbolt or DVI. Screen detection and activation is working fine.

However the screen is corrupted when moving the mouse or activating the dock animation or scrolling a window, ...


Scenario:

- MacBook Pro Mid 2012 (Intel HD4000),

- MacOS X 10.9.3

- really big external display (3440x1440) connected via Thunderbolt or DVI

- both displays (integrated end external display) active at same time


Problem:

- graphic errors (framebuffer corruptions) on both screens ==> it looks like the framebuffer memory size or some DMA transfer addresses are miscalculated


- when scaling down the external resolution to something smaller (e.g. 2560x1080) everything is working fine

- when closing the MacBook and using the external display only the big screen works flawlessly



==> Could you please have a look at this and fix the framebuffer corruption?

==> This might also be a race condition where the HD4000 driver accesses RAM which it should not have access to and could lead to an security attack.



Thanks,


Maik

MacBook Pro, OS X Mavericks (10.9.3)

Posted on May 19, 2014 2:46 AM

Reply
39 replies

Oct 27, 2014 1:56 PM in response to m_super_star

This worked fine for me!! (Mid 2012 MBP)


With the modified 10.9 version kext of AppleIntelFramebufferCapri.kext it solved the same problem encoutered by "m_star" in 10.9 (same as his screenshot), so i can use both screen without problem in Mavericks.

In Yosemite the same kext is working in full resolution 3440x1440 without holding option key and my MBP screen at 1280x800, perfect, thank you both!

I also found a new resolution, not expected, holding the option key on the "Scaled" button : 3440x1934 @50hz

User uploaded file


Are there "hidden pixels" on this monitor ? 😊

Dec 6, 2014 10:26 PM in response to m_star

m_star:


just out of curioursioty, if i were to actually modify that last value you listed:


"00 00 00 40 ( 0x40000000 ==> 1GB - VRAM Size ==> important for 3D stuff only ==> don't touch)"


could i actually increase the amount of system ram available to the intel HD 400 card? or are there safeguards built into mac os to prevent us from doing that?

And if this can be done, could i also pull the same trick on the nvidia card too?


Also, your steps seem to have helped me so far with performance from the frame buffer memory, so many thanks!!

Jan 28, 2015 5:44 AM in response to m_super_star

Just updated to OS X 10.10.2


The patch from 10.9 is working again (required for Mac Book Pro 13" non retina in order to have BOTH screens (integrated + LG) working at the same time)


But starting from 10.10 you also have to disable the kernel signature kext check (nvram variable: boot-args kext-dev-mode=1)


:-)


Happy to have the new 64Bit driver working now.


--------


@Mr. BOB BERETTA (which is compiling / is responsible inside of Apple for this graphics driver)


I'm running the 24MB framebuffer patch for almost 1 year now. It works perfectly without any issues (tested with many external monitors)


PLEASE also do this modification (24MB instead of 16MB framebuffer) in your code so I can re-enable signed kexts.


THANKS

May 31, 2015 3:43 PM in response to m_star

I have a late 2012 Mac Mini (HD4000 graphics) with 10.3.3 that I tried using with a Dell U3415W monitor which is also a 3440x1440 resolution screen. It definitely did not work very well out of the box with various corruption/sync issues. Attempts to use modified kexts didn't help either.


But what *does* seem to work for me is disabling DisplayPort 1.2 support on the monitor. After doing that, I've had almost no issues. There may have been an issue when waking the Mac initially, but it's been reliable since, with none of the corruption and strange rendering issues. I have proper drop shadows on my windows, and some views that failed to render at all previously are now working as expected.


From the little I read, DisplayPort 1.2 added support for 10-bit color, which presumably requires a bigger frame buffer. I don't think my Mini officially supports DisplayPort 1.2, so disabling it on the monitor implies there's something wrong with the the negotiation between the screen and mac where the mac actually tries to do 10-bit color perhaps, even though the buffer isn't big enough? I think I also lose the ability to daisy chain a second monitor from the first by disabling DisplayPort 1.2, but that's OK for my case.


Interestingly, "about this mac" window also reports the display as being 1920x1080 and 30.5 inches so it definitely doesn't seem prepared to recognize this screen (or maybe the screen isn't identifying itself correctly)

Oct 6, 2015 3:45 AM in response to m_star

Update for El Capitan,


Mr. Beretta from Apple compiled and changed the IntelHD4000Framebuffer driver (now uses 1.5 GB RAM) again but he still forgot / refuses to apply the required fix/change for the framebuffer size (20MB instead of 16MB) - see previous posts.


Now El Capitan comes with a new feature called "rootless" which prevents any modification in system directories even if you have full root privileges. It is also not possible to disable the kext signature check with the boot arguments anymore.


SOLUTION:


To disable the "rootless" option and the kext signature check you now have to boot into recovery mode (turn Mac on and press and hold <CMD>+<R> until it starts up in recovery mode).

In Recovery mode you have to start a TERMINAL (from menu on top of screen) and then type the following command:


csrutil disable


After this you have to restart the Mac normally and then you can install the patched kext (patch instructions stay same). After installing the kext and a reboot later I can now enjoy my 2nd big screen on MBP13"2012 again :-)


==> It would be nice to have a working graphics driver out of the box. Now I have to run my Mac without the new protection option since Mr. Beretta from Apple refuses to fix his bug in the framebuffer driver.

Mar 10, 2016 1:05 PM in response to yufeng66

hi everybody , i m about to use a/m lg34 panel with mbp 13'' early 2013 retina...pls advise which port i d use and with which cable (do i need a display to mini display cable ?) prior to any tweaking that m star mentioned , to succeed the 3440x1440 resolution...pls note i m a windows user , old enough and totally crap at mac , so help ...😁

tia


ps mavericks os

Mar 10, 2016 2:13 PM in response to aker11

aker11


you camped on an old thread about integrated graphics not allowing a large enough frame buffer in certain older versions of Mac OS X, but solved in other versions.


You would do much better to start your own thread, and ask about CABLES for your display, which seems to be your concern.


Readers need to know what version of Mac OS X you are running.

HD4000 graphics problems when using a very big external screen

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.