- Закладка в OS X, продлевающая работу от батарейки для избранных приложений
- Зачем 2 GPU?
- gfxCardStatus
- Проблема переключения и официальная документация
- Решение в Chromium
- Закладка
- gfxCardStatus for Mac
- Review
- Free Download
- specifications
- Status bar menu application that enables MacBook Pro users to manually switch between GPUs to preserve battery life when running power hungry graphics
- What’s new in gfxCardStatus 2.4.4i:
- Check which graphics card is active on your MacBook Pro
- Identify the applications that activate the more power hungry GPU
- Filed under
- Download Hubs
- macOS 11 Big Sur on Unsupported Macs Thread
- ribero
- ribero
- iMac-Oldschool
- jackluke
- iMac-Oldschool
- jackluke
- amgff84
- iMac-Oldschool
- Attachments
- jackluke
- nandor690
- apfelbaum
- buckrock
- buckrock
- thatsmeonlyme
- avisavis
Закладка в OS X, продлевающая работу от батарейки для избранных приложений
Зачем 2 GPU?
Ноутбуки с двумя GPU появились уже очень давно. Первый MacBook Pro с такой технологией вышел еще в 2008 году.
Преимущество двух GPU в гибкости. Когда вам не нужна вся мощь видео системы, вы используете встроенное в процессор видео, наслаждаясь долгой работой от батарейки. Однако если вы захотели развлечься, то к вашим услугам мощный дискретный GPU. Да, он ест батарейку и жужжит вентиляторами, но дает хороший FPS в играх. Как же одному приложению переключать GPU?
В теории, переключение должно происходить автоматически при изменении нагрузки на видеокарту. Однако на практике все не так просто.
В Windows за переключение отвечают драйвера видеокарты. В них прописана куча игр и приложений с предпочитаемыми настройками. А пользователь может сам выбрать, когда задействовать мощное дискретное GPU, а когда хочется поработать в тишине.
В OS X с переключением все сложение. Начнем с того, что драйвера для OS X пишет сама Apple.
Кстати, это приводит к таким казусам, как очень устаревшая версия OpenGL. И никакие петиции не помогают исправить это положение.
gfxCardStatus
В OS X вы даже не можете понять, какой GPU сейчас работает. Если только по жужжанию вентиляторов.
К счастью, есть отличная утилита gfxCardStatus, которая показывает какая видеокарта активна, и даже позволяет переключаться между ними.
Когда включается дискретный GPU, утилита показывает, какое приложение вызвало переключение.
Проблема переключения и официальная документация
Подразумевается, что под OS X переключение происходит автоматически.
Например, в Safari обычно используется встроенный GPU. Но, если вы зайдете на сайт с WebGL, то произойдет переключение на дискретный GPU.
Однако, если вы сами захотите написать приложение, которое бы могло само выбирать режим работы, вас ждет неприятный сюрприз.
Начнем с того, что в официальной документации нет ответа на вопрос, как же правильно переключаться. При это написаны очень странные вещи. Но документация дает набор ключевых слов, по которым можно найти информацию.
Решение в Chromium
У нас есть отличный open-source проект chromium, который смог решить эту проблему. Надо создавать CGLPixelFormatObj с флагом kCGLPFAAllowOfflineRenderers при инициализации OpenGL контекста. В этом случае будет использоваться текущий (встроенный) GPU.
А если вы хотите переключится на дискретный GPU, то надо просто создать CGLPixelFormatObj без флагов. Даже OpenGL контекст не нужен. Для того, чтобы вернуться на встроенный GPU, просто удалить этот CGLPixelFormatObj:
Закладка
Я написал тестовое приложение, которое почти работало. Почему почти? Потому что удаление CGLPixelFormatObj не приводило к переключению обратно на встроенный GPU! Причем у chromium это получалось.
Зная, что в драйверах Nvidia для Windows есть специальные настройки для chromium, и то, что они определяют chromium по имени exe’шника, я ожидал что-то подобное и здесь.
Источник
gfxCardStatus for Mac
Review
Free Download
specifications
Status bar menu application that enables MacBook Pro users to manually switch between GPUs to preserve battery life when running power hungry graphics
What’s new in gfxCardStatus 2.4.4i:
- This update will default to integrated-only mode (if possible) when launching gfxCardStatus. If there are already apps open creating discrete dependencies, then it will not default to integrated-only mode.
Read the full changelog
MacBook Pro models come with dual GPUs, and macOS a switching system that activates one or the other, depending on your needs. gfxCardStatus is a simple status bar menulet that enables you to manually control switching between the graphic cards.
gfxCardStatus resides in your status bar and provides details about the currently used GPU, together with the current power source: battery or AC. If the system switches to one or another, you will receive alerts via the Notifications Center.
Check which graphics card is active on your MacBook Pro
Note that the gfxCardStatus status bar icon changes depending on the currently active switching mode: i is for Integrated Only, and d represents the Discrete Only mode. In addition, you can also choose to activate the Dynamic Switching mode, which means that the built-in macOS controller takes over.
If you opt to activate the Integrated Only mode, your MacBook Pro will go on and use the more battery-friendly graphics card. Consequently, the Discrete Only preset enables the graphic card that needs more power.
gfxCardStatus can also help you distinguish the applications that activate the more power hungry graphics card. Just navigate to the status bar menu and open the Dependencies lists. This way, you get to see if the Discrete Only mode is turned on and taking up resources without a good reason.
Identify the applications that activate the more power hungry GPU
Worth mentioning is that gfxCardStatus needs to be on the Dynamic Switching mode if you want to use an external display. Also, you cannot switch to the Integrated Only mode if there are apps in the Dependencies list.
To sum up, gfxCardStatus offers manual control over the GPU switching modes for MacBook Pro users. The dual-GPU can be managed automatically by the operating system, but gfxCardStatus enables you to force the switch and preserve battery life in particular situations.
Filed under
Download Hubs
gfxCardStatus is part of these download collections: GPU Managers
Источник
macOS 11 Big Sur on Unsupported Macs Thread
ribero
macrumors newbie
Thanks for the feedback, it’s strange. May be the difference is related to the Mac we run. What Mac are you using ?
In my context, I always have this «displaypolicyd» blocking the switch even if I restart with GfxCardStatus set to integrated only.
When I kill manually «displaypolicyd» I can switch without the error notice.
For information : after killing displaypolicyd it does not relaunch automatically. I do not know what is the use of this process.
Update : I found that the settings «Automatic Graphic Switching» in Battery Panel is not ticked by default. If I set GfxCardStatus to force use of NVIDIA (discrete) then ticking this preference set the GPU to intel ! (So it’s possible to switch back and forth between Intel and NVIDIA using macOS BS) but the settings is not saved and when I restart the Mac it’s always the NVIDIA card that is used.
ribero
macrumors newbie
I have done some additional testing about GPU switching. Here are the results of my findings :
- On my setup (MBP 15 Retina mid-2012) GPU switching by macOS is not working (clean install of BS using Barry’s micro patch). MBP starts on NVIDIA card and never switch back to Intel BUT :
- if I kill the process » displaypolicyd » then macOS BS is able to switch back and force between Intel / NVIDIA. It the same thing with GfxCardStatus which start to work only when this process is killed.
- In macOS BS: if setting «Automatic Graphic Switching» is on (and the displaypolicyd has been killed before) then the Intel card is used, launching an application that requires a more powerful GPU (ex: Unigine Valley Benchmark) will switch the GPU to NVIDIA. Quitting the application that requires the powerful GPU allows macOS BS to switch back on Intel -> same behaviour than in Mojave/Catalina !
So in resume:
- GfxCardStatus does not seems to be mandatory, even if it is very useful to stick macOS BS on the Intel or NVIDIA GPU (or let it do is automatic switching)
- process diplaypolicyd is blocking GPU switching. This process (launched during macOS startup) also exists in previous macOS versions but does not block switching. Why is it blocking GPU switching ? What is the impact of killing this process ?
- GPU Switching settings in macOS BS (Battery / Power settings panel) are working (switch and save preferences) once you have killed the displaypolicyd process. But will revert to NVIDIA at restart.
- GPU Switching is efficient -> Once culprit process killed, macOS BS runs on the intel chipset but switches to the NVIDIA GPU when power is required by apps.
- The whole Macbook Pro temperature is back to normal (compared to Mojave/Catalina) after switching to Intel GPU
It is very promising !! I still need to understand why displaypolicyd is blocking GPU switching on my setup and why other people like @avisavis are not facing the issue.
EDIT :
- sudo launchctl stop com.apple.displaypolicyd -> restore macOS BS GPU switching capabilities
- sudo launchctl start com.apple.displaypolicyd -> NVIDIA GPU becomes the only one GPU used by system, no more switching possible
iMac-Oldschool
macrumors member
I just updated the «BigSur BaseSystem fix» for any stock createinstallmedia USB BigSur Installer , now this script should work from any macOS (doesn’t require more an already BigSur installed), first requirement is that from a macOS Recovery terminal set csrutil disable
then get an «Install macOS Big Sur Beta.app» (currently beta4 12,3 gb) making a stock apple USB BigSur installer with this method:
then apply the «BigSur BaseSystem legacy usb fix» , after unplug and plug again your USB drive and apply the «BigSur BaseSystem legacy usb fix2» .
After made you can boot from a non-APFS or legacy USB Mac the USB BigSur Installer from apple startup manager, and to upgrade or install it, open an Utilities terminal and type:
(that is abbreviation for /Volumes/Image\ Volume/Hax3.sh )
(example picture attached) then close, and open the «Install macOS» (little circle BigSur icon) directly from the Utilities recovery environment and it should install or upgrade on eligible volumes.
Currently you can only install on internal SATA disk with a non-APFS or legacy USB Mac (while recent USB Mac can install also on external USB disk), but the advantage is that you can update a previous BigSur Installation and also having an USB BigSur Installer (working on legacy USB Mac) you can use the ASentientBot fix apfs_systemsnapshot and diskutil apfs deleteSnapshot to fix «sudo mount -uw /» (or instead the weird method to skip the stage3 installer).
For non-APFS or legacy USB Mac to boot BigSur desktop after installation you could use this: USBOpenCoreAPFSloader3b.app.zip or this updated: USBOpenCoreAPFSloader4.app.zip
making it with the option «Near an USB device without erasing» and selecting the USB BigSur Installer label as target.
edit:
From my earlier tests you can use a previous /BaseSystem/BaseSystem.dmg even to boot a recent BigSur «Install macOS.app», so I’d advise to keep a copy of the patched BaseSystem.dmg (size 840 MB) that you can reuse.
Because apple with BigSur uses «two BaseSystem.dmg» (three considering the APFS Recovery), the second one is unpackaged from SharedSupport.dmg during the stage1 installer and copied here /Volumes/YourBigSurLabel Data/macOS Install Data/ to start the stage2 installer (that’s why non-APFS or legacy USB Mac can only install it on internal SATA disk).
jackluke
macrumors 68040
To make an USBOpenCore (you should use 3b for that machine) rename the USB for the Installer (or any USB drive) without contain whitespaces example «InstallBigSur» or «AnyUSBLabel», the USBOpenCore is mainly required for non-APFS firmware to continue the stage2 «macOS Installer».
The kp is due to telemetry plugin but with snapshot booting if you already installed BigSur you can use directly this (without opencore): BigSur Penryn beta3 prelinkedkernel fix.command.zip
iMac-Oldschool
macrumors member
To make an USBOpenCore (you should use 3b for that machine) rename the USB for the Installer (or any USB drive) without contain whitespaces example «InstallBigSur» or «AnyUSBLabel», the USBOpenCore is mainly required for non-APFS firmware to continue the stage2 «macOS Installer».
The kp is due to telemetry plugin but with snapshot booting if you already installed BigSur you can use directly this (without opencore): BigSur Penryn beta3 prelinkedkernel fix.command.zip
jackluke
macrumors 68040
after a reboot without Wifi, try this from terminal: open /S*/L*/P*/Network.prefpane
and select your Wifi network.
amgff84
macrumors 6502
I wonder if this operating system will be easier for machines to run because of the switch to ARM?
I know this OS isn’t well received yet, but I like what I have seen so far.
Does’t ARM require simpler instructions?
iMac-Oldschool
macrumors member
@jackluke,
Big Sur now boots from EFI boot.
WiFi and sound are still not working.
Other issue is that the boot screen now shows 10 icons, most of which are just called EFI boot.
Thanks for your support.
I’m not going to invest more effort in an early Beta. The team on this thread will no doubt fix all the issues before the final release. Replacing a 12 year old iMac can be put off for a bit longer, at least until there is an alternative with a new look.
Attachments
- View media item» href=»/attachments/img_1399-jpeg.944612/» target=»_blank»>
jackluke
macrumors 68040
For non-APFS firmware Mac the «EFI Boot» could represent an APFS Preboot or an EFI bootloader (example the apfs loader shell), either my external USBopencore (EFI Boot with icon) or «prelinkedkernel fix» doesn’t produced any additional EFI Boot that weren’t already present on your disks, so those probably are the APFS Preboot for Catalina and BigSur or some removable «macOS Installer» that hasn’t completed its installation, anyway you can rename «Preboot» labels from Catalina or BigSur example:
https://forums.macrumors.com/thread. unsupported-macs-thread.2242172/post-28710470
While to remove any BigSur «com.apple.installer» (stage2 installer «macOS Installer») for me this worked directly from BigSur:
nandor690
macrumors 6502
apfelbaum
macrumors member
Thanks again for offering to help, here is a screenshot of my terminal. As recommended in the Readme from the
barrykn / big-sur-micropatcher I simply did drag and drop the micropatcher.sh file into the terminal window which is located in the big-sur-micropatcher-main folder in my user directory. Right after that I always drag and drop the USB-drive into the same window which is the Big-Sur install drive I created via the createinstallmedia command:
The drive is named Install macOS Big Sur Beta which is the name it got automatically after using the createinstallmedia tool and as also recommended in the Readme of the big-sur-micropatcher I did not change it. I also tried just using the micropatcher.sh command without specifying the path to the USB-drive but this also didn’t help:
I tried this now on two different Macs multiple times, on my late 2012 iMac (I want to install the Big Sur public beta on) and a 2018 Mac Book Pro still running Catalina.
Any ideas what I am doing wrong or what I could try?
Thanks in advance
buckrock
macrumors 6502
I have done some additional testing about GPU switching. Here are the results of my findings :
- On my setup (MBP 15 Retina mid-2012) GPU switching by macOS is not working (clean install of BS using Barry’s micro patch). MBP starts on NVIDIA card and never switch back to Intel BUT :
- if I kill the process » displaypolicyd » then macOS BS is able to switch back and force between Intel / NVIDIA. It the same thing with GfxCardStatus which start to work only when this process is killed.
- In macOS BS: if setting «Automatic Graphic Switching» is on (and the displaypolicyd has been killed before) then the Intel card is used, launching an application that requires a more powerful GPU (ex: Unigine Valley Benchmark) will switch the GPU to NVIDIA. Quitting the application that requires the powerful GPU allows macOS BS to switch back on Intel -> same behaviour than in Mojave/Catalina !
So in resume:
- GfxCardStatus does not seems to be mandatory, even if it is very useful to stick macOS BS on the Intel or NVIDIA GPU (or let it do is automatic switching)
- process diplaypolicyd is blocking GPU switching. This process (launched during macOS startup) also exists in previous macOS versions but does not block switching. Why is it blocking GPU switching ? What is the impact of killing this process ?
- GPU Switching settings in macOS BS (Battery / Power settings panel) are working (switch and save preferences) once you have killed the displaypolicyd process. But will revert to NVIDIA at restart.
- GPU Switching is efficient -> Once culprit process killed, macOS BS runs on the intel chipset but switches to the NVIDIA GPU when power is required by apps.
- The whole Macbook Pro temperature is back to normal (compared to Mojave/Catalina) after switching to Intel GPU
It is very promising !! I still need to understand why displaypolicyd is blocking GPU switching on my setup and why other people like @avisavis are not facing the issue.
EDIT :
- sudo launchctl stop com.apple.displaypolicyd -> restore macOS BS GPU switching capabilities
- sudo launchctl start com.apple.displaypolicyd -> NVIDIA GPU becomes the only one GPU used by system, no more switching possible
buckrock
macrumors 6502
YouTube video not loading/playing information:
Just found that Ad Blocker extension in Safari was the culprit. Disable in Safari—>Preferences—>Extensions and uncheck. Reload the page and your videos will load and play.
This info was out for some time now; some videos worked and others didn’t. Culprit is that Ad Blocker’s blocking algorithm disables some videos but not all. I thought I’d post it here just in case you guys are having video problems like I was.
FYI: MacBook Pro mid-2012, 802.11 ac card, used BarryKN patcher 0.0.20.
thatsmeonlyme
macrumors regular
after a reboot without Wifi, try this from terminal: open /S*/L*/P*/Network.prefpane
and select your Wifi network.
avisavis
macrumors newbie
I have done some additional testing about GPU switching. Here are the results of my findings :
- On my setup (MBP 15 Retina mid-2012) GPU switching by macOS is not working (clean install of BS using Barry’s micro patch). MBP starts on NVIDIA card and never switch back to Intel BUT :
- if I kill the process » displaypolicyd » then macOS BS is able to switch back and force between Intel / NVIDIA. It the same thing with GfxCardStatus which start to work only when this process is killed.
- In macOS BS: if setting «Automatic Graphic Switching» is on (and the displaypolicyd has been killed before) then the Intel card is used, launching an application that requires a more powerful GPU (ex: Unigine Valley Benchmark) will switch the GPU to NVIDIA. Quitting the application that requires the powerful GPU allows macOS BS to switch back on Intel -> same behaviour than in Mojave/Catalina !
So in resume:
- GfxCardStatus does not seems to be mandatory, even if it is very useful to stick macOS BS on the Intel or NVIDIA GPU (or let it do is automatic switching)
- process diplaypolicyd is blocking GPU switching. This process (launched during macOS startup) also exists in previous macOS versions but does not block switching. Why is it blocking GPU switching ? What is the impact of killing this process ?
- GPU Switching settings in macOS BS (Battery / Power settings panel) are working (switch and save preferences) once you have killed the displaypolicyd process. But will revert to NVIDIA at restart.
- GPU Switching is efficient -> Once culprit process killed, macOS BS runs on the intel chipset but switches to the NVIDIA GPU when power is required by apps.
- The whole Macbook Pro temperature is back to normal (compared to Mojave/Catalina) after switching to Intel GPU
It is very promising !! I still need to understand why displaypolicyd is blocking GPU switching on my setup and why other people like @avisavis are not facing the issue.
EDIT :
- sudo launchctl stop com.apple.displaypolicyd -> restore macOS BS GPU switching capabilities
- sudo launchctl start com.apple.displaypolicyd -> NVIDIA GPU becomes the only one GPU used by system, no more switching possible
@ribero Sorry if I didn’t provide the info clearly.
I didn’t test gfxcardstatus in big sur yet. The posted screenshots are from Catalina.
Due to some other issues, I couldn’t install big sur yet.
When someone posted that gfxcardstatus is not working properly for them from Mojave onwards, I pointed another fork of it which has been working fine for me in Mojave and Catalina. And I’m not killing displaypolicyd to switch the gpu manually.
Источник