Galaxy S21 10bit Video issue when using Vulkan API

We’re playing video on a Galaxy S21 (Adreno 660) using both the MediaPlayer and ExoPlayer APIs with frames being output to a hardware buffer surface. This surface is being imported into Vulkan and rendered using a VkSamplerYcbcrConversion instance. This is all working fine with 8bit video (H264 and HEVC), however with 10bit the sampling from the hardware buffer is incorrect.

The Y plane appears to be sampled correctly with the cbcr plane(s) being incorrect.

The videos being played are not HDR.

10bit video plays back fine when using OpenGL ES3 and the GL_OES_EGL_image_external which leads me to believe this is a driver level issue with Vulkan. We’re also aware that 10bit video isn’t playing correctly on more recent devices such as the S24 but we have no first hand experience of this.

We had a similar issue with the Galaxy A55 (Xclipse 530) but this has been fixed with the latest OS update so assuming the next update for the S21 will be similarly fixed but flagging it here just in case.

Hello
Create a support request in the following channel.