I’m developing GLES C++ applications on a Linux desktop with an NVidia GPU (my colleagues use ATI). We code for an embedded target that supports EXT_shader_framebuffer_fetch extension. Problem is, none of our GLES emulators / wrapper libraries seems to support this extension. Do you know one that works with desktop Ubuntu 18.10 X64 Linux and NVIdia or ATI and supports this extension?
To my surprise, it looks like Imagination Tech’s OpenGL ES desktop emulator for PowerVR, PVRFrame, supports it “if OpenGL 4.2 or ARB_shader_image_load_store are supported by the host system” (LINK).
My first thought was to check Mesa3D, since it supports OpenGL ES rendered in software. But I’m not seeing indications here that it’s supported. Also, I just checked NVidia’s built-in OpenGL ES support in their Linux desktop GPU drivers, and I’m not seeing EXT_shader_framebuffer_fetch in the supported ES extensions list there. Not sure about ANGLE and ARM’s GLES emulators, but you can check (if you haven’t already).
Yeah, like EXT_shader_pixel_local_storage, EXT_shader_framebuffer_fetch really wants a tile-based GPU, where the referenced framebuffer data is located in fast on-chip cache alongside the rasterizer, and not way out in some RAM chip across a memory bus. And AFAIK, most discrete (sep card) desktop NVidia and AMD GPUs aren’t tile-based (or strictly tile-based, with a complete primitive pre-transform and pre-sort into tiles up at the render pass level).