artas182x01 Posted January 3, 2017 Share Posted January 3, 2017 The second card used to work fine since Yosemite but the problem has always been getting the first one connected to the display and being recognized as built-in. My previous investigations led me to conclude that IGD (Intel Graphics Display) does not completely go out of the scene even with two dedicated GPUs are on. That is, IGD is the only graphics device directly connected to the display and while the two Nvidia GPUs are active IGD fades out but still responsible (alone) to deliver all the processed graphics to the display. This behavior may be fine in Windows and Linux as the driver knows how to deal with it ignoring that gateway (IGD) but it is not the case for macOS where this setup just does not exist (for real macs) and the driver is not aware of it. So with 2 Nvidia GPUs --> IGD fades out (to be a gateway only) --> macOS see the 2 GPU's --> macOS cannot see the display (only a gateway) --> macOS assume the gateway is the display for the system (which is not exactly true) --> configurations for 1st Nvidia with display fails --> macOS does not work correctly graphics wise. This is all a theory and could be completely wrong (I hope). For that, I'm reading into how IGD work with Optimus (how the connections are designed). I wish if there were any technical manual for this type of gaming PCs where the details of the hardware are shown. Ok, but we have open source drivers like noveau for Linux and they support our configuration. I think the problem is that OS X can't read VBIOS to read config however we can extract it from BIOS and try to inject values. Wysłane z iPhone za pomocą Tapatalk Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2343300 Share on other sites More sharing options...
ahmed_ais Posted January 3, 2017 Author Share Posted January 3, 2017 Ok, but we have open source drivers like noveau for Linux and they support our configuration. Yea, I will try to take a look inside the source code for hints. I think the problem is that OS X can't read VBIOS to read config however we can extract it from BIOS and try to inject values. Take a read few pages back as the idea of extracting VBIOS have been discussed before (by notten) although I don't remember we did any injections. Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2343306 Share on other sites More sharing options...
artas182x01 Posted January 3, 2017 Share Posted January 3, 2017 We need probably EFI strings which describes connectors used by our card so OS X will know where to route display. Probably Lenovo uses different config for internal 755m which is not supported by OS X Wysłane z iPhone za pomocą Tapatalk Yea, I will try to take a look inside the source code for hints. Take a read few pages back as the idea of extracting VBIOS have been discussed before (by notten) although I don't remember we did any injections. Look at this: https://github.com/skeggsb/linux/commit/714a98fc3f20934ce8098667b809de954ebab93c Wysłane z iPhone za pomocą Tapatalk Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2343312 Share on other sites More sharing options...
ahmed_ais Posted January 10, 2017 Author Share Posted January 10, 2017 We need probably EFI strings which describes connectors used by our card so OS X will know where to route display. Probably Lenovo uses different config for internal 755m which is not supported by OS The problem with EFI strings is to know priori what are the available connections and then to implement them within the strings. I have been trying to understand this the past few days but it gets more complicated. So here are my findings so far ... On Windows with Intel GPU active (ultrabay card is out), the Intel GPU is connected to a display with these properties (taken from device manager): Device instance path: DISPLAY\LGD0416\4&7A74E6D&1&UID265988 Hardware IDs: MONITOR\LGD0416 BIOS device name: \_SB.PCI0.GFX0.DD1F Parent: PCI\VEN_8086&DEV_0416&SUBSYS_380117AA&REV_06\3&11583659&0&10 Now when booting with ultrabay card in, the built-in Nvidia GPU controls a display with theses properties: Device instance path: DISPLAY\LGD0416\5&339079E2&2&UID4353 Hardware IDs: MONITOR\LGD0416 BIOS device name: \_SB.PCI0.PEG0.PEGP.LCD Parent: PCI\VEN_10DE&DEV_0FCD&SUBSYS_380017AA&REV_A1\4&57d6125&0&0008 And that made me thinking because while in both scenarios the GPU connected to the same type of monitor (LGD0416), each GPU had a different code to execute to connect to the monitor as defined in ACPI. Intel GPU uses DD1F device within GFX0 (SSDT-6) while Nvidia GPU uses LCD device defined in PEG0.PEGP (SSDT-7). So I thought to check in OS X and see how both GPUs connect using IOREG. In case of Intel GPU, it was connected correctly to display defined by device DD1F [iGPU@20000 -> DD1F@410] as AppleBacklightDisplay. For Dual-Nvidia setup, I found the built-in GPU connects through device LCD (as in Windows) [PEG0@1000 -> PEGP@0 -> LCD@8000a450] but as AppleDisplay. The first thing to note here is having the built-in GPU connected to display that is identified as AppleDisplay. I have read multiple times that this identification is used when connecting to external displays and this is why we see the same information in display settings in System Preferences. I have also read that this could be fixed by injecting some properties to the Nvidia GPU (using EFI strings for example) but all my attempts to fix this failed so far. The second thing I found is that GFX0 device (at address @20000 which is Intel GPU) is still available in Dual-Nvidia setup and visible in IOREG:IODeviceTree and still owns device DD1F (a device to control monitor). I think this is just because it exist in ACPI tables but have no effect. To verify this, I made an SSDT to disable/hide the GFX0 device using a call to _STA method and the Dual-Nvidia setup booted normally with GFX0 not found any more in IOREG. Now what I'm trying to understand is why OS X is seeing monitor at PEG0.PEGP.LCD as external (i.e. AppleDisplay instead of AppleBacklightDisplay) and maybe if we compare the code of devices GFX0.DD1F and PEG0.PEGP.LCD we could find some clues. In addition, I'm still wondering why I can't boot without nv_disable=1 and what can we do about it. Maybe both are related and without nv_disable=1 flag the driver attempts to loads but can't find the display it expects so it stalls (but no KP here). Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2347539 Share on other sites More sharing options...
ahmed_ais Posted January 11, 2017 Author Share Posted January 11, 2017 Just adding a reference to another laptop having similar issue. Although the topic is old, Imaurad had posted the same observations I posted above .. Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2347751 Share on other sites More sharing options...
artas182x01 Posted January 24, 2017 Share Posted January 24, 2017 A long time ago when y510p has been just released Linux also couldn't boot with open source drivers and it had similar issue. Then they fixed this issue in open source driver and now it works out of box. We should find this issue and see how it was fixed. I think there is a simple workaround. Wysłane z iPhone za pomocą Tapatalk Just adding a reference to another laptop having similar issue. Although the topic is old, Imaurad had posted the same observations I posted above .. Look at this https://git.backbone.ws/linux/backbone-sources/commit/714a98fc3f20934ce8098667b809de954ebab93c?diffmode=sidebyside Wysłane z iPhone za pomocą Tapatalk https://github.com/ulli-kroll/linux-comcerto/commit/205877f9156daebb975fb46205488da6fdf5b3f5 This workaround used for sure our Y510p. Probably OS X doesn't implement it. Wysłane z iPhone za pomocą Tapatalk Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2356427 Share on other sites More sharing options...
ahmed_ais Posted January 25, 2017 Author Share Posted January 25, 2017 A long time ago when y510p has been just released Linux also couldn't boot with open source drivers and it had similar issue. Then they fixed this issue in open source driver and now it works out of box. We should find this issue and see how it was fixed. I think there is a simple workaround. Look at this https://git.backbone.ws/linux/backbone-sources/commit/714a98fc3f20934ce8098667b809de954ebab93c?diffmode=sidebyside https://github.com/ulli-kroll/linux-comcerto/commit/205877f9156daebb975fb46205488da6fdf5b3f5 This workaround used for sure our Y510p. Probably OS X doesn't implement it. I will look into this meanwhile ............ Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2356742 Share on other sites More sharing options...
artas182x01 Posted January 28, 2017 Share Posted January 28, 2017 I will look into this meanwhile ............ Hi! I discovered one more thing. I extracted VBIOS from our BIOS/EFI and I found out that there are 2 VBIOSes for our card - one when NVIDIA it's primary card and the second when it's used as secondary. The difference is that in first case VBIOS contains info about connectors whereas in the second there is not (because it's Optimus card). Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2358753 Share on other sites More sharing options...
DuongTHVN Posted May 25, 2017 Share Posted May 25, 2017 I will look into this meanwhile ............ try update to 10.12.5 install webdriver and push intelBacklight.kext into SLE may be your display will work. that's working on eDP M1000M, may be lucky on your! Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2430500 Share on other sites More sharing options...
artas182x01 Posted May 25, 2017 Share Posted May 25, 2017 try update to 10.12.5 install webdriver and push intelBacklight.kext into SLE may be your display will work. that's working on eDP M1000M, may be lucky on your! Recently I took apart Y510P and I discovered that display is connected using LVDS connector. It strange because both Windows and Linux show hat it's connected through eDP. Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2430518 Share on other sites More sharing options...
ahmed_ais Posted May 25, 2017 Author Share Posted May 25, 2017 Recently I took apart Y510P and I discovered that display is connected using LVDS connector. It strange because both Windows and Linux show hat it's connected through eDP. Yeah and a quick search on eBay showed results for Y510p LVDS cables but not any result for eDP cables. Another search led me here which say the same thing: it is an LVDS. Why would Windows and Linux say otherwise? I really wanna know !! Unless, the graphics source is genuine eDP but the display is LVDS and there's some kind of bridge device that connects between the two. PTN3460 is an example of this: PTN3460 is an (embedded) DisplayPort to LVDS bridge device that enables connectivity between an (embedded) DisplayPort (eDP) source and LVDS display panel. It processes the incoming DisplayPort (DP) stream, performs DP to LVDS protocol conversion and transmits processed stream in LVDS format. If that's the case, I think it could be related to the problem we have where macOS sees the built-in display as external. It could be that Nvidia driver (for mac) is not working fine with that bridge (why IGPU driver works fine with the bridge? no idea). [just a thought] Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2430587 Share on other sites More sharing options...
DuongTHVN Posted June 5, 2017 Share Posted June 5, 2017 i have check all ioreg from this topic. can not found display EDID at all ? try inject EDID for next test ! Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2435382 Share on other sites More sharing options...
artas182x01 Posted June 5, 2017 Share Posted June 5, 2017 i have check all ioreg from this topic. can not found display EDID at all ? try inject EDID for next test ! I can try, but in this case HDMI is not detected at all. While testing in VNC I discovered that there is no 3D acceleration and QE/CI at all whereas on the second GPU there is full support for that. Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2435390 Share on other sites More sharing options...
DuongTHVN Posted June 6, 2017 Share Posted June 6, 2017 I can try, but in this case HDMI is not detected at all. While testing in VNC I discovered that there is no 3D acceleration and QE/CI at all whereas on the second GPU there is full support for that. upload your ioreg at this test case! Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2436180 Share on other sites More sharing options...
artas182x01 Posted June 6, 2017 Share Posted June 6, 2017 upload your ioreg at this test case! Here you have. EDID injected. First card is detected as NVIDIA Chip Model, whereas the second is properly detected as 755M. As you can see internal screen is not detected, HDMI neither. I had to ZIP IOReg because size was bigger than 10M. MacBook Pro (Artur).zip Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2436311 Share on other sites More sharing options...
DuongTHVN Posted June 7, 2017 Share Posted June 7, 2017 Here you have. EDID injected. First card is detected as NVIDIA Chip Model, whereas the second is properly detected as 755M. As you can see internal screen is not detected, HDMI neither. I had to ZIP IOReg because size was bigger than 10M. i can not see internall display plug on any port. make it again with intelHD Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2437196 Share on other sites More sharing options...
artas182x01 Posted June 7, 2017 Share Posted June 7, 2017 i can not see internall display plug on any port. make it again with intelHD And that's the problem. I can't make it working. Wysłane z iPhone za pomocą Tapatalk Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2437407 Share on other sites More sharing options...
theFurai Posted December 16, 2017 Share Posted December 16, 2017 I see that activity died on this topic. Did anyone try to make it work with the newest MacOS HS 10.13.2 yet? Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2551543 Share on other sites More sharing options...
acctes Posted March 3, 2021 Share Posted March 3, 2021 (edited) Hope this Lenovo IdeaPad Y510P (LCFC NM-A032) Laptop Schematics helps someone to find solution for SLI version. 6361a_NM-A032_r1.0_schematics.pdf Edited March 3, 2021 by acctes Link to comment https://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/page/7/#findComment-2752337 Share on other sites More sharing options...
Recommended Posts