<?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 gpu crashes when imx8qxp mek runs for a while in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204476#M166981</link>
    <description>&lt;P&gt;Dear technical support:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; My development environment is as follows:&lt;BR /&gt;i.MX 8QuadXPlus Multisensory Enablement Kit (MEK) CPU Board&lt;BR /&gt;imx-yocto-L5.4.47_2.2.0&lt;BR /&gt;DISTRO=fsl-imx-wayland MACHINE=imx8qxpmek source imx-setup-release.sh -b build-wayland&lt;BR /&gt;bitbake imx-image-multimedia&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;After the program runs for a period of time, about a few hours or tens of hours, the program must crash! The GPU error message was thrown in the log terminal. The information is included in the attachment file. At the same time,&amp;nbsp; We are using in-vehicle products, this problem must be handled for me, this BUG risk is too great.&lt;/P&gt;&lt;P&gt;&amp;nbsp;thank you very much!&lt;/P&gt;&lt;P&gt;&amp;nbsp; mian code:&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;BR /&gt;#include &amp;lt;signal.h&amp;gt;&lt;BR /&gt;#include &amp;lt;termios.h&amp;gt;&lt;BR /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;math.h&amp;gt;&lt;BR /&gt;#include &amp;lt;assert.h&amp;gt;&lt;BR /&gt;#include &amp;lt;semaphore.h&amp;gt;&lt;BR /&gt;#include &amp;lt;pthread.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;GLES3/gl3.h&amp;gt;&lt;BR /&gt;#include &amp;lt;GLES2/gl2.h&amp;gt;&lt;BR /&gt;#include &amp;lt;GLES2/gl2ext.h&amp;gt;&lt;BR /&gt;#include &amp;lt;EGL/eglvivante.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#include "commonEx.h"&lt;/P&gt;&lt;P&gt;static vector&amp;lt;camera_buffer&amp;gt; gcb;&lt;BR /&gt;static vdkEGL egl;&lt;/P&gt;&lt;P&gt;int server_coral(render_param *prp,unsigned int program);&lt;/P&gt;&lt;P&gt;void *server_record_coral(void *arg)&lt;BR /&gt;{&lt;BR /&gt;int width = 0;&lt;BR /&gt;int height = 0;&lt;BR /&gt;EGLint configAttribs[] =&lt;BR /&gt;{&lt;BR /&gt;EGL_SAMPLES, 1,&lt;BR /&gt;EGL_RED_SIZE, 8,&lt;BR /&gt;EGL_GREEN_SIZE, 8,&lt;BR /&gt;EGL_BLUE_SIZE, 8,&lt;BR /&gt;EGL_ALPHA_SIZE, 8,&lt;BR /&gt;EGL_DEPTH_SIZE, 24,&lt;BR /&gt;EGL_SURFACE_TYPE, EGL_WINDOW_BIT,&lt;BR /&gt;EGL_NONE,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;EGLint attribListContext[] =&lt;BR /&gt;{&lt;BR /&gt;EGL_CONTEXT_CLIENT_VERSION, 2,&lt;BR /&gt;EGL_NONE&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;render_param *prp = (render_param *)arg;&lt;/P&gt;&lt;P&gt;while (!vdkSetupEGL(0, 0, prp-&amp;gt;record_width, prp-&amp;gt;record_height, configAttribs, NULL, attribListContext, &amp;amp;egl))&lt;BR /&gt;{&lt;BR /&gt;printf("vdkSetupEGL error %s %d\n",__FILE__,__LINE__);&lt;BR /&gt;usleep(500*1000);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;vdkGetWindowInfo(egl.window, NULL, NULL, &amp;amp;width, &amp;amp;height, NULL, NULL);&lt;/P&gt;&lt;P&gt;vdkSetWindowTitle(egl.window, "tm360");&lt;BR /&gt;vdkShowWindow(egl.window);&lt;BR /&gt;&lt;BR /&gt;unsigned int program = loadShaderProgram("original_yuv");&lt;BR /&gt;unsigned int program_coral = loadShaderProgram("original");&lt;BR /&gt;&lt;BR /&gt;if( program == 0xFFFFFFFF ) {&lt;BR /&gt;printf("loadShaderProgram error %s %d\n",__FILE__,__LINE__);&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;glEnableVertexAttribArray(glGetAttribLocation(program, "vertex"));&lt;BR /&gt;glEnableVertexAttribArray(glGetAttribLocation(program, "tcolor"));&lt;BR /&gt;&lt;BR /&gt;glCullFace(GL_BACK);&lt;BR /&gt;glFrontFace(GL_CW);&lt;BR /&gt;&lt;BR /&gt;vector&amp;lt;camera_buffer&amp;gt; cb_tmp;&lt;BR /&gt;&lt;BR /&gt;while( 1 )&lt;BR /&gt;{&lt;BR /&gt;cb_tmp.clear();&lt;BR /&gt;pthread_mutex_lock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;for(int i = 0; i &amp;lt; gcb.size(); i++)&lt;BR /&gt;cb_tmp.push_back(gcb[i]);&lt;BR /&gt;gcb.clear();&lt;BR /&gt;pthread_mutex_unlock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;&lt;BR /&gt;int camera_flag[SENSOR_NUM];&lt;BR /&gt;for(int i = 0; i &amp;lt; SENSOR_NUM; i++)&lt;BR /&gt;camera_flag[i] = 0;&lt;BR /&gt;&lt;BR /&gt;int count = cb_tmp.size();&lt;BR /&gt;while( (--count) &amp;gt;= 0 ) {&lt;BR /&gt;if( camera_flag[cb_tmp[count].index] == 0 ) {&lt;BR /&gt;update_texture_record(cb_tmp[count].index,prp-&amp;gt;image_width,prp-&amp;gt;image_height,&lt;BR /&gt;GL_VIV_YUY2,prp-&amp;gt;buffers[cb_tmp[count].index][cb_tmp[count].buf_index].planes[0].start,&lt;BR /&gt;prp-&amp;gt;image_width*prp-&amp;gt;image_height*2);&lt;BR /&gt;camera_flag[cb_tmp[count].index] = 1;&lt;BR /&gt;}&lt;BR /&gt;ortherQueue_buffer(prp,cb_tmp[count].index,cb_tmp[count].buf_index);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;GLfloat vertices[16][2] = {&lt;BR /&gt;{ -1.0f, -1.0f },&lt;BR /&gt;{ -1.0f, 0.0f },&lt;BR /&gt;{ 0.0f, -1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, -1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 1.0f, -1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ -1.0f, 0.0f },&lt;BR /&gt;{ -1.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;GLfloat uvcolors[16][2] = {&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;//BeginFBO(prp,g_pOffscreenFBO);&lt;BR /&gt;&lt;BR /&gt;glUseProgram(program);&lt;BR /&gt;&lt;BR /&gt;glBindBuffer(GL_ARRAY_BUFFER, 0);&lt;BR /&gt;glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);&lt;BR /&gt;&lt;BR /&gt;for( int i = 0; i &amp;lt; SENSOR_NUM; i++) {&lt;BR /&gt;int j = 0;&lt;BR /&gt;if( prp-&amp;gt;camera_h_filp[i] &amp;amp;&amp;amp; prp-&amp;gt;camera_v_filp[i] ) {&lt;BR /&gt;j = 3;&lt;BR /&gt;} else if( prp-&amp;gt;camera_h_filp[i] ) {&lt;BR /&gt;j = 1;&lt;BR /&gt;} else if( prp-&amp;gt;camera_v_filp[i] ) {&lt;BR /&gt;j = 2;&lt;BR /&gt;}&lt;BR /&gt;glUniform1i(glGetUniformLocation(program,"camera"), i);&lt;BR /&gt;glVertexAttribPointer(glGetAttribLocation(program, "vertex"), 2, GL_FLOAT, GL_FALSE, 0, &amp;amp;vertices[i*4][0]);&lt;BR /&gt;glVertexAttribPointer(glGetAttribLocation(program, "tcolor"), 2, GL_FLOAT, GL_FALSE, 0, &amp;amp;uvcolors[j*4][0]);&lt;BR /&gt;glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;glReadPixels (0, 0, prp-&amp;gt;record_width, prp-&amp;gt;record_height,&lt;BR /&gt;GL_RGBA, GL_UNSIGNED_BYTE, (void *)prp-&amp;gt;record_coral_temp);&lt;BR /&gt;&lt;BR /&gt;memcpy(prp-&amp;gt;record_coral_data,prp-&amp;gt;record_coral_temp,prp-&amp;gt;record_width*prp-&amp;gt;record_height*4);&lt;BR /&gt;&lt;BR /&gt;if( cb_tmp.size() == 0 ) continue;&lt;BR /&gt;&lt;BR /&gt;server_coral(prp,program_coral);&lt;BR /&gt;&lt;BR /&gt;if( prp-&amp;gt;encoder_status ) {&lt;BR /&gt;sem_post(&amp;amp;(prp-&amp;gt;encoder_sem));&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;printf("*******-----%s:%d\n",__FILE__,__LINE__);&lt;BR /&gt;}&lt;BR /&gt;#if 0&lt;BR /&gt;static unsigned int t = 0;&lt;BR /&gt;printf("%d-----%s:%d\n",(vdkGetTicks()-t),__FILE__,__LINE__);&lt;BR /&gt;t = vdkGetTicks();&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void push_camera_buffer(render_param *prp,int index,int buf_index) {&lt;BR /&gt;camera_buffer cb;&lt;BR /&gt;cb.index = index;&lt;BR /&gt;cb.buf_index = buf_index;&lt;BR /&gt;pthread_mutex_lock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;gcb.push_back(cb);&lt;BR /&gt;pthread_mutex_unlock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 28 Dec 2020 07:50:47 GMT</pubDate>
    <dc:creator>783435100</dc:creator>
    <dc:date>2020-12-28T07:50:47Z</dc:date>
    <item>
      <title>gpu crashes when imx8qxp mek runs for a while</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204476#M166981</link>
      <description>&lt;P&gt;Dear technical support:&lt;BR /&gt;&amp;nbsp; &amp;nbsp; My development environment is as follows:&lt;BR /&gt;i.MX 8QuadXPlus Multisensory Enablement Kit (MEK) CPU Board&lt;BR /&gt;imx-yocto-L5.4.47_2.2.0&lt;BR /&gt;DISTRO=fsl-imx-wayland MACHINE=imx8qxpmek source imx-setup-release.sh -b build-wayland&lt;BR /&gt;bitbake imx-image-multimedia&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;After the program runs for a period of time, about a few hours or tens of hours, the program must crash! The GPU error message was thrown in the log terminal. The information is included in the attachment file. At the same time,&amp;nbsp; We are using in-vehicle products, this problem must be handled for me, this BUG risk is too great.&lt;/P&gt;&lt;P&gt;&amp;nbsp;thank you very much!&lt;/P&gt;&lt;P&gt;&amp;nbsp; mian code:&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;BR /&gt;#include &amp;lt;signal.h&amp;gt;&lt;BR /&gt;#include &amp;lt;termios.h&amp;gt;&lt;BR /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;math.h&amp;gt;&lt;BR /&gt;#include &amp;lt;assert.h&amp;gt;&lt;BR /&gt;#include &amp;lt;semaphore.h&amp;gt;&lt;BR /&gt;#include &amp;lt;pthread.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;GLES3/gl3.h&amp;gt;&lt;BR /&gt;#include &amp;lt;GLES2/gl2.h&amp;gt;&lt;BR /&gt;#include &amp;lt;GLES2/gl2ext.h&amp;gt;&lt;BR /&gt;#include &amp;lt;EGL/eglvivante.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#include "commonEx.h"&lt;/P&gt;&lt;P&gt;static vector&amp;lt;camera_buffer&amp;gt; gcb;&lt;BR /&gt;static vdkEGL egl;&lt;/P&gt;&lt;P&gt;int server_coral(render_param *prp,unsigned int program);&lt;/P&gt;&lt;P&gt;void *server_record_coral(void *arg)&lt;BR /&gt;{&lt;BR /&gt;int width = 0;&lt;BR /&gt;int height = 0;&lt;BR /&gt;EGLint configAttribs[] =&lt;BR /&gt;{&lt;BR /&gt;EGL_SAMPLES, 1,&lt;BR /&gt;EGL_RED_SIZE, 8,&lt;BR /&gt;EGL_GREEN_SIZE, 8,&lt;BR /&gt;EGL_BLUE_SIZE, 8,&lt;BR /&gt;EGL_ALPHA_SIZE, 8,&lt;BR /&gt;EGL_DEPTH_SIZE, 24,&lt;BR /&gt;EGL_SURFACE_TYPE, EGL_WINDOW_BIT,&lt;BR /&gt;EGL_NONE,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;EGLint attribListContext[] =&lt;BR /&gt;{&lt;BR /&gt;EGL_CONTEXT_CLIENT_VERSION, 2,&lt;BR /&gt;EGL_NONE&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;render_param *prp = (render_param *)arg;&lt;/P&gt;&lt;P&gt;while (!vdkSetupEGL(0, 0, prp-&amp;gt;record_width, prp-&amp;gt;record_height, configAttribs, NULL, attribListContext, &amp;amp;egl))&lt;BR /&gt;{&lt;BR /&gt;printf("vdkSetupEGL error %s %d\n",__FILE__,__LINE__);&lt;BR /&gt;usleep(500*1000);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;vdkGetWindowInfo(egl.window, NULL, NULL, &amp;amp;width, &amp;amp;height, NULL, NULL);&lt;/P&gt;&lt;P&gt;vdkSetWindowTitle(egl.window, "tm360");&lt;BR /&gt;vdkShowWindow(egl.window);&lt;BR /&gt;&lt;BR /&gt;unsigned int program = loadShaderProgram("original_yuv");&lt;BR /&gt;unsigned int program_coral = loadShaderProgram("original");&lt;BR /&gt;&lt;BR /&gt;if( program == 0xFFFFFFFF ) {&lt;BR /&gt;printf("loadShaderProgram error %s %d\n",__FILE__,__LINE__);&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;glEnableVertexAttribArray(glGetAttribLocation(program, "vertex"));&lt;BR /&gt;glEnableVertexAttribArray(glGetAttribLocation(program, "tcolor"));&lt;BR /&gt;&lt;BR /&gt;glCullFace(GL_BACK);&lt;BR /&gt;glFrontFace(GL_CW);&lt;BR /&gt;&lt;BR /&gt;vector&amp;lt;camera_buffer&amp;gt; cb_tmp;&lt;BR /&gt;&lt;BR /&gt;while( 1 )&lt;BR /&gt;{&lt;BR /&gt;cb_tmp.clear();&lt;BR /&gt;pthread_mutex_lock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;for(int i = 0; i &amp;lt; gcb.size(); i++)&lt;BR /&gt;cb_tmp.push_back(gcb[i]);&lt;BR /&gt;gcb.clear();&lt;BR /&gt;pthread_mutex_unlock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;&lt;BR /&gt;int camera_flag[SENSOR_NUM];&lt;BR /&gt;for(int i = 0; i &amp;lt; SENSOR_NUM; i++)&lt;BR /&gt;camera_flag[i] = 0;&lt;BR /&gt;&lt;BR /&gt;int count = cb_tmp.size();&lt;BR /&gt;while( (--count) &amp;gt;= 0 ) {&lt;BR /&gt;if( camera_flag[cb_tmp[count].index] == 0 ) {&lt;BR /&gt;update_texture_record(cb_tmp[count].index,prp-&amp;gt;image_width,prp-&amp;gt;image_height,&lt;BR /&gt;GL_VIV_YUY2,prp-&amp;gt;buffers[cb_tmp[count].index][cb_tmp[count].buf_index].planes[0].start,&lt;BR /&gt;prp-&amp;gt;image_width*prp-&amp;gt;image_height*2);&lt;BR /&gt;camera_flag[cb_tmp[count].index] = 1;&lt;BR /&gt;}&lt;BR /&gt;ortherQueue_buffer(prp,cb_tmp[count].index,cb_tmp[count].buf_index);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;GLfloat vertices[16][2] = {&lt;BR /&gt;{ -1.0f, -1.0f },&lt;BR /&gt;{ -1.0f, 0.0f },&lt;BR /&gt;{ 0.0f, -1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, -1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 1.0f, -1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ -1.0f, 0.0f },&lt;BR /&gt;{ -1.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;GLfloat uvcolors[16][2] = {&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;&lt;BR /&gt;{ 1.0f, 1.0f },&lt;BR /&gt;{ 1.0f, 0.0f },&lt;BR /&gt;{ 0.0f, 1.0f },&lt;BR /&gt;{ 0.0f, 0.0f },&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;//BeginFBO(prp,g_pOffscreenFBO);&lt;BR /&gt;&lt;BR /&gt;glUseProgram(program);&lt;BR /&gt;&lt;BR /&gt;glBindBuffer(GL_ARRAY_BUFFER, 0);&lt;BR /&gt;glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);&lt;BR /&gt;&lt;BR /&gt;for( int i = 0; i &amp;lt; SENSOR_NUM; i++) {&lt;BR /&gt;int j = 0;&lt;BR /&gt;if( prp-&amp;gt;camera_h_filp[i] &amp;amp;&amp;amp; prp-&amp;gt;camera_v_filp[i] ) {&lt;BR /&gt;j = 3;&lt;BR /&gt;} else if( prp-&amp;gt;camera_h_filp[i] ) {&lt;BR /&gt;j = 1;&lt;BR /&gt;} else if( prp-&amp;gt;camera_v_filp[i] ) {&lt;BR /&gt;j = 2;&lt;BR /&gt;}&lt;BR /&gt;glUniform1i(glGetUniformLocation(program,"camera"), i);&lt;BR /&gt;glVertexAttribPointer(glGetAttribLocation(program, "vertex"), 2, GL_FLOAT, GL_FALSE, 0, &amp;amp;vertices[i*4][0]);&lt;BR /&gt;glVertexAttribPointer(glGetAttribLocation(program, "tcolor"), 2, GL_FLOAT, GL_FALSE, 0, &amp;amp;uvcolors[j*4][0]);&lt;BR /&gt;glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;glReadPixels (0, 0, prp-&amp;gt;record_width, prp-&amp;gt;record_height,&lt;BR /&gt;GL_RGBA, GL_UNSIGNED_BYTE, (void *)prp-&amp;gt;record_coral_temp);&lt;BR /&gt;&lt;BR /&gt;memcpy(prp-&amp;gt;record_coral_data,prp-&amp;gt;record_coral_temp,prp-&amp;gt;record_width*prp-&amp;gt;record_height*4);&lt;BR /&gt;&lt;BR /&gt;if( cb_tmp.size() == 0 ) continue;&lt;BR /&gt;&lt;BR /&gt;server_coral(prp,program_coral);&lt;BR /&gt;&lt;BR /&gt;if( prp-&amp;gt;encoder_status ) {&lt;BR /&gt;sem_post(&amp;amp;(prp-&amp;gt;encoder_sem));&lt;BR /&gt;}&lt;BR /&gt;else {&lt;BR /&gt;printf("*******-----%s:%d\n",__FILE__,__LINE__);&lt;BR /&gt;}&lt;BR /&gt;#if 0&lt;BR /&gt;static unsigned int t = 0;&lt;BR /&gt;printf("%d-----%s:%d\n",(vdkGetTicks()-t),__FILE__,__LINE__);&lt;BR /&gt;t = vdkGetTicks();&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void push_camera_buffer(render_param *prp,int index,int buf_index) {&lt;BR /&gt;camera_buffer cb;&lt;BR /&gt;cb.index = index;&lt;BR /&gt;cb.buf_index = buf_index;&lt;BR /&gt;pthread_mutex_lock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;gcb.push_back(cb);&lt;BR /&gt;pthread_mutex_unlock(&amp;amp;(prp-&amp;gt;camera_lock));&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Dec 2020 07:50:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204476#M166981</guid>
      <dc:creator>783435100</dc:creator>
      <dc:date>2020-12-28T07:50:47Z</dc:date>
    </item>
    <item>
      <title>Re: gpu crashes when imx8qxp mek runs for a while</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204637#M166995</link>
      <description>&lt;P&gt;Hi 783435100&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;what processor revision used in the case, one can try Demo Image from link&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX?tab=In-Depth_Tab" target="_blank" rel="noopener"&gt;https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX?tab=In-Depth_Tab&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;</description>
      <pubDate>Tue, 29 Dec 2020 00:26:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204637#M166995</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2020-12-29T00:26:18Z</dc:date>
    </item>
    <item>
      <title>Re: gpu crashes when imx8qxp mek runs for a while</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204643#M166998</link>
      <description>&lt;P&gt;&amp;nbsp; &amp;nbsp;Thanks a lot for reply!&lt;BR /&gt;&amp;nbsp; &amp;nbsp;I am using the latest version of Linux 5.4.47_2.2.0! Looking forward to helping me deal with it! Or you can provide technical support from GPU Vivante Corporation.&lt;/P&gt;&lt;P&gt;root@imx8qxpmek:~# cat /proc/version&lt;BR /&gt;Linux version 5.4.47-2.2.0+g5ec03d06f54e (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Tue Nov 17 01:11:39 UTC 2020&lt;/P&gt;</description>
      <pubDate>Tue, 29 Dec 2020 00:38:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/gpu-crashes-when-imx8qxp-mek-runs-for-a-while/m-p/1204643#M166998</guid>
      <dc:creator>783435100</dc:creator>
      <dc:date>2020-12-29T00:38:28Z</dc:date>
    </item>
  </channel>
</rss>

