This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Latest Mali OpenGL ES Emulator 3.0.4 doesn't support GL_ARM_shader_framebuffer_fetch or gl_LastFragColorARM

OpenGL ES Emulator Version 3.0.4 Windows 64-bit Windows 64-bit
Released: November 29, 2019

downloaded from here:

A demo that can reproduce that issue:
https://github.com/zwcloud/OpenGLES-FrameBufferFetch

Just open DeferredShading/DeferredShading.sln in VS2019, build and run it. A red vec4(1,0,0,0) triangle will show up: it means that GL_ARM_shader_framebuffer_fetch are not defined.

See the fragment shader here:
https://github.com/zwcloud/OpenGLES-FrameBufferFetch/blob/f117b8e412db909774fea7951a45e809112b62b0/DeferredShading/DeferredShading.cpp#L24

#version 310 es
#extension GL_ARM_shader_framebuffer_fetch : enable
precision mediump float;
layout(location = 0) uniform vec4 uBlend0;
layout(location = 1) uniform vec4 uBlend1;
layout(location = 0) out vec4 fragColor;
void main ( void )
{
#ifdef GL_ARM_shader_framebuffer_fetch
	vec4 Color = gl_LastFragColorARM;
	Color = mix(Color, uBlend0, Color.w*uBlend0.w);
	Color *= uBlend1;
#else
	vec4 Color = vec4(1,0,0,0) + 0.001*uBlend0*uBlend1;
#endif
	fragColor = Color;
}

You can also remove #if GL_ARM_shader_framebuffer_fetch to be convinced:

> error C1503: undefined variable "gl_LastFragColorARM"

I cannot understand why an ARM OpenGLES emulator doesn't support its own extension GL_ARM_shader_framebuffer_fetch, that's ridiculous.