<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic iMX6 glLinkProgram segmentation fault in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-glLinkProgram-segmentation-fault/m-p/677193#M104465</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&amp;nbsp;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is anyone able to provide any insight and/or workaround for this problem ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;uniform sampler2D u_floatSampler;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;uniform isampler2D u_integerSampler;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(0), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(1), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(2), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(3), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getPreviousModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(4), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(5), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(6), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(7), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getInverseModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(8), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(9), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(10), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(11), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getMaterialID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).x); } &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getObjectID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).y); } &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getSplineID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).z); }&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Jun 2017 14:27:00 GMT</pubDate>
    <dc:creator>hartmutbehrensf</dc:creator>
    <dc:date>2017-06-06T14:27:00Z</dc:date>
    <item>
      <title>iMX6 glLinkProgram segmentation fault</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-glLinkProgram-segmentation-fault/m-p/677193#M104465</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&amp;nbsp;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is anyone able to provide any insight and/or workaround for this problem ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;uniform sampler2D u_floatSampler;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;uniform isampler2D u_integerSampler;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(0), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(1), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(2), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(3), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getPreviousModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(4), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(5), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(6), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(7), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;mat4 getInverseModelMatrix(uint Index) { return mat4(texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(8), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(9), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(10), 0), 0),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;texelFetch( u_floatSampler, ivec2( (Index * uint(13)) + uint(11), 0), 0)); }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getMaterialID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).x); } &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getObjectID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).y); } &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;int getSplineID(uint Index) { return int(texelFetch( u_integerSampler, ivec2( (Index * uint(13)) + uint(12), 0), 0).z); }&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Jun 2017 14:27:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-glLinkProgram-segmentation-fault/m-p/677193#M104465</guid>
      <dc:creator>hartmutbehrensf</dc:creator>
      <dc:date>2017-06-06T14:27:00Z</dc:date>
    </item>
    <item>
      <title>Re: iMX6 glLinkProgram segmentation fault</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX6-glLinkProgram-segmentation-fault/m-p/677194#M104466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hartmut&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Looks like this is related to other thread, Please check:&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/453853"&gt;https://community.nxp.com/thread/453853&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Jul 2017 15:53:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX6-glLinkProgram-segmentation-fault/m-p/677194#M104466</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2017-07-11T15:53:52Z</dc:date>
    </item>
  </channel>
</rss>

