Jump to content

AppleIntelHDGraphicsFB fixed (SL 10.6.8)


  • Please log in to reply
272 replies to this topic

#1
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Using a resolution higher than 1024x768 produces artifacts, so I have to look into it a bit more. Also, shutdown/reboot using a higher resolution causes a kernel panic.

Use the DualLink version if your monitor supports a resolution higher than 1366x768. I have only tested it on a laptop, so I don't know if it works on an external monitor.


UPDATE:
I've made a commandline tool for patching, so you can try different options, you can also choose the output (LVDS, VGA, DP). Please, carefully read the included README file before using.

THE FOLLOWING ARE NOT NECESSARY:
- "GraphicsEnabler" boot option
- "Graphics Mode" boot option
- Natit.kext
- Resolution.dylib

Also, it does not matter which smbios.plist you are using.

DO NOT MIX DIFFERENT KEXTS FROM DIFFERENT VERSIONS OF OS X!

AppleIntelHDGraphicsFB is responsible for setting up the framebuffer, thus providing the ability to switch resolutions. The other AppleIntelHDGraphics* kexts provide hardware acceleration (QE/CI/OpenGL/Video playback). So, if using the FB kext on it's own works (switching resolutions but no QE/CI), while using it with the others does not, means there's an incompatibility between the kexts you are using.

Please use this tool instead of the kexts I've uploaded here.

Attached Files


Edited by verteks, 16 March 2013 - 04:52 PM.


#2
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 365 posts
  • Gender:Male
It would be great if you explained a bit more about this fix. Does this actually remove distortions for resolutions 1366x768 and higher? Does it enable Quartz Extreme? Does it fix the black screen problem?

...and would it work on mountain lion?

I don't have snow leopard at the moment, but hopefully someone else here can take a look at it. It could be the breakthough that we all been searching for...

#3
warraisraw

warraisraw

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
  • Gender:Male
Hello, I tried this on my installation ML 10.8.2 and this is the result. In the screenshot does not show a small distortion that can be seen through the internal monitor (a bit pixelated image). But now we have the image in our internal monitor. It is a good step forward.

Regards.

Attached Files



#4
alexanderq

alexanderq

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 188 posts
  • Gender:Male
Black screen in Mountain Lion for me.

#5
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
I'm about to reboot with the singlelink FB. Repairing permissions now.......Cross your fingers!
I'll let you know asap.

Pentothal

#6
sartemd174

sartemd174

    InsanelyMac Protégé

  • Members
  • Pip
  • 42 posts
Gray screen ML 10.8.2, HD Graphics 1st Gen.

#7
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
I have fixed the artifacts now, it works perfectly now.

People who got a black screen: If you have Linux, I want you to do a register dump using 'intel_reg_dumper' command.

The problem was in the TrainFDI function. It sets the FDI_RXA_CTL and FDI_TXA_CTL registers using link width X4, but doing a reg dump from Linux, I found out that it should be X1. Now, I don't know if X1 works for DualLink, this might explain why some people got a black screen.

For some reason, I can't attach two files. WTF?EDIT: WTF? I tried editing and attaching but it didn't work.

Attached Files


Edited by verteks, 08 March 2013 - 12:56 PM.


#8
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
No luck this time. I got the spinning wheel of death spinning spinning....I'll post my reg dump next post.
Thanks Verteks
Pentothal

Ok, I executed the coomand intel_reg_dumper with Linux Mint bit.

mate64@mate64 ~ $ sudo intel_reg_dumper
PGETBL_CTL: 0x00000008
GEN6_INSTDONE_1: 0xfffffffe
GEN6_INSTDONE_2: 0xffffffff
CPU_VGACNTRL: 0x80000000 (disabled)
DIGITAL_PORT_HOTPLUG_CNTRL: 0x00000000
RR_HW_CTL: 0x00000000 (low 0, high 0)
FDI_PLL_BIOS_0: 0x082b3019
FDI_PLL_BIOS_1: 0x00000000
FDI_PLL_BIOS_2: 0x00000000
DISPLAY_PORT_PLL_BIOS_0: 0x0807012b
DISPLAY_PORT_PLL_BIOS_1: 0x00000000
DISPLAY_PORT_PLL_BIOS_2: 0x00000000
FDI_PLL_FREQ_CTL: 0x00053687
PIPEACONF: 0xc0000050 (enabled, active, pf-pd, rotate 0, 6bpc)
HTOTAL_A: 0x05f50555 (1366 active, 1526 total)
HBLANK_A: 0x05f50555 (1366 start, 1526 end)
HSYNC_A: 0x05a50585 (1414 start, 1446 end)
VTOTAL_A: 0x031502ff (768 active, 790 total)
VBLANK_A: 0x031502ff (768 start, 790 end)
VSYNC_A: 0x03070302 (771 start, 776 end)
VSYNCSHIFT_A: 0x00000000
PIPEASRC: 0x055502ff (1366, 768)
PIPEA_DATA_M1: 0x7e13eb10 (TU 64, val 0x13eb10 1305360)
PIPEA_DATA_N1: 0x0020f580 (val 0x20f580 2160000)
PIPEA_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
PIPEA_DATA_N2: 0x00000000 (val 0x0 0)
PIPEA_LINK_M1: 0x00011b48 (val 0x11b48 72520)
PIPEA_LINK_N1: 0x00041eb0 (val 0x41eb0 270000)
PIPEA_LINK_M2: 0x00000000 (val 0x0 0)
PIPEA_LINK_N2: 0x00000000 (val 0x0 0)
DSPACNTR: 0xd8004400 (enabled)
DSPABASE: 0x00000000
DSPASTRIDE: 0x00001600 (88)
DSPASURF: 0x00853000
DSPATILEOFF: 0x00000000 (0, 0)
PIPEBCONF: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_B: 0x00000000 (1 active, 1 total)
HBLANK_B: 0x00000000 (1 start, 1 end)
HSYNC_B: 0x00000000 (1 start, 1 end)
VTOTAL_B: 0x00000000 (1 active, 1 total)
VBLANK_B: 0x00000000 (1 start, 1 end)
VSYNC_B: 0x00000000 (1 start, 1 end)
VSYNCSHIFT_B: 0x00000000
PIPEBSRC: 0x00000000 (1, 1)
PIPEB_DATA_M1: 0x00000000 (TU 1, val 0x0 0)
PIPEB_DATA_N1: 0x00000000 (val 0x0 0)
PIPEB_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
PIPEB_DATA_N2: 0x00000000 (val 0x0 0)
PIPEB_LINK_M1: 0x00000000 (val 0x0 0)
PIPEB_LINK_N1: 0x00000000 (val 0x0 0)
PIPEB_LINK_M2: 0x00000000 (val 0x0 0)
PIPEB_LINK_N2: 0x00000000 (val 0x0 0)
DSPBCNTR: 0x00000000 (disabled)
DSPBBASE: 0x00000000
DSPBSTRIDE: 0x00000000 (0)
DSPBSURF: 0x00000000
DSPBTILEOFF: 0x00000000 (0, 0)
PIPECCONF: 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_C: 0x00000000 (1 active, 1 total)
HBLANK_C: 0x00000000 (1 start, 1 end)
HSYNC_C: 0x00000000 (1 start, 1 end)
VTOTAL_C: 0x00000000 (1 active, 1 total)
VBLANK_C: 0x00000000 (1 start, 1 end)
VSYNC_C: 0x00000000 (1 start, 1 end)
VSYNCSHIFT_C: 0x00000000
PIPECSRC: 0x00000000 (1, 1)
PIPEC_DATA_M1: 0x00000000 (TU 1, val 0x0 0)
PIPEC_DATA_N1: 0x00000000 (val 0x0 0)
PIPEC_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
PIPEC_DATA_N2: 0x00000000 (val 0x0 0)
PIPEC_LINK_M1: 0x00000000 (val 0x0 0)
PIPEC_LINK_N1: 0x00000000 (val 0x0 0)
PIPEC_LINK_M2: 0x00000000 (val 0x0 0)
PIPEC_LINK_N2: 0x00000000 (val 0x0 0)
DSPCCNTR: 0x00000000 (disabled)
DSPCBASE: 0x00000000
DSPCSTRIDE: 0x00000000 (0)
DSPCSURF: 0x00000000
DSPCTILEOFF: 0x00000000 (0, 0)
PFA_CTL_1: 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFA_CTL_2: 0x00007e80 (vscale 0.988281)
PFA_CTL_3: 0x00003f40 (vscale initial phase 0.494141)
PFA_CTL_4: 0x00007d54 (hscale 0.979126)
PFA_WIN_POS: 0x00000000 (0, 0)
PFA_WIN_SIZE: 0x00000000 (0, 0)
PFB_CTL_1: 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFB_CTL_2: 0x00000000 (vscale 0.000000)
PFB_CTL_3: 0x00000000 (vscale initial phase 0.000000)
PFB_CTL_4: 0x00000000 (hscale 0.000000)
PFB_WIN_POS: 0x00000000 (0, 0)
PFB_WIN_SIZE: 0x00000000 (0, 0)
PFC_CTL_1: 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFC_CTL_2: 0x00000000 (vscale 0.000000)
PFC_CTL_3: 0x00000000 (vscale initial phase 0.000000)
PFC_CTL_4: 0x00000000 (hscale 0.000000)
PFC_WIN_POS: 0x00000000 (0, 0)
PFC_WIN_SIZE: 0x00000000 (0, 0)
PCH_DREF_CONTROL: 0x00001400 (cpu source disable, ssc_source enable, nonspread_source enable, superspread_source disable, ssc4_mode downspread, ssc1 disable, ssc4 disable)
PCH_RAWCLK_FREQ: 0x0000007d (FDL_TP1 timer 0.5us, FDL_TP2 timer 1.5us, freq 125)
PCH_DPLL_TMR_CFG: 0x0271186a
PCH_SSC4_PARMS: 0x00000000
PCH_SSC4_AUX_PARMS: 0x00000000
PCH_DPLL_SEL: 0x00000000 (FDL_TP1 timer 0.5us, FDL_TP2 timer 1.5us, freq 125)
PCH_DPLL_ANALOG_CTL: 0x00008000
PCH_DPLL_A: 0x88046004 (enable, sdvo high speed no, mode LVDS, p2 Div 14, FPA0 P1 3, FPA1 P1 3, refclk SSC, sdvo/hdmi mul 1)
PCH_DPLL_B: 0x04800080 (disable, sdvo high speed no, mode (null), p2 (null), FPA0 P1 8, FPA1 P1 8, refclk default 120Mhz, sdvo/hdmi mul 1)
PCH_FPA0: 0x00021105 (n = 2, m1 = 17, m2 = 5)
PCH_FPA1: 0x00021105 (n = 2, m1 = 17, m2 = 5)
PCH_FPB0: 0x00030d07 (n = 3, m1 = 13, m2 = 7)
PCH_FPB1: 0x00030d07 (n = 3, m1 = 13, m2 = 7)
TRANS_HTOTAL_A: 0x05f50555 (1366 active, 1526 total)
TRANS_HBLANK_A: 0x05f50555 (1366 start, 1526 end)
TRANS_HSYNC_A: 0x05a50585 (1414 start, 1446 end)
TRANS_VTOTAL_A: 0x031502ff (768 active, 790 total)
TRANS_VBLANK_A: 0x031502ff (768 start, 790 end)
TRANS_VSYNC_A: 0x03070302 (771 start, 776 end)
TRANS_VSYNCSHIFT_A: 0x00000000
TRANSA_DATA_M1: 0x00000000 (TU 1, val 0x0 0)
TRANSA_DATA_N1: 0x00000000 (val 0x0 0)
TRANSA_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
TRANSA_DATA_N2: 0x00000000 (val 0x0 0)
TRANSA_DP_LINK_M1: 0x00000000 (val 0x0 0)
TRANSA_DP_LINK_N1: 0x00000000 (val 0x0 0)
TRANSA_DP_LINK_M2: 0x00000000 (val 0x0 0)
TRANSA_DP_LINK_N2: 0x00000000 (val 0x0 0)
TRANS_HTOTAL_B: 0x00000000 (1 active, 1 total)
TRANS_HBLANK_B: 0x00000000 (1 start, 1 end)
TRANS_HSYNC_B: 0x00000000 (1 start, 1 end)
TRANS_VTOTAL_B: 0x00000000 (1 active, 1 total)
TRANS_VBLANK_B: 0x00000000 (1 start, 1 end)
TRANS_VSYNC_B: 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_B: 0x00000000
TRANSB_DATA_M1: 0x00000000 (TU 1, val 0x0 0)
TRANSB_DATA_N1: 0x00000000 (val 0x0 0)
TRANSB_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
TRANSB_DATA_N2: 0x00000000 (val 0x0 0)
TRANSB_DP_LINK_M1: 0x00000000 (val 0x0 0)
TRANSB_DP_LINK_N1: 0x00000000 (val 0x0 0)
TRANSB_DP_LINK_M2: 0x00000000 (val 0x0 0)
TRANSB_DP_LINK_N2: 0x00000000 (val 0x0 0)
TRANS_HTOTAL_C: 0x00000000 (1 active, 1 total)
TRANS_HBLANK_C: 0x00000000 (1 start, 1 end)
TRANS_HSYNC_C: 0x00000000 (1 start, 1 end)
TRANS_VTOTAL_C: 0x00000000 (1 active, 1 total)
TRANS_VBLANK_C: 0x00000044 (69 start, 1 end)
TRANS_VSYNC_C: 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_C: 0x00000000
TRANSC_DATA_M1: 0x00000000 (TU 1, val 0x0 0)
TRANSC_DATA_N1: 0x00000000 (val 0x0 0)
TRANSC_DATA_M2: 0x00000000 (TU 1, val 0x0 0)
TRANSC_DATA_N2: 0x00000000 (val 0x0 0)
TRANSC_DP_LINK_M1: 0x00000000 (val 0x0 0)
TRANSC_DP_LINK_N1: 0x00000000 (val 0x0 0)
TRANSC_DP_LINK_M2: 0x00000000 (val 0x0 0)
TRANSC_DP_LINK_N2: 0x00000000 (val 0x0 0)
TRANSACONF: 0xc0000040 (enable, active, progressive)
TRANSBCONF: 0x00000000 (disable, inactive, progressive)
TRANSCCONF: 0x00000000 (disable, inactive, progressive)
FDI_TXA_CTL: 0xb0044000 (enable, train pattern not train, voltage swing 0.4V,pre-emphasis none, port width X1, enhanced framing enable, FDI PLL enable, scrambing enable, master mode disable)
FDI_TXB_CTL: 0x00044000 (disable, train pattern pattern_1, voltage swing 0.4V,pre-emphasis none, port width X1, enhanced framing enable, FDI PLL enable, scrambing enable, master mode disable)
FDI_TXC_CTL: 0x00000000 (disable, train pattern pattern_1, voltage swing 0.4V,pre-emphasis none, port width X1, enhanced framing disable, FDI PLL disable, scrambing enable, master mode disable)
FDI_RXA_CTL: 0xb0022050 (enable, train pattern not train, port width X1, 6bpc,link_reverse_strap_overwrite no, dmi_link_reverse no, FDI PLL enable,FS ecc disable, FE ecc disable, FS err report disable, FE err report disable,scrambing enable, enhanced framing enable, PCDClk)
FDI_RXB_CTL: 0x00000040 (disable, train pattern pattern_1, port width X1, 8bpc,link_reverse_strap_overwrite no, dmi_link_reverse no, FDI PLL disable,FS ecc disable, FE ecc disable, FS err report disable, FE err report disable,scrambing enable, enhanced framing enable, RawClk)
FDI_RXC_CTL: 0x00000000 (disable, train pattern pattern_1, port width X1, 8bpc,link_reverse_strap_overwrite no, dmi_link_reverse no, FDI PLL disable,FS ecc disable, FE ecc disable, FS err report disable, FE err report disable,scrambing enable, enhanced framing disable, RawClk)
FDI_RXA_MISC: 0x00000080 (FDI Delay 128)
FDI_RXB_MISC: 0x00000080 (FDI Delay 128)
FDI_RXC_MISC: 0x00000000 (FDI Delay 0)
FDI_RXA_TUSIZE1: 0x7e000000
FDI_RXA_TUSIZE2: 0x7e000000
FDI_RXB_TUSIZE1: 0x7e000000
FDI_RXB_TUSIZE2: 0x7e000000
FDI_RXC_TUSIZE1: 0x00000000
FDI_RXC_TUSIZE2: 0x00000000
FDI_PLL_CTL_1: 0x33505248
FDI_PLL_CTL_2: 0x00000000
FDI_RXA_IIR: 0x00000000
FDI_RXA_IMR: 0x000000ff
FDI_RXB_IIR: 0x00000000
FDI_RXB_IMR: 0x000000ff
PCH_ADPA: 0x00f40000 (disabled, transcoder A, -hsync, -vsync)
HDMIB: 0x00000018 (disabled pipe A 8bpc SDVO DVI audio disabled +vsync +hsync non-detected)
HDMIC: 0x0000001c (disabled pipe A 8bpc SDVO DVI audio disabled +vsync +hsync detected)
HDMID: 0x00000018 (disabled pipe A 8bpc SDVO DVI audio disabled +vsync +hsync non-detected)
PCH_LVDS: 0x80308302 (enabled, pipe A, 18 bit, 1 channel)
CPU_eDP_A: 0x00000018
PCH_DP_B: 0x00000018
PCH_DP_C: 0x0000001c
PCH_DP_D: 0x00000018
TRANS_DP_CTL_A: 0x00000000 (enabled, pipe A, 18 bit, 1 channel)
TRANS_DP_CTL_B: 0x00000000 (enabled, pipe A, 18 bit, 1 channel)
TRANS_DP_CTL_C: 0x00000000 (enabled, pipe A, 18 bit, 1 channel)
BLC_PWM_CPU_CTL2: 0x80000000
BLC_PWM_CPU_CTL: 0x000011bb
BLC_PWM_PCH_CTL1: 0x80000000
BLC_PWM_PCH_CTL2: 0x11bb11bb
PCH_PP_STATUS: 0xc0000008 (on, ready, sequencing idle)
PCH_PP_CONTROL: 0xabcd0003 (blacklight disabled, power down on reset, panel on)
PCH_PP_ON_DELAYS: 0x01f40834
PCH_PP_OFF_DELAYS: 0x00010032
PCH_PP_DIVISOR: 0x0018690b
PORT_DBG: 0x00000000 (HW DRRS off)
RC6_RESIDENCY_TIME: 0xffffffff
RC6p_RESIDENCY_TIME: 0xffffffff
RC6pp_RESIDENCY_TIME: 0xffffffff

I hope I've been useful.
Thanks in advance
Pentothal

Edited by pentothal, 08 March 2013 - 01:13 PM.


#9
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
pentothal: Are you using Mountain Lion? Are you sure it is Intel HD Graphics 1st gen (Ironlake)? Do you have anything in your kernel log?
Your registers look fine (link width X1), but you have some additional registers that don't exist on Ironlake.

I have attached the DualLink version here, I hope this works.

#10
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
verteks: I'm using Mountain Lion 10.8.2. My laptop has a i3-350M (no dedicated video card) that is Intel HD Graphics 1st Gen I think. What do you want me to look for in the kernel log?
I'll try the DualLink version but you forgot to attach it.

Cheers
Pentothal

#11
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
It didn't get attached! I've uploaded both here: http://www.fileconvo...57025242d1a01d2

pentothal: Well, I can't guarantee it working on ML, I only have SL.

#12
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
verteks: thanks for the upload. I'll try them on Mountain Lion and let you know.

Thanks again!
Pentothal

#13
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
Not working :(. Same spinning wheel. Maybe I could try all the appleintel kexts from 10.6.8.
Verteks: could you upload them? Is the FB supposed to work in 64 or 32 bit mode?

Thanks
Pentothal

#14
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
I can't upload them, I have a {censored} connection. I have patched both 32 and 64 bit versions. You could upload the one from ML and I'll try to patch it (if it's not too different.)

Attached Files


Edited by verteks, 08 March 2013 - 02:48 PM.


#15
sartemd174

sartemd174

    InsanelyMac Protégé

  • Members
  • Pip
  • 42 posts

Not working :(. Same spinning wheel. Maybe I could try all the appleintel kexts from 10.6.8.
Verteks: could you upload them? Is the FB supposed to work in 64 or 32 bit mode?

Thanks
Pentothal

Same thing for me.

#16
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
Verteks: Ok I attach to this post the AppleIntelHDGraphicsFB.kext. I found the kext in this post:
http://www.insanelym...on-lenovo-x201/
I think it's the kext from 10.8.2

Please take a look and see what you can do.

Thanks in advance
Pentothal

Attached Files



#17
verteks

verteks

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
OK, here they are, for Mountain Lion.

pentothal: use the SingleLink version.

Attached Files



#18
sartemd174

sartemd174

    InsanelyMac Protégé

  • Members
  • Pip
  • 42 posts
http://puu.sh/2e7WC/247654d8a3

I tried SL 10.6.8 and ML 10.8.2 and i got this thing.

Intel i5-480m first gen Arrandale (8086 0046 rev002)

Can you upload your kexts(AppleIntelHDGraphics or anything else?)

#19
trik82

trik82

    InsanelyMac Protégé

  • Members
  • Pip
  • 20 posts
tested on 10.8.2 with asus u30jc (nvidia g310m + intel hd 1st gen). always stuck at grey screen

#20
alexanderq

alexanderq

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 188 posts
  • Gender:Male
@ verteks
Are you sure you using only the kexts and no DSDT patcing no strings nothing else?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy