<?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 Re: OpenGL: glLinkProgram fails when isampler2D used on iMX6 in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665621#M102381</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&amp;nbsp;Bio_TICFSL,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So what you are trying to tell me is that the iMX6 deviates from the OpenGL ES3.0 spec in this regard ?&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf" title="https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf"&gt;https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf&lt;/A&gt;&amp;nbsp;&amp;nbsp;and&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf" title="https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf"&gt;https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf&lt;/A&gt;&amp;nbsp; explicitly state that isampler2D is supported by 3.0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any other functionality that is provided for by OpenGL ES3.0 but not supported by iMX6 ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the suggestion, I'll implement a work-around for lack of isampler2D support.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 22 Jun 2017 06:38:02 GMT</pubDate>
    <dc:creator>hartmutbehrensf</dc:creator>
    <dc:date>2017-06-22T06:38:02Z</dc:date>
    <item>
      <title>OpenGL: glLinkProgram fails when isampler2D used on iMX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665619#M102379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The vertex and fragment shaders shown below fail to link on the iMX6. However, the&amp;nbsp;shader program log is empty and no other error is generated/shown. When functionality related to isampler2D is removed, then the shader links successfully again.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know what is going on here or have a work-around for this ?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;QOpenGLShader *vshader = new QOpenGLShader(QOpenGLShader::Vertex, this);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; QString vsrc =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "#ifdef GL_ES\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump float;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump sampler2D;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump isampler2D;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "#endif\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "in vec4 vertex;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "in vec2 texCoord;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "flat out int materialID;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "out vec2 texc;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "uniform int rotIndex;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "uniform sampler2D floatSampler;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "uniform isampler2D intSampler;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getRotoationIndex(void);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "mat4 getRotationMatrix(int Index);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "mat4 getRotationMatrix(void);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getMaterialId(int Index);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getMaterialId(void);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getRotationIndex(void) { return rotIndex; }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "mat4 getRotationMatrix(void) { return getRotationMatrix(getRotationIndex()); }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "mat4 getRotationMatrix(int index) { return mat4(texelFetch(floatSampler, ivec2(0+5*index,0), 0), texelFetch(floatSampler, ivec2(1+5*index,0), 0), texelFetch(floatSampler, ivec2(2+5*index,0), 0), texelFetch(floatSampler, ivec2(3+5*index,0), 0)); }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getMaterialId(int index) { return int(texelFetch(intSampler, ivec2(4+5*index,0), 0).r); }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "int getMaterialId(void) { return getMaterialId(getRotationIndex()); }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "void main(void)\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "{\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " mat4 rotMatrix = getRotationMatrix(rotIndex);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " gl_Position = rotMatrix * vertex;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " materialID = getMaterialId();\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " texc = texCoord;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "}\n";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; QOpenGLShader *fshader = new QOpenGLShader(QOpenGLShader::Fragment, this);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; QString fsrc =&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "#ifdef GL_ES\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump float;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump sampler2D;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "precision mediump isampler2D;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "#endif\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "in vec2 texc;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "flat in int materialID;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "out vec4 fragColor;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "uniform sampler2D tex;\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "void main(void)\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "{\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " if (materialID == 1) {\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " fragColor = mix(texture(tex, texc), vec4(1.0, 0.0, 0.0, 0.5), 0.4);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " if (materialID == 7) {\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " fragColor = mix(texture(tex, texc), vec4(0.0, 0.0, 1.0, 0.5), 0.4);\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; " }\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: terminal, monaco, monospace;"&gt; "}\n";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336299"&gt;GLWidget.cpp.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-336299"&gt;GLWidget.h.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Jun 2017 09:45:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665619#M102379</guid>
      <dc:creator>hartmutbehrensf</dc:creator>
      <dc:date>2017-06-20T09:45:31Z</dc:date>
    </item>
    <item>
      <title>Re: OpenGL: glLinkProgram fails when isampler2D used on iMX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665620#M102380</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;iSampler2d is part of&amp;nbsp;EXT_gpu_shader4 that is not supported on current GPU for i.Mx6 devices, &lt;SPAN&gt;EXT_gpu_shader5&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;is supported on OpenGL ES 2.0 and 3.0 API based on khronos, as suggestion try to use gSampler2D instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Jun 2017 16:41:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665620#M102380</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2017-06-21T16:41:35Z</dc:date>
    </item>
    <item>
      <title>Re: OpenGL: glLinkProgram fails when isampler2D used on iMX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665621#M102381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&amp;nbsp;Bio_TICFSL,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So what you are trying to tell me is that the iMX6 deviates from the OpenGL ES3.0 spec in this regard ?&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf" title="https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf"&gt;https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf&lt;/A&gt;&amp;nbsp;&amp;nbsp;and&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf" title="https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf"&gt;https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf&lt;/A&gt;&amp;nbsp; explicitly state that isampler2D is supported by 3.0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any other functionality that is provided for by OpenGL ES3.0 but not supported by iMX6 ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the suggestion, I'll implement a work-around for lack of isampler2D support.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Jun 2017 06:38:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665621#M102381</guid>
      <dc:creator>hartmutbehrensf</dc:creator>
      <dc:date>2017-06-22T06:38:02Z</dc:date>
    </item>
    <item>
      <title>Re: OpenGL: glLinkProgram fails when isampler2D used on iMX6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665622#M102382</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;iSampler2d is part of EXT_gpu_shader4:&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader4.txt" title="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader4.txt"&gt;https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader4.txt&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mx6Devices support OpenGL ES3.x based on EXT_gpu_shader5:&amp;nbsp;&lt;A class="link-titled" href="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader5.txt" title="https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader5.txt"&gt;https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader5.txt&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can see the changes for specific functionality, however I think the main change is that the shading lenguage had changed dramatically using multisample instead of sampler variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Jun 2017 15:57:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OpenGL-glLinkProgram-fails-when-isampler2D-used-on-iMX6/m-p/665622#M102382</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2017-06-22T15:57:56Z</dc:date>
    </item>
  </channel>
</rss>

