ARM Shader framebuffer fetch depth stencil is not supported in OpenGL ES core

When I try to use Opengl es 3.2 core on jetson nano and this extension is necessary mandatory
https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_shader_framebuffer_fetch_depth_stencil.txt

it doesn’t run because it can’t find it.

I.e
#extension GL_ARM_shader_framebuffer_fetch_depth_stencil: enable
out highp uin color;

void main() {
color = uint(gl_LastFragDepthARM *(exp2(24.0) - 1.0)) << 8;
color |= uint(gl_LastFragStencilARM);
}

Returned This extension is not supported and undefined variable for gl_LastFragDepthARM and gl_LastFragStencilARM.

edit : After researching seems it does not have implemented in tegra driver any extension developed by ARM

Anyway I use Opengl 4.6 core or vulkan instead of Opengl es 3.2 whenever it is available .

Regards
Mrc.

2 Likes

Hi,
Looks like you have figured out a solution. Thanks for the sharing.

Hello DanieLLL solution to .
Solve in cases of opengl es 3.2 and that extension
When running is only alternative opengl es 3.2 core and requires that extension I have not found solution.
I only said that if the application I use for has an alternative option for use API vulkan or openg desktop 4.6 core use it as a priority because this extension is only for Opengl es and I not have this problem in this case “Helped” due this.
but for Opengl es running has linker problem due missing this extension

Hi,
For further investigation, please share a test code so that we can run and reproduce the issue.

Sure for example public example on this
http://what-when-how.com/Tutorial/topic-547pjramj8/GPU-Pro-Advanced-Rendering-Techniques-296.html

#extension GL_ARM_shader_framebuffer_fetch_depth_stencil : enable

precision mediump float ;

uniform float uTwoXNear;// 2.0  near

uniform float uFarPlusNear ;// far + near

uniform float uFarMinusNear ;// far− near

uniform float uInvParticleSize ;

uniform sampler2D uParticleTexture ;

varying float vLinearDepth ;

varying vec2 vTexCoord;

void main( void)

{ vec4 ParticleColor = texture2D( uParticleTexture , vTexCoord);

// convert from exponential depth to linear

float LinearDepth = uTwoXNear /(uFarPlusNear −

gl_LastFragDepthARM uFarMinusNear);

// compute blend weight by subtracting current fragment depth with depth in depth buffer

float Weight = clamp((LinearDepth − vLinearDepth) 

uInvParticleSize ,0.0,1.0);

// modulate with particle alpha

ParticleColor . w = Weight;

gl FragColor = ParticleColor ;

}

Success on Any sample require or needed enable by GL_ARM_shader_framebuffer_fetch_depth_stencil returned fail because missing I think is unimplemented right? is not found by glxinfo

Hi,
Please also share build command. Not sure but it doesn’t seem to be C code. would be great if you can give more information about building the sample and running it to reproduce the issue. Thanks.