iMX6 glLinkProgram segmentation fault

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX6 glLinkProgram segmentation fault

584 Views
hartmutbehrensf
Contributor I

Hi,

In my application I use GL_RGBA32F and GL_RGBA32I textures as a mechanism to upload parameters to a shader (filter parameters are set to GL_NEAREST). The parameter values are retrieved in the shader using the GLSL snippet shown below. This mechanism has been tested and works well on many platforms, but on the iMX6 a segmentation fault is generated when glLinkProgram is called. However no GL error is reported, and the GL program info log is also empty.

Is anyone able to provide any insight and/or workaround for this problem ?

uniform sampler2D u_floatSampler;
uniform isampler2D u_integerSampler;

mat4 getModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(0), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(1), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(2), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(3), 0), 0)); }

mat4 getPreviousModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(4), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(5), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(6), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(7), 0), 0)); }

mat4 getInverseModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(8), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(9), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(10), 0), 0),
texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(11), 0), 0)); }

int getMaterialID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).x); }
int getObjectID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).y); }
int getSplineID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).z); }

0 Kudos
1 Reply

448 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Hartmut

Looks like this is related to other thread, Please check:

https://community.nxp.com/thread/453853 

Regards

0 Kudos