hi, all:<br> I am looking at egl code recently about SandyBridge platform. But I found one problem.<br> with the same r,g,b a byte numbers, i965 driver will return at least two FB configs, one for single buffer, another form double buffer.<br>
but the eglChooseConfig() function can't specify which FB config its prefer whether single buffer or double buffer. According to the priority criterion this function will return double buffer FB config.<br> eglCreateWindowSurface() can specify to create a single buffer or double buffer.But i985 driver will create render buffer according to the FB config choosed by eglChooseConfig. <br>
If eglChooseConfig() return a double buffer FB config, eglCreateWindowSurface specify it will use single buffer, then the i965 will create double buffer in low level, this will violate application's purpose using single buffer. In this case application call glFlush() function will not show picture on screen, only call eglSwapBuffers() can show picture.<br>
Although this bug will not result in rendering problem, but it violate a rule in my opinion: if using single buffer, glFlush() will show the picture, if using double buffers, SwapBuffers() will show the picture.<br> To solve this problem, maybe there are some choice:<br>
1. add one attribute bit in eglChooseConfig() to specify whether choose single buffer or double buffer<br> 2. modify eglCreateWindowSurface(), in above case when FB config and attribute has conflict, it should warning user and eglQuerySurface(RenderBuffer) should return double buffer not single buffer.<br>
3. modify i965 driver to satisfy eglCreateWindowSurface() request specified by attribute_list.<br><br><br><br>thanks<br><br>