| Segmentation fault is caused by 'No appropriate framebuffer config found!' | Deokjin Kim | 10/31/13 12:27 AM | Dear all,
When I executed servo, I met segmentation fault. It's caused by 'No appropriate framebuffer config found!'. Below is my test result. 0. Test environment - git hash : 1a7e9e5e2c02d9e023c901f14a8b54e9a3c6a8a2
1. Execute servo without "-c" option # ./servo ../src/test/html/about-mozilla.html task '<unnamed>' failed at 'No appropriate framebuffer config found!', /home/deokjin81kim/Share/2013_parallel_browser/temp/servo/src/support/layers/rust-layers/platform/linux/surface.rs:143
2. Execute servo with "-c" option # ./servo -c ../src/test/html/about-mozilla.html task '<unnamed>' failed at 'No appropriate framebuffer config found!', /home/deokjin81kim/Share/2013_parallel_browser/temp/servo/src/support/layers/rust-layers/platform/linux/surface.rs:143
3. Result of "lspci" command # lspci 00:00.0 Host bridge: Intel Corporation Core Processor DMI (rev 11)
Thank you in advance.
Best Regards, Deokjin Kim |
| Re: Segmentation fault is caused by 'No appropriate framebuffer config found!' | Patrick Walton | 10/31/13 8:37 AM | On 10/31/13 12:27 AM, Deokjin Kim wrote:We've seen problems with some GPU drivers on Linux not being able to handle binding X pixmaps to RGBA textures. I assumed that in 2013 everyone would support this seemingly basic feature but that does not seem to be the case :( I see three options: 1. EGLStream. Maybe that will work on those GPUs. 2. Investigate if there's some way to hack around it (using RGB pixmaps but somehow storing and reconstructing the alpha channel maybe?) 3. Shared memory with texture upload on the compositor side. #3 is guaranteed to work, but has bad performance implications (though no worse than the browsers of today). For now we can back off to RGB textures on those GPUs. This obviously won't work in the long run, though. Patrick |
| Re: Segmentation fault is caused by 'No appropriate framebuffer config found!' | Keegan McAllister | 10/31/13 12:05 PM | > 2. Investigate if there's some way to hack around it (using RGB pixmapsThis sounds pretty workable to me. We can send alpha as the R channel of a second pixmap/texture and the compositor can extract it within a fragment shader. If we're rendering on the CPU anyway, what's the performance hit of compositor upload? Is the issue that we'd like to upload in parallel with compositor work (and thus avoid jank)? I'm one of the people who can't use RGBA pixmaps, on Linux with NVIDIA binary drivers (which I naively thought were feature-complete). When I switch to RGB pixmaps (patching rust-layers thus: https://gist.github.com/kmcallister/7206061), I can run servo with CPU rendering (./servo -c) but with GPU rendering I get X Error of failed request: BadAlloc (insufficient resources for operation) Major opcode of failed request: 135 (GLX) Minor opcode of failed request: 22 (X_GLXCreatePixmap) Serial number of failed request: 141 Current serial number in output stream: 142 I'm not sure why this is happening but I didn't have much time to dig into it yet. keegan |