Forums - GL_EXT_shader_framebuffer_fetch driver bug on 5XX gpus

7 posts / 0 new
Last post
GL_EXT_shader_framebuffer_fetch driver bug on 5XX gpus
christiancoder0
Join Date: 14 Apr 14
Posts: 2
Posted: Thu, 2016-12-01 16:55

We are implementing HDR in an RGBM encoded LDR (RGBA8) render target in our engine. We can only support this on devices that support framebuffer fetch. The 5XX series have the GL_EXT_shader_framebuffer_fetch extension enumerated but it doesn't appear to work properly. The same shader code works fine on PowerVR, Mali, and iOS. Here are some screenshots and driver info.

no fetch (what it should look like): https://dl.dropboxusercontent.com/u/39900018/Screenshot_20161201-163636.png

RGBA8 fetch: https://dl.dropboxusercontent.com/u/39900018/Screenshot_20161201-162713.png

RGBA_FP16 fetch: https://dl.dropboxusercontent.com/u/39900018/Screenshot_20161201-162738.png

Device Info: https://dl.dropboxusercontent.com/u/39900018/Screenshot_20161201-163256.png (I have also tested on a 510)

 

  • Up2
  • Down0
mhfeldma Moderator
Join Date: 29 Nov 12
Posts: 312
Posted: Fri, 2016-12-02 07:20

Hi..  Would you be able to provide your fragment code which shows how you're using the extension to do the blending?

thanks...

  • Up0
  • Down0
wayne.hong
Join Date: 8 Nov 16
Posts: 5
Posted: Thu, 2017-01-05 16:16

I have same problem on a Adreno 418 GPU with Android 7.1.1. It looks like that the color fetched from framebuffer is always zero.

Best,

Wayne

  • Up0
  • Down0
wayne.hong
Join Date: 8 Nov 16
Posts: 5
Posted: Thu, 2017-01-05 16:20
Here is my simple testing code:

#extension GL_EXT_shader_framebuffer_fetch: enable
layout(location=0) inout vec4 fragColor0;

void main()
{
   vec4 result0 = fragColor0;
   result0 += ...

          fragColor0 = result0;

}

        

 

  • Up0
  • Down0
milesmj
Join Date: 14 Nov 13
Posts: 2
Posted: Tue, 2017-08-29 12:15

Any updates to this? I'm facing the same issue.

  • Up0
  • Down0
yoyoplace_14
Join Date: 14 Dec 16
Posts: 1
Posted: Sat, 2017-12-16 06:11

Would love to see an update on this.
Getting wrong behaviour on an Adreno 430.

  • Up0
  • Down0
loganmc10
Join Date: 19 Jul 16
Posts: 1
Posted: Tue, 2018-04-17 13:50

I can't see the original images anymore, but I am also experiencing an issue with GL_EXT_shader_framebuffer_fetch on an Adreno 540. The program works on PowerVR and Intel, which also support this extension.

It seems like GL_EXT_shader_framebuffer_fetch is not enforcing coherency/ordering on Adreno devices.

I tested using GL_QCOM_shader_framebuffer_fetch_noncoherent, breaking up the draw calls and inserting glFramebufferFetchBarrierQCOM() between each draw call, and this fixed the issue.

Is there some workaround for this?

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.