Jump to content

Intel HD4600 Second Monitor Issues


bekok
 Share

12 posts in this topic

Recommended Posts

Hi,

Recently I have installed Mac OS X Yosemite using Clover. I'm using the Intel HD4600 graphics from the Intel i5-4690k over my Gigabyte GA-Z97X-UD7 motherboard. I have my main monitor (Dell U2415 1920x1200) hooked up via HDMI and it works just fine, but whenever I add a second monitor via DVI (Samsung B2240 1920x1080) there are some problems that appear.

 

The main problem is that the second display is set to 1080p via the System Preferences, but it is displaying as 1920x1200, meaning there is a part "under" my monitor screen where my mouse can go, but which I can't actually see. I guess it's copying the settings from the Dell monitor, because if I only hook up the Samsung the resolution is 1920x1080. Also, if I connect the screen after the computer has been booted the monitor displays the correct resolution.

 

Some other small issues that I have also found are:

1) When putting the resolution at 720p or 1600 x 900 I get really weird glitches with part of the screen quadrupling itself (see photo)

2) Whenever I boot just before the Apple Logo loading begins there's a glitch only on the first monitor (comparable to the "second part of booting screen glitch")

3) When the second part of the Apple Logo booting starts the second screen shows comparable glitches to the quadrupling thing

4) If I turn off one monitor after I have booted the mouse seems to be a with laggy at some moments

 

The graphics part of my config file is the following:

<key>Graphics</key>
<dict>
	<key>Inject</key>
	<dict>
		<key>ATI</key>
		<false/>
		<key>Intel</key>
		<true/>
		<key>NVidia</key>
		<false/>
	</dict>
	<key>PatchVBios</key>
	<true/>
</dict>

I have tried to inject custom EDIDs, but unfortunately this doesn't solve the issue.

I'm not really sure how to go about solving this, so I hope someone can help me with these problems!

 

CmV228t.jpg

Uploading the image apparently flipped it, but the issue is with the repeating screen parts

Link to comment
Share on other sites

Do you have DSDT?

 

Using MaciASL I was able to generate the DSDT.dsl file. However, when trying to compile I got 25 errors and since I'm not very familiar with DSDT files I was hoping to get a fix without having to use the DSDT file.

Link to comment
Share on other sites

DSDT Patch for HD4600

# Device injection for the Intel HD40000
into method label _DSM parent_label IGPU remove_entry;
into device label IGPU insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0E) {\n
		"AAPL,slot-name",\n
		"Built In",\n
		"name",\n
		"Intel Graphics Controller",\n
		"model",\n
		 Buffer (0x16) {"Intel HD Graphics 4600"},\n
		"device_type",\n 
		 Buffer (0x13) {"Graphics Controller"},\n
		"device-id",\n
		 Buffer (0x04) { 0x00, 0x00, 0x16, 0x0a },\n
		"AAPL,ig-platform-id",\n
		 Buffer (0x04) { 0x00, 0x00, 0x16, 0x0a },\n
		"hda-gfx",\n
		 Buffer (0x0A) {"onboard-1"}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;
Link to comment
Share on other sites

 

DSDT Patch for HD4600

# Device injection for the Intel HD40000
into method label _DSM parent_label IGPU remove_entry;
into device label IGPU insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x0E) {\n
		"AAPL,slot-name",\n
		"Built In",\n
		"name",\n
		"Intel Graphics Controller",\n
		"model",\n
		 Buffer (0x16) {"Intel HD Graphics 4600"},\n
		"device_type",\n 
		 Buffer (0x13) {"Graphics Controller"},\n
		"device-id",\n
		 Buffer (0x04) { 0x00, 0x00, 0x16, 0x0a },\n
		"AAPL,ig-platform-id",\n
		 Buffer (0x04) { 0x00, 0x00, 0x16, 0x0a },\n
		"hda-gfx",\n
		 Buffer (0x0A) {"onboard-1"}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

 

I tried this one myself as well, but it gives 5 errors during compiling:

- Object does not exist (\_SB.PCI0.IGPU.CLID)

- Object does not exist (\_SB.PCI0.IGPU.CLID)

- Object does not exist (\_SB.PCI0.IGPU.GSSE)

- Object does not exist (\_SB.PCI0.IGPU.GSCI)

- Object not found or not accessible from scope (^^^IGPU.CLID)

Link to comment
Share on other sites

On Rehabman patches you have a patch for this problem!!!!

 

I've tried all the relevant patches, but none make it better unfortunately.

 

I do believe that the problem with my second screen that is set to 1920x1200 because of the PatchVBios. This grabs it from my main monitor (which is 1920x1200).

However, without the PatchVBios my second screen becomes all "quartered" (see the screenshot in the OP) and DualLink 0 doesn't solve that either.

Link to comment
Share on other sites

I've finally solved the main issue! My main monitor now correctly displays at 1920x1200 and my second monitor displays 1920x1080. I the solved the issue by using the following the following settings in my config.plist:

<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<true/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>PatchVBios</key>
		<true/>
        <key>CustomEDID</key>
        <data>AP///////wBMLa4GMjJCQxEUAQOAMBt4KnjxplVImyYSUFS/74BxT4EAgUCBgJUAswCpQJUPAjqAGHE4LUBYLEUA3QwRAAAeAAAA/QA4Sx5REQAKICAgICAgAAAA/ABTTUIyMjQwCiAgICAgAAAA/wBIOVhaNDAzMzEwCiAgAaQ=</data>
	</dict>

By using the application SwitchResX I was able to extract the displays EDID information. After that I followed the EDID injection guide to get my correct data string.

 

The four issues in the starting post are still there, but I can live with them for now.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...