<?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 Graphics Driver Bug - Linux Updating UBO's in Graphics</title>
    <link>https://community.intel.com/t5/Graphics/Graphics-Driver-Bug-Linux-Updating-UBO-s/m-p/665209#M78474</link>
    <description>&lt;P&gt;This is a Linux OpenGL application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Run app on Intel GPU.&lt;/P&gt;&lt;P&gt;Updating UBO's uses 'glBufferSubData' by default, works OK.&lt;/P&gt;&lt;P&gt;Press SPACE to change updating to different modes and it starts to break.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;App works fine on Windows GeForce and Android GL ES 3 using same code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Code for updating UBO's:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;glBindBuffer(GL_UNIFORM_BUFFER, buffer.buffer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;switch(GL_UBO_MODE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;default /*0&amp;nbsp;GL_BUFFER_SUB*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*1*/GL_BUFFER_SUB_RESET_PART&amp;nbsp;&amp;nbsp;&amp;nbsp;: glBufferData(GL_UNIFORM_BUFFER, buffer.size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*2*/GL_BUFFER_SUB_RESET_FULL&amp;nbsp;&amp;nbsp;&amp;nbsp;: glBufferData(GL_UNIFORM_BUFFER,&amp;nbsp;&amp;nbsp;full_size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*3*/GL_BUFFER_SUB_RESET_PART_FROM: glBufferData(GL_UNIFORM_BUFFER, buffer.size, data, GL_DYNAMIC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*4*/GL_BUFFER_SUB_RESET_FULL_FROM: glBufferData(GL_UNIFORM_BUFFER,&amp;nbsp;&amp;nbsp;full_size, data, GL_DYNAMIC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*8*/GL_BUFFER_MAP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: if(Ptr dest=glMapBufferRange(GL_UNIFORM_BUFFER, 0, buffer.size, GL_MAP_WRITE_BIT|GL_MAP_INVALIDATE_BUFFER_BIT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(dest, data, buffer.size);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glUnmapBuffer(GL_UNIFORM_BUFFER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tested on Ubuntu 19.04&lt;/P&gt;&lt;P&gt;Intel Core i7-3632QM CPU @ 2.20 GHz&lt;/P&gt;&lt;P&gt;Intel ivybridge Mobile&lt;/P&gt;&lt;P&gt;Mesa DRI Intel Ivybridge Mobile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;App:&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.dropbox.com/s/d5u8mlrcvdxb08o/Linux%20UBO%20update%20Fail.zip?dl=0"&gt;https://www.dropbox.com/s/d5u8mlrcvdxb08o/Linux%20UBO%20update%20Fail.zip?dl=0&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can see the shadows flickering:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2019-08-24 10-21-45.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/5362i3A8E30A876C82ED8/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot from 2019-08-24 10-21-45.jpg" alt="Screenshot from 2019-08-24 10-21-45.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2019-08-24 10-22-01.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/5363i04D28146823DA026/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot from 2019-08-24 10-22-01.jpg" alt="Screenshot from 2019-08-24 10-22-01.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 24 Aug 2019 10:24:16 GMT</pubDate>
    <dc:creator>GSlaz</dc:creator>
    <dc:date>2019-08-24T10:24:16Z</dc:date>
    <item>
      <title>Graphics Driver Bug - Linux Updating UBO's</title>
      <link>https://community.intel.com/t5/Graphics/Graphics-Driver-Bug-Linux-Updating-UBO-s/m-p/665209#M78474</link>
      <description>&lt;P&gt;This is a Linux OpenGL application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Run app on Intel GPU.&lt;/P&gt;&lt;P&gt;Updating UBO's uses 'glBufferSubData' by default, works OK.&lt;/P&gt;&lt;P&gt;Press SPACE to change updating to different modes and it starts to break.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;App works fine on Windows GeForce and Android GL ES 3 using same code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Code for updating UBO's:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;glBindBuffer(GL_UNIFORM_BUFFER, buffer.buffer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;switch(GL_UBO_MODE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;default /*0&amp;nbsp;GL_BUFFER_SUB*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*1*/GL_BUFFER_SUB_RESET_PART&amp;nbsp;&amp;nbsp;&amp;nbsp;: glBufferData(GL_UNIFORM_BUFFER, buffer.size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*2*/GL_BUFFER_SUB_RESET_FULL&amp;nbsp;&amp;nbsp;&amp;nbsp;: glBufferData(GL_UNIFORM_BUFFER,&amp;nbsp;&amp;nbsp;full_size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*3*/GL_BUFFER_SUB_RESET_PART_FROM: glBufferData(GL_UNIFORM_BUFFER, buffer.size, data, GL_DYNAMIC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*4*/GL_BUFFER_SUB_RESET_FULL_FROM: glBufferData(GL_UNIFORM_BUFFER,&amp;nbsp;&amp;nbsp;full_size, data, GL_DYNAMIC);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;/*8*/GL_BUFFER_MAP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: if(Ptr dest=glMapBufferRange(GL_UNIFORM_BUFFER, 0, buffer.size, GL_MAP_WRITE_BIT|GL_MAP_INVALIDATE_BUFFER_BIT))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;memcpy(dest, data, buffer.size);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glUnmapBuffer(GL_UNIFORM_BUFFER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tested on Ubuntu 19.04&lt;/P&gt;&lt;P&gt;Intel Core i7-3632QM CPU @ 2.20 GHz&lt;/P&gt;&lt;P&gt;Intel ivybridge Mobile&lt;/P&gt;&lt;P&gt;Mesa DRI Intel Ivybridge Mobile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;App:&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.dropbox.com/s/d5u8mlrcvdxb08o/Linux%20UBO%20update%20Fail.zip?dl=0"&gt;https://www.dropbox.com/s/d5u8mlrcvdxb08o/Linux%20UBO%20update%20Fail.zip?dl=0&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can see the shadows flickering:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2019-08-24 10-21-45.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/5362i3A8E30A876C82ED8/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot from 2019-08-24 10-21-45.jpg" alt="Screenshot from 2019-08-24 10-21-45.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2019-08-24 10-22-01.jpg"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/5363i04D28146823DA026/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot from 2019-08-24 10-22-01.jpg" alt="Screenshot from 2019-08-24 10-22-01.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 24 Aug 2019 10:24:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Graphics/Graphics-Driver-Bug-Linux-Updating-UBO-s/m-p/665209#M78474</guid>
      <dc:creator>GSlaz</dc:creator>
      <dc:date>2019-08-24T10:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: Graphics Driver Bug - Linux Updating UBO's</title>
      <link>https://community.intel.com/t5/Graphics/Graphics-Driver-Bug-Linux-Updating-UBO-s/m-p/665210#M78475</link>
      <description>&lt;P&gt;Hello &lt;A href="https://forums.intel.com/s/profile/0050P000008KKCrQAO" target="_self" alt="https://forums.intel.com/s/profile/0050P000008KKCrQAO"&gt;GSlaz&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for posting on the Intel® communities.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to inform you that Intel® does not provide direct downloads and technical support for Linux drivers. The Intel® Graphics Linux driver is primarily supported through the original equipment manufacturer (OEM), the &lt;A href="https://www.intel.com/content/www/us/en/support/topics/linux-osv.html" target="_self" alt="https://www.intel.com/content/www/us/en/support/topics/linux-osv.html"&gt;Linux distribution vendor&lt;/A&gt;, or by the Intel Open Source Technology Center at &lt;A href="http://01.org/linuxgraphics" target="_self" alt="http://01.org/linuxgraphics"&gt;&lt;/A&gt;&lt;A href="http://01.org/linuxgraphics"&gt;01.org/linuxgraphics&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We will close this inquiry; but, if you need further assistance, please post a new question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Esteban Ch.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Intel Customer Support Technician&lt;/P&gt;&lt;P&gt;A Contingent Worker at Intel&lt;/P&gt;</description>
      <pubDate>Tue, 27 Aug 2019 05:09:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Graphics/Graphics-Driver-Bug-Linux-Updating-UBO-s/m-p/665210#M78475</guid>
      <dc:creator>Esteban_C_Intel</dc:creator>
      <dc:date>2019-08-27T05:09:30Z</dc:date>
    </item>
  </channel>
</rss>

