<div dir="ltr"><div dir="ltr"><div dir="ltr">Dear Ilia,<br><br>Thanks for your reply. The works seem complicated.<br>To the best of my knowledge, at a high level for building my 8K HW decode enabled Android OS, I need to do the following.<br><br>1. Extract firmware from the NVIDIA binary driver.<br>2. Make a customized kernel with the extracted firmware.<br>3. Replace Android-x86's kernel with the customized kernel.<br>4. Add libdrm, DDX, Mesa & libVDPAU to Android-x86 for userspace implementation.<br>5. Build the customized Android-x86 image.<br><br>Is there something I am missing or misunderstanding? Thank you!<br><br>Best regards,<br><br>Victor<br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, 19 Oct 2018 at 21:09, Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Oct 19, 2018 at 8:53 AM 孫偉程 <<a href="mailto:dmvictor@gmail.com" target="_blank">dmvictor@gmail.com</a>> wrote:<br>
> I can imagine there is a long way to go to fulfill my requirements. But I know a driver for my NVIDIA card is a must for the hardware decoder to work. Can somebody shed some lights that if I want to play an 8K HEVC encoded video on Android-x86 with NVIDIA's decoder enabled, what should I do in this project? And how to start?<br>
<br>
The steps are straightforward, although each one of them is fairly tricky.<br>
<br>
1. Load decoding firmware into the engine<br>
2. Hook up engine "servicing" (like interrupts, channels, etc)<br>
3. Figure out the how the commands work, what data they require, how<br>
that data is formatted, etc.<br>
4. Sit back and enjoy some 8K HEVC video.<br>
<br>
In VP3/4/5, there are 3 stages to decoding -- BSP (bit-stream<br>
processor), VP (video processor), and PPP (post-processing<br>
processor?). Starting with VP6, we believe these got integrated into a<br>
single engine. However not much more is known. I have a vague notion<br>
that the way the data is passed in hasn't really changed much,<br>
although obviously for HEVC it will have as that's a new format.<br>
Perhaps it's all even simpler now if you don't have to drive the<br>
VP/PPP independently. But perhaps you still do and they're just all in<br>
a single engine. I haven't so much as looked at a command stream...<br>
<br>
Loading the firmware could be a drag on GM20x+ -- if you have to deal<br>
with secure mode, it'll be a huge pain. You will also have to locate<br>
the firmware, which is no longer quite as easy as it once was, I think<br>
the GPU will DMA it from system memory now as opposed to it being<br>
uploaded directly in the mmiotrace. I've created a "scanner" tool<br>
which looks through the blob for firmware-looking things.<br>
<br>
Cheers,<br>
<br>
  -ilia<br>
</blockquote></div>