I would like to request support for ARB_blend_func_extended in OpenGL ES Next.
Currently, the .a of the gl_FragColor (or the fragment shader out-variable bound to frag color, as you can do nowadays) is used for two separate things:
- The value written to the Destination Alpha channel of the framebuffer
- The SRC_ALPHA alpha value input to the blender
These are arguably two completely separate uses of the same value, and it only makes sense to have the ability to write two separate values as needed.
One immediate use for this is both in the Dolphin (GC/Wii) and PPSSPP (PSP) emulator projects, to simulate the behavior of the emulated GPUs correctly, as they both have a similar ability. Working around the lack of this currently requires dual passing with write masks, which is a drag on performance.