Community
cancel
Showing results for 
Search instead for 
Did you mean: 
GSlaz
Beginner
380 Views

Graphics Driver Bug - Linux Updating UBO's

This is a Linux OpenGL application.

 

Run app on Intel GPU.

Updating UBO's uses 'glBufferSubData' by default, works OK.

Press SPACE to change updating to different modes and it starts to break.

 

App works fine on Windows GeForce and Android GL ES 3 using same code.

 

Code for updating UBO's:

  glBindBuffer(GL_UNIFORM_BUFFER, buffer.buffer);

  switch(GL_UBO_MODE)

  {

   default /*0 GL_BUFFER_SUB*/       :                                 glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;

   case  /*1*/GL_BUFFER_SUB_RESET_PART   : glBufferData(GL_UNIFORM_BUFFER, buffer.size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;

   case  /*2*/GL_BUFFER_SUB_RESET_FULL   : glBufferData(GL_UNIFORM_BUFFER,  full_size, null, GL_DYNAMIC); glBufferSubData(GL_UNIFORM_BUFFER, 0, buffer.size, data); break;

   case  /*3*/GL_BUFFER_SUB_RESET_PART_FROM: glBufferData(GL_UNIFORM_BUFFER, buffer.size, data, GL_DYNAMIC);                              break;

   case  /*4*/GL_BUFFER_SUB_RESET_FULL_FROM: glBufferData(GL_UNIFORM_BUFFER,  full_size, data, GL_DYNAMIC);                              break;

   case  /*8*/GL_BUFFER_MAP        : if(Ptr dest=glMapBufferRange(GL_UNIFORM_BUFFER, 0, buffer.size, GL_MAP_WRITE_BIT|GL_MAP_INVALIDATE_BUFFER_BIT))

   {

     memcpy(dest, data, buffer.size);

     glUnmapBuffer(GL_UNIFORM_BUFFER);

   }break;

  }

 

Tested on Ubuntu 19.04

Intel Core i7-3632QM CPU @ 2.20 GHz

Intel ivybridge Mobile

Mesa DRI Intel Ivybridge Mobile

 

App:

https://www.dropbox.com/s/d5u8mlrcvdxb08o/Linux%20UBO%20update%20Fail.zip?dl=0

 

You can see the shadows flickering:

 

Screenshot from 2019-08-24 10-21-45.jpg

Screenshot from 2019-08-24 10-22-01.jpg

0 Kudos
1 Reply
Esteban_C_Intel
Employee
37 Views

Hello GSlaz,

 

Thank you for posting on the Intel® communities.

 

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 Linux distribution vendor, or by the Intel Open Source Technology Center at 01.org/linuxgraphics.

 

We will close this inquiry; but, if you need further assistance, please post a new question.

 

Esteban Ch. 

Intel Customer Support Technician

A Contingent Worker at Intel