Jump to content

Shiki — protected video playback support on recent hardware


vit9696
211 posts in this topic

Recommended Posts

This is a kext correcting certain issues at userspace level. At this moment it is only interesting for Ivy owners and newer.
 
Homepage | Historical background

It is likely reasonable to collect some stats with hardware reports (which ones worked ok, which ones failed). Please use the following format: CPU Model, GPU Model, IGPU Model (including ig-platform-id), OS X version. 

P. S. Read the FAQ before asking any questions.

  • Like 14
Link to comment
Share on other sites

Tested the kext on the following setups:

post-638272-0-03132700-1463838478_thumb.jpg

 

It works even if I connect my TV-Set via DP-to-HDMI-Adapter to the HP Laptop... :)It is running on both machines...

post-638272-0-61333600-1463838380_thumb.jpg

post-638272-0-22859900-1463838388_thumb.jpg

post-638272-0-68804100-1463838396_thumb.jpg

  • Like 2
Link to comment
Share on other sites

Can't say I really understand this kext, but for the first time iTunes plays trailers, I used to have audio only.

 

Z97 with haswell cpu, Intel 4600 enabled without connectors (04120004) and gtx660 connected with dvi to monitor.

 

Thanks!

Link to comment
Share on other sites

hi guys

 

forgive me for my ignorance but where is the kext?

 

I downloaded the master .zip but i don't see any kext in the folders.

 

Thanks for your support and sorry again

 

Never mind....

 

Maybe i am not yet awaken

 

Sorry

Link to comment
Share on other sites

hi guys

 

forgive me for my ignorance but where is the kext?

 

I downloaded the master .zip but i don't see any kext in the folders.

 

Thanks for your support and sorry again

 

Never mind....

 

Maybe i am not yet awaken

 

Sorry

 

post-1069282-0-66405700-1463851068_thumb.png

Link to comment
Share on other sites

  • 2 weeks later...

can you lower down the build to support 10.8 please

Hi, I had already replied but the forum ate my message unfortunately. Supporting 10.8 is not as easy as just setting the compatibility mode to 12.x and building with a correct SDK.

Last time I updated Shiki I spent quite some time trying to get it run on 10.8.5, however, this would require using a different method, i.e. spending a reasonable amount of time I cannot afford at the moment. Do you absolutely need 10.8 support?

  • Like 1
Link to comment
Share on other sites

Hi

well... 10.8 was the first build to support full 64-bit operating system and therefore should still be included in any form of development. IMO :)

Well, in this case I guess there is no reason for it. Nobody uses it anyway. I could imagine 10.6 support (because it was the last 32-bit OS X), but not 10.8 which unlike 10.9 gets no security updates these days. You could manually patch the files of 10.8 if you really need to play DRM content on it (unlike 10.9+ code signature is not verified there).

Link to comment
Share on other sites

  • 2 weeks later...

Hello vit9696,

 

If you see this, thanks for your awesome work! I appreciate what you and all the other users have done to contribute to this project. I do have one small question, born of my own ignorance. I use the nVidia webdrivers since I have a Maxwell card, and in your FAQ it's stated "NVIDIA drivers do not properly add these values necessary for VDA decoding for Maxwell GPUs in their Web drivers. You could add them with a plist-only kext. The correct values for VP4 GPUs are:"

 
Since I am a bit unfamiliar with creating kexts, I do have to ask what that might entail. If someone else might know how to do this I'd also greatly appreciate it. My questions would be what should go into the Info.plist in the supposed custom kext, and what to call the kext. I'd also need some guidance on how to make the kext apply its values to my Maxwell, ie linking it. Is that in the deviceid? I tried adding the IOVARendererID and IOVARendererSubID values with an <integer> string to my existing NVDAGM100HalWeb.kext info.plist and that just causes a KP during the bootup.
 
Granted, I only tried that because I didn't know that would cause a crash.
 
Thanks in advance to anyone with the know-how to do this or could point me the right direction creating a plist-only kext that affects my Maxwell card.
Link to comment
Share on other sites

  • 2 weeks later...

I tried with my Asus X550LDV with the Intel HD4400 and Nvidia 820m, which i disabled in DSDT.

Without shiki, I get audio on iTunes trailer, when I install Shiki, and the play a trailer from iTunes, Mac OS X freezes and I have to force shutdown. Hope you keep improving the kext and working on it. Thanks.


I have a intel core i7 - 42xx (Haswell) and using Mac OS X 10.11.6

  • Like 1
Link to comment
Share on other sites

"Azul GPUs (e.g. HD 4400, HD 4600) when used with a connector-full platform-id without a discrete GPU cause a system freeze due to not working HDCP playback. The issue is unrelated to Shiki, and happens regardless of iTunes and QuickTime."

 

How can i start to reverse engineer it?? what would be the first step?

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

When using my GTX 780, both default drivers as well as web drivers work without any problem. When I switching to my GTX 960 (while using web drivers) it stops working because of the hardware decoding fails. I downloaded the iMac.kext and filled in the values mentioned in the FAQ (for both VP3 and VP4, without any space) but it keeps dysfunctional. Neither HD4600 decoding nor nVidia decoding works when the GTX 960 is plugged in.

Link to comment
Share on other sites

GTX 780 gpu does not provide any hardware accelerated decoding itself due to unimplemented hardware decoding. Neither do any GPUs newer than GT 2xx as far as I know. That's why a lot of recommendations on the net recommending to use forceNV/forceATI/forceIntel are mad, and these people are ignorant to FAQ, which explicitly states:

No override preferences are used;

You should enable both Intel HD4600 and GTX 780, with HD4600 powered with a connector-free ig-platform-id (<04 00 12 04>) as a secondary GPU. You might also need iMac.kext to allow forwarding intel hardware decoding to nvidia (easily checked by value presence in IOReg). Your GPU is definitely VP4, so you might not even need any modifications.

Check "Shiki-based solution for non-freezing Intel and/or any discrete GPU" FAQ section all in all :)

Link to comment
Share on other sites

You should enable both Intel HD4600 and GTX 780, [...] so you might not even need any modifications.

 

That's totally correct, decoding is performed by the Intel HD 4600, my question is why it works when my GTX 780 is plugged in while it doesn't work when I use my GTX 960. I do not try to override any setting, so using the old Kepler works OOB while Maxwell does not at all (using iMac.kext only throws different errors).

Link to comment
Share on other sites

Oops, looks like I was too busy yesterday and somehow managed to completely misinterpret your message. Sorry.

That's strange, mhm. The keys are certainly needed for Maxwell GPUs:

IOVARendererID → <08 00 04 01>

IOVARendererSubID → <03 00 00 00>

 

And iMac.kext did work for a couple of people last time they tried. Did you check them via IOReg after installing the kext?

To get hardware decoding work you need proper GFX0 / IGPU naming too.

Link to comment
Share on other sites

My bad, I got it working now. Naming of IGPU was correct but it as it seems Xcode .plist editor screwed the data field up. I edited it again using Plist Editor Pro and now it works pretty well with the GTX 960 and web drivers.

 

I know it's a bit off-topic, but do you know if Apple plans to support HEVC hardware decoding? The current Skylake (partial/8bit) and upcoming Kaby Lake (full/10bit) CPUs have support for it.

Link to comment
Share on other sites

I know it's a bit off-topic, but do you know if Apple plans to support HEVC hardware decoding? The current Skylake (partial/8bit) and upcoming Kaby Lake (full/10bit) CPUs have support for it.

 

The answer is obvious :)

Link to comment
Share on other sites

  • 3 weeks later...
×
×
  • Create New...