RenderHeads / UnityPlugin-AVProVideo

AVPro Video is a multi-platform Unity plugin for advanced video playback
https://www.renderheads.com/products/avpro-video/
231 stars 28 forks source link

[Android][Oculus] OES shaders do not work in Release builds with "Low Overhead Mode (GLES)" enabled #1934

Open Anton111111 opened 1 month ago

Anton111111 commented 1 month ago

Describe the issue When I enable Low Overhead Mode (GLES) OES shader (AVProVideo\Runtime\Shaders\AVProVideo-VR-InsideSphere-Transparent-AndroidOES.shader) stop working. I don't see video (black screen). Only audio works.

Your Setup (please complete the following information): Unity version: 2023.1.20f1 AVPro Video version (number and edition (trial/core/ultra/enterprise)): 3.0.6-ultra build 2407050949

Operating system version: Android Device model: Quest2

Logs odh_logs_2024-07-08 13.21.53.309.txt

I've alreade emailed invite to the project to unitysupport@renderheads.com . I've you need invite again ley me know.

Chris-RH commented 1 month ago

Are you sending a new one, or is this the same link as 26th June?

Anton111111 commented 1 month ago

Are you sending a new one, or is this the same link as 26th June?

The same link as 26th June.

Anton111111 commented 1 month ago

@Chris-RH , Do you see my invite ? How i see invite still pending.

MorrisRH commented 1 month ago

From the log you provided I can see your video exceeds the reported capabilities of the codec:

Format exceeds selected codec's capabilities [id=1, mimeType=video/hevc, codecs=hvc1.1.6.H183.90, res=8192x4096, color=BT709/Limited range/SDR SMPTE 170M, fps=59.93932, OMX.qcom.video.decoder.hevc]

Closing this as this is the same issue as #1935, please follow there for updates.

Anton111111 commented 1 month ago

@MorrisRH , In project that i provided you (i don't know why you team ignore it) for showing issue you can change video to Cones-360Stereo-2K30-H264.mp4. Result the same. OES Shader doesn't work with enable Low Overhead Mode (GLES). Resolution of Cones-360Stereo-2K30-H264.mp4 is 2880x2880.

Here is logs with Cones-360Stereo-2K30-H264.mp4 odh_logs_2024-07-10 16.27.29.964.txt

MorrisRH commented 1 month ago

@MorrisRH , But why this video works in AVPro v2 in all conditions? And why this video works in AVPro v3 if i disable Low Overhead Mode (GLES) ? I see problem with this video only if i use OES shader.

We had to rewrite substantial parts of the plugin in order to support both OpenGLES3 and Vulkan. As part of this we introduced extra safety checking to make sure the underlying codecs can handle decoding the video in order to prevent crashing. Unfortunately on the Quest2&3 the codec reports a maximum of 8K@60 even though it is able to handle 8192x4096. We're currently looking at how we can handle this and hope to have a fix in the next release.

Anton111111 commented 1 month ago

@MorrisRH , please look on my last comment (looks like you wrote answer for me when i'm was writing it ;). Video 2880x2880 also doesn't works. I'm sure if i start video with very low resolution result will be the same.

Anton111111 commented 1 month ago

@MorrisRH , @Chris-RH , @RichRH , Can you say anything about it? Please, look on my a new log with low resolution video from comment https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues/1934#issuecomment-2220978108 ?

I don't think this problem is related to "Format exceeds selected codec's capabilities". Because the video is not displayed regardless of resolution if Low Overhead Mode is enabled.

MorrisRH commented 1 month ago

Hey @Anton111111 Low Overhead Mode is the proverbial gift that keeps on giving. I've reproduced this issue (and it is separate to #1935 so reopening this). Unfortunately the issue seems to be with Unity. I'm going to investigate further but for now it looks like we cannot support Low Overhead Mode.

MorrisRH commented 1 month ago

I've submitted a bug report to Unity... will wait to see what they say.