Contribute
Register

Quicklook Doesn't Preview jpgs, mp3 nor mp4.

Status
Not open for further replies.
So, if I understand this correctly, as it's not as per line two of your first code snippet, basically, it fails and needs your kext?

Correct.

Are you renaming PEGP to GFX0?

Is there a reason you have IGPU disabled?

Also, personally, I would use iMac18,3 for Z370 + i3 8350K. It's a much closer match. Plus, iMac14,2 may soon be on Apple's chopping block for dropping support.
 

Attachments

  • image.png
    image.png
    83 bytes · Views: 76
I have to confess I'm probably moving out of my depth with this :crazy:, but on checking IO I can see my GPU at:

IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1

I still have iGPU set at "auto" (so basically disabled etc.) and it doesn't appear in IO.

So, if I understand this correctly, as it's not as per line two of your first code snippet, basically, it fails and needs your kext?

:)

If you enable the IGPU, the IGPU device will be appeared in this path
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0

rename the device name it becomes (GFX0 -> IGPU)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU

your dGPU device name PEG0 is non-standard device name, macOS does not happy with the name, you rename it to match your SysDef (e.g. GFX0 for iMac13,2, GFX2 for MacPro6,1)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1

rename the device name it becomes (PEG0-> GFX0 or GFX2)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0
or
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX2

the final result is something like that
Code:
ioreg -l | grep -i "IGPU"
    | |   +-o IGPU@2  <class IOPCIDevice, id 0x1000001fb, registered, matched, active, busy 0 (6307 ms), retain 20>
    | |   | |   "compatible" = <"pci1458,d000","pci8086,162","pciclass,038000","IGPU">
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/IGPU@20000"
    | |   | |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((5291294645182070784,4295098369,"               First Level Interrupt Handler Count"),(5291294645182070785,4295098369,"              Second Level Interrupt Handler Count"),(5291294645182070786,4295098369,"        First Level Interrupt Handler Time (MATUs)"),(5291294645182070787,4295098369,"   Second Level Interrupt Handler CPU Time (MATUs)"),(5291294645182070788,4295098369,"Second Level Interrupt Handler System Time (MATUs)")),"IOReportChannelInfo"={"IOReportChannelUnit"=0},"IOReportSubGroupName"="IGPU 1"})
            "logIGPU" = Yes

Code:
ioreg -l | grep -i "GFX0"
    | |   |   +-o GFX0@0  <class IOPCIDevice, id 0x1000001c9, registered, matched, active, busy 0 (6256 ms), retain 26>
    | |   |   | |   "compatible" = <"pci1458,353e","pci10de,fc1","pciclass,030000","GFX0">
    | |   |   | |   "attached-gpu-control-path" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/NVDA,Display-A@0/NVDA/AGPM"
    | |   |   | |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((5291294645182070784,4295098369,"               First Level Interrupt Handler Count"),(5291294645182070785,4295098369,"              Second Level Interrupt Handler Count"),(5291294645182070786,4295098369,"        First Level Interrupt Handler Time (MATUs)"),(5291294645182070787,4295098369,"   Second Level Interrupt Handler CPU Time (MATUs)"),(5291294645182070788,4295098369,"Second Level Interrupt Handler System Time (MATUs)")),"IOReportChannelInfo"={"IOReportChannelUnit"=0},"IOReportSubGroupName"="GFX0 1"})
    | |   |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PEG0@10000/GFX0@ffff"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |       "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/NVDA,Display-B@1/NVDA/display0/AppleDisplay-10ac-f015"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
 
If you enable the IGPU, the IGPU device will be appeared in this path
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0
I believe in both cases (IGPU/GFX0) it is looking for the integrated graphics (@2 being the same address). So with the default names (e.g. PEGP for discrete and GFX0 for integrated) it should be enough just to enable the IGPU.

If you already renamed PEGP->GFX0 you'd likely also need to do GFX0->IGPU to avoid name clash. Skylake+ may also require renaming HECI->IMEI.

The path to discrete card (with renames) on my system is
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPP/GFX0@0
which will never match what it is looking for at its under PEG0 or whatever.
 
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0
I believe in both cases (IGPU/GFX0) it is looking for the integrated graphics (@2 being the same address). So with the default names (e.g. PEGP for discrete and GFX0 for integrated) it should be enough just to enable the IGPU.

If you already renamed PEGP->GFX0 you'd likely also need to do GFX0->IGPU to avoid name clash. Skylake+ may also require renaming HECI->IMEI.

The path to discrete card on my system is
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPP/GFX0@0
which will never match what it is looking for.

I found that the IGPU always at this address @2, maybe the circuit is hard wired.

yes, rename GFX0->IGPU first, followed by PEGP->GFX0, to avoid name clash

normally I would listing all the devices name, then rename the device names to match the real mac device name (not include the USB device names)
Code:
ioreg -l | grep '"acpi-path" ='
    | | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0"
    | |   |     "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/MCHC@0"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PEG0@10000"
    | |   |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PEG0@10000/GFX0@ffff"
    | |   |     |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PEG0@10000/HDAU@1"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/IGPU@20000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/XHC@140000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EH02@1a0000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/HDEF@1b0000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/RP01@1c0000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/RP05@1c0004"
    | |   |     |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/RP05@1c0004/GIGE@0"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EH01@1d0000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/P0P1@1e0000"
    | |   |     "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/LPCB@1f0000"
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/SATA@1f0002"
    | |   |     |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/SATA@1f0002/SPT1@1ffff"
    | |     |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/SBUS@1f0003"
 
Last edited:
Correct.

Are you renaming PEGP to GFX0?

Is there a reason you have IGPU disabled?

Also, personally, I would use iMac18,3 for Z370 + i3 8350K. It's a much closer match. Plus, iMac14,2 may soon be on Apple's chopping block for dropping support.

Ah good.

No, I'm doing no graphics renaming. Thinking back, I've never done any and only ever enabled the iGPU for temporary tests without a discrete card. I think my, perhaps wonky, reasoning has always been to keep CPU temperatures to a minimum (for me it's a thing) by using less power. I come from an engineering background if that helps. :rolleyes:

I take your point about the system-definition. You're right, Apple must have a route-plan and we often see those useful sys-refs slipping away. Before iMac14,2 I was a staunch MacPro3,1 user. It solved so many, then current, problems.

I remember those MacPro5,1 problems so never strayed far from known reliable ones. If 18,3 is up with them now I'll have to do some testing.

:)
 
If you enable the IGPU, the IGPU device will be appeared in this path
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0

rename the device name it becomes (GFX0 -> IGPU)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU

your dGPU device name PEG0 is non-standard device name, macOS does not happy with the name, you rename it to match your SysDef (e.g. GFX0 for iMac13,2, GFX2 for MacPro6,1)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1

rename the device name it becomes (PEG0-> GFX0 or GFX2)
Code:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX0
or
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX2

the final result is something like that
Code:
ioreg -l | grep -i "IGPU"
    | |   +-o IGPU@2  <class IOPCIDevice, id 0x1000001fb, registered, matched, active, busy 0 (6307 ms), retain 20>
    | |   | |   "compatible" = <"pci1458,d000","pci8086,162","pciclass,038000","IGPU">
    | |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/IGPU@20000"
    | |   | |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((5291294645182070784,4295098369,"               First Level Interrupt Handler Count"),(5291294645182070785,4295098369,"              Second Level Interrupt Handler Count"),(5291294645182070786,4295098369,"        First Level Interrupt Handler Time (MATUs)"),(5291294645182070787,4295098369,"   Second Level Interrupt Handler CPU Time (MATUs)"),(5291294645182070788,4295098369,"Second Level Interrupt Handler System Time (MATUs)")),"IOReportChannelInfo"={"IOReportChannelUnit"=0},"IOReportSubGroupName"="IGPU 1"})
            "logIGPU" = Yes

Code:
ioreg -l | grep -i "GFX0"
    | |   |   +-o GFX0@0  <class IOPCIDevice, id 0x1000001c9, registered, matched, active, busy 0 (6256 ms), retain 26>
    | |   |   | |   "compatible" = <"pci1458,353e","pci10de,fc1","pciclass,030000","GFX0">
    | |   |   | |   "attached-gpu-control-path" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/NVDA,Display-A@0/NVDA/AGPM"
    | |   |   | |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((5291294645182070784,4295098369,"               First Level Interrupt Handler Count"),(5291294645182070785,4295098369,"              Second Level Interrupt Handler Count"),(5291294645182070786,4295098369,"        First Level Interrupt Handler Time (MATUs)"),(5291294645182070787,4295098369,"   Second Level Interrupt Handler CPU Time (MATUs)"),(5291294645182070788,4295098369,"Second Level Interrupt Handler System Time (MATUs)")),"IOReportChannelInfo"={"IOReportChannelUnit"=0},"IOReportSubGroupName"="GFX0 1"})
    | |   |   | |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/PEG0@10000/GFX0@ffff"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |       "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/NVDA,Display-B@1/NVDA/display0/AppleDisplay-10ac-f015"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"
    | |   |   | |   |   "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/nvAccelerator"

Comprehensive explanation. Thank you. I can see I'll need to do some updating soon to keep my Hack' reliable through future changes. :thumbup:
 
I still have iGPU set at "auto" (so basically disabled etc.) and it doesn't appear in IO.
If you want to enable it, ig-platform-id 0x3e920003 (with or without FakeID->IntelGfx 0x3e928086) might be what you need for InjectIntel=true in Clover.

Alternatively WhatEvergreen might set the necessary properties, leaving everything in Clover disabled.
 
If you want to enable it, ig-platform-id 0x3e920003 (with or without FakeID->IntelGfx 0x3e928086) might be what you need for InjectIntel=true in Clover.

Alternatively WhatEvergreen might set the necessary properties, leaving everything in Clover disabled.

I have been testing my Z370 system without WhateverGreen the last two days. I currently have everything working with the following:
  • No config.plist > Device > Properties entries related to IGPU.
  • No config.plist > Graphics > Inject Intel.
  • No config.plist > Graphics > RadeonDeInit.
  • No WhateverGreen.
  • GFX0 to IGPU rename.
  • PEGP to GFX0 rename.
  • 128MB assigned to IGPU in BIOS.
I'm on Mojave and haven't tested this in High Sierra (I already upgraded all my drives).

Also, previously, when I was injecting IGPU via config.plist > Devices > Properties, I was using 3E9B0007 because this was the only "desktop" id I found listed in this post. Is 3E920003 more appropriate?
 
Last edited:
Ah good.

No, I'm doing no graphics renaming. Thinking back, I've never done any and only ever enabled the iGPU for temporary tests without a discrete card. I think my, perhaps wonky, reasoning has always been to keep CPU temperatures to a minimum (for me it's a thing) by using less power. I come from an engineering background if that helps. :rolleyes:

I take your point about the system-definition. You're right, Apple must have a route-plan and we often see those useful sys-refs slipping away. Before iMac14,2 I was a staunch MacPro3,1 user. It solved so many, then current, problems.

I remember those MacPro5,1 problems so never strayed far from known reliable ones. If 18,3 is up with them now I'll have to do some testing.

:)

In terms of power consumption, you should always enable the IGPU, let the IGPU doing the multimedia jobs, like hardware H.264/HEVC decoding.

for example, one of my setup
Z77N, E3-1225 v2 with P4000 IGPU, 120GB SSD x1

System power consumption (not include the monitor)
System in idle ~ 32W
1080p H.264 video playback (with IGPU hardware video decoding), ~ 35 - 39W, depends on the video bit-rates
1080p H.264 video playback (without IGPU hardware video decoding, i.e. CPU software decoding), ~ 50W+
 
Also, previously, when I was injecting IGPU via config.plist > Devices > Properties, I was using 3E9B0007 because this was the only "desktop" id I found listed in this post. Is 3E920003 more appropriate?
I found that value for ig-platform-id in Clover sources. The comment is:

Intel UHD Graphics 630
Mobile: 0,
PipeCount: 0,
PortCount: 0,
STOLEN: 0MB,
FBMEM: 0MB,
VRAM: 1536MB,
Connector:,
BL: 1388

For enabling IntelAccelerator without any displays on the IGPU it should be enough. Supported device ids in AppleIntelCFLFramebuffer look to be:

0x3E9B8086
0x3EA58086
0x3E928086
0x3E918086

So FakeID is only necessary if device ID is not already one of those.

Looking in that post it looks like the connector-less (offline?) ig-platform-ids have been omitted from the Coffee Lake list. they're in the list for 10.14 beta 4.

0x3E920003 (desktop, 0 connectors, no fbmem)
0x3E910003 (desktop, 0 connectors, no fbmem)


I started using a similar-looking vanilla ig-platform-id for Haswell graphics also found in the Clover sources (0x04120004, device id=0412), no connectors, the IGPU doesn't appear in 'About this mac' as a Graphics/Displays device, but its in use for H264 and the hardware JPEG decode functions for example.
 
Status
Not open for further replies.
Back
Top