#53 PCSX2/GSDX GL_ARB_pixel_buffer_object not supported by VGL?

closed-fixed
DRC
VirtualGL (44)
5
2014-04-28
2012-08-21
Anonymous
No

Hello,

I tried to run pcsx2 with bumblebee but it crashed with the following error message:

[VGL] ERROR: in readpixels--
[VGL] 260: GL_ARB_pixel_buffer_object extension not available

PCSX2 Output: http://nopaste.info/3f8060ee1c.html
glxinfo Output: http://nopaste.info/400f85eb6d.html

Discussion

  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-08-21
    • summary: PCSX2/GSDX GL_ARB_pixel_buffer_object not supportd by VGL? --> PCSX2/GSDX GL_ARB_pixel_buffer_object not supported by VGL?
     
  • DRC

    DRC - 2012-08-21

    The only reason why that should occur is if you are setting VGL_READBACK=pbo and running on a graphics card or driver that doesn't support PBO's. The output of glxinfo shows that that's not the case, so I have no idea. You haven't provided very much information, such as how you are invoking VirtualGL (I have no idea what "optirun" is doing. That's a wrapper for our scripts, and it's specific to Bumblebee) or what distribution of Linux you're using, etc.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-08-21

    well, I cant really add more information because there aren't any

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-08-21

    Output of: optirun --verbose --vgl-options "" ./bin/pcsx2 roms/GradiusV/Gradiusv.bin --nogui &>error.txt

     
  • DRC

    DRC - 2012-08-21

    You can't even tell me what Linux distribution you are using? What version of the nVidia drivers? I'm trying to help you, here. PCSX2 is not exactly an easy program to build, and the binaries they provide don't work on any of the distros I'm running. Games are the lowest priority for this project, so I really have no time to futz with this stuff. If you want my help, you're going to have to help me first.

    I am assuming that other applications, such as GLXspheres, work correctly, but you haven't provided that information, either.

    I do not see any reason why this error would occur in the VirtualGL code unless there is something wrong with your system, and I definitely can't see any reason why the issue would occur unless VGL_READBACK is set to pbo.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-08-21

    Ok, sorry about that

    Debian Wheezy
    Kernel 3.2.0-3-686-pae
    Nvidia 304.37
    The whole bumblebee/virtualgl stuff comes from here http://suwako.nomanga.net/

    Other applications worked very well (Quake 3, Doom 3, Unigine Heaven OGL4 Benchmark) and even PCSX2 with a different video plugin than GSDX. I've absolutly no idea what VGL_READBACK is, but I haven't heard of it so I guess I don't use it

     
  • DRC

    DRC - 2012-08-21

    VirtualGL redirects rendering from windows into off-screen pixel buffers, then it reads back the rendered pixels from the pixel buffers and draws them to the screen. That's why Bumblebee uses it-- because it allows the rendering to occur on the nVidia chip in the Optimus laptops, but it displays the result to the Intel chip.

    VGL_READBACK is an option in VirtualGL that controls whether or not pixel buffer objects are used when reading back the pixels from the pixel buffer. The default is not to use PBO's, or rather to use "synchronous" pixel readback. PBO's are asynchronous, so they are advantageous when you have multiple users sharing the same GPU, but it's not really relevant in the case of Bumblebee.

    What's confusing me is that the code that is generating the error message above is very clearly not ever activated unless VGL_READBACK=pbo. This is easily verified by examining the VirtualGL code (server/pbdrawable.cpp.) The code in question queries glGetString() and looks for "GL_ARB_pixel_buffer_object" in the list of supported strings. I have seen some ill-behaved applications that actually modify the string returned by glGetString(), which could cause VirtualGL not to see the GL_ARB_pixel_buffer_object extension in the string, but again, it only ever checks that string if VGL_READBACK=pbo. I'm struggling to think of how that code could be activated only for one app and only for one video plugin within that app.

    It might be beneficial to run a debug version of VirtualGL with valgrind to make sure that no memory corruption is occurring.

    If someone wants to volunteer to build me a working set of PCSX2 binaries for CentOS 6, I'll be glad to look into this further, but barring that, there isn't much else I can do. You may have better luck pursuing the issue through the Bumblebee project, as they are more games-focused.

     
  • DRC

    DRC - 2012-08-23
    • status: open --> closed-fixed
     
  • DRC

    DRC - 2012-08-23

    Although I'm still not sure why VGL_READBACK=pbo is being set (probably something in Bumblebee), I believe the failure here was due to an issue whereby VirtualGL was sharing the application's OpenGL context, and if said context was created with an OpenGL core profile > v3.x, the GL_ARB_pixel_buffer_object was not advertised (because that extension is not considered an extension anymore-- it is part of the core functionality.)

    VirtualGL no longer tries to share the application's OpenGL context, so this problem (and several others) should now be fixed.

    Please try the latest build at:
    http://www.virtualgl.org/DeveloperInfo/PreReleases

    Let me know if you are still experiencing problems, and I will re-open the issue.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-08-24

    It's working like a charm, thank you very much.

     
    Last edit: Anonymous 2014-07-31

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks