GLSL textureGather returns bad values

Running into some kind of driver bug on a GE8320. I’m using textureGather to read from a D16 render target texture. If something is rendered to the texture after clearing it, values are read correctly. If I only clear the texture and don’t do any draws to it, X and W components are read correctly, and Y and Z are read as 0. Same problem with D32F format, but D24_S8 seems to be working correctly.

Test device is Moto G22 with Android 12. I found this problem because it is also happening on a Furian based GPU for a customer.

Hi aleksigron,

Thanks for your message, and welcome to the PowerVR Developer Forum!

I would like please to have a reproduction code for the issue you are experiencing that I can build and test.

Also I will need the driver version of the GE8320 GPU you are working with, details on how to get that information can be found in Vulkan: vkGetImageMemoryRequirements2 crashes on PowerVR 8300 - #4 by AlejandroC

Best regards,
Alejandro

Hello AlejandroC,

The device has driver version OpenGL ES 3.2 build 1.13@5776728

Unfortunately I’m not sure how to create a minimal example to reproduce the issue.

Thanks for the quick reply,
Aleksi

Hi aleksigron,

Thanks for the information.

Our SDK has a variety of OpenGL ES and Vulkan samples ( Native_SDK/examples/OpenGLES at master · powervr-graphics/Native_SDK · GitHub and Native_SDK/examples/Vulkan at master · powervr-graphics/Native_SDK · GitHub ). Perhaps you can change one sample which reproduces the issue and provide a patch?

Also, you could take a recording of your application with our debugging tool PVRCarbon PVRCarbon - Imagination Developers which will record all the commands and allow to inspect them / export as C++ project.

Best regards,
Alejandro