No announcement yet.

FGLRX Pixel Buffer support

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16

    I'll have to verify that the Nvidia drivers actually export this extension when I get home. Everything I have read and experienced support my claim that they do.

    Edit: I found the section of code in winex11.drv that maps the pbuffers, and you are right, they are mapped to GLX_SGIX_pbuffer (which glxinfo reports as being availiable with FGLRX). Here is a comment from the code that points out the problem:

    /* In general pbuffer functionality requires support in the X-server. The functionality is
    * available either when the GLX_SGIX_pbuffer is present or when the GLX server version is 1.3.
    * All display drivers except for Nvidia's use the GLX module from Xfree86/Xorg which only
    * supports GLX 1.2. The endresult is that only Nvidia's drivers support pbuffers.
    * The only other drive which has pbuffer support is Ati's FGLRX driver. They provide clientside GLX 1.3 support
    * without support in the X-server (which other Mesa based drivers require).
    * Support pbuffers when the GLX version is 1.3 and GLX_SGIX_pbuffer is available. Further pbuffers can
    * also be supported when GLX_ATI_render_texture is available. This extension depends on pbuffers, so when it
    * is available pbuffers must be available too. */

    So, part of what is needed is already implemented, what is missing is support for GLX server 1.3. Any chance we will be seeing this any time soon?

    Again, thanks for your patience.
    Last edited by sandain; 02-05-2009, 06:48 PM.


    • #17
      Could be... I'm just going by the dev posts -- although it was Stefan D. posting and he does know this stuff pretty well.

      It might turn out to be something trivial; one of the earlier posts in the Wine log implied they hadn't done much testing on ATI cards because neither the SGIX nor FBO calls were behaving properly at the time. If we are exposing the SGIX extension then this might just need a tweak in Wine.
      Last edited by bridgman; 02-05-2009, 06:42 PM.


      • #18
        I'm not following here. If WoW uses this extension, but the driver doesn't implement it, how on earth does it render correctly in Windows in the first place?


        • #19
          As I understand it, there is a pbuffers extension for Windows (WGL_ARB_pbuffers) but the corresponding X extension was never approved so exists only as the experimental GLX_SGIX_pbuffers, and nobody cares because most apps use FBOs instead of the older pbuffers anyways.

          The apps which do use pbuffers have more trouble running on another OS because pbuffers is officially a Windows-only extension.

          Sandain, it looks like we already have client-side support for GLX 1.3 but the server code only supports 1.2 (presumably because we don't overwrite that part of the X stack, not sure). What's not clear is if Wine and the app actually require server side support, or whether the statement "in general, pbuffers require server-side support" is just a generality. This is getting into a level of X-specific nuance I don't fully understand.

          Anyways, this is something I can ask about.
          Last edited by bridgman; 02-05-2009, 07:22 PM.


          • #20
            Well now that I'm home, I've verified that the Nvidia drivers do not export the WGL_ARB_pbuffer extension as I had previously thought. I really should be careful about spreading FUD.. gah!

            I'm currently cloning the wine git repo, and I'll start playing around with the code shortly. I have very little experience working with OpenGL, but I have a theory that I'd like to test. If I change the code to remove the check for glxRequireVersion(3), what happens?

            I'll be back with a report when I know.


            • #21
              Originally posted by RealNC View Post
              I'm not following here. If WoW uses this extension, but the driver doesn't implement it, how on earth does it render correctly in Windows in the first place?
              Because the Windows driver most likely implements this feature, or because very few Windows users actually run the OpenGL client.


              • #22
                Oh, oh... Same thing i experianced when ATI droped support for pbuffers for my 9250 (2005 with 8.15 driver), with argument "it is hard to maintaining any further"... One year later my card was not supported anymore. The end. NVIDIA for compete and many years older chips have support even today! So, i just don't know when ATI think to stop
                playing like that with their users?

                Here are some 'fgl_glxgears' screenshots from that time, with or w/o pbuffers driver support. I remember if that is good, wine use that and translate as wgl pbuffer. You can test this also if you think that driver lack pbuffers.


                • #23
                  After playing around with the Wine code for a while, and getting no results, I decided to check how things performed in Windows. I am now back to believing this to be a bug on AMD's end. This bug also shows up in Windows when using the OpenGL client with WoW. I tested this with versions 8-6 and 9-1, with the same result.

                  Windows - OpenGL:

                  Wine - OpenGL

                  Wine - Direct3D

                  Note: Wine renders the Direct3d client the same as Windows. The OpenGL client works with Nvidia drivers on either platform.

                  Update: This bug has been fixed as of FGLRX 9-8. Thanks AMD!
                  Last edited by sandain; 10-21-2009, 12:31 PM.


                  • #24
                    Yes, this is fglrx bug. Games often uses pbuffers for map viewer, you can see that in Dungeon Siege 2 also.

                    P.S. But then, i think you have translated WGL_ARB_pbuffers (you can use 'glview' tool, to see if Wine exported that extension), because WoW DX client works good. So, if problem is only with opengl stack of wine's pbuffers, bug can be in both, but as you stated that opengl client
                    run the same in windows, i think there is no hope with fglrx.
                    Last edited by dungeon; 02-06-2009, 02:38 AM.


                    • #25
                      i have this problem to "n 'GL_ARB_draw_buffers' is not supportet"

                      WINE: "fixme:d3d_shaderrint_glsl_info_log Error received from GLSL shader #16: "Fragment shader was successfully compiled to run on hardware.\nWARNING: 0:2: extension 'GL_ARB_draw_buffers' is not supporte"

                      i testet it on OFP in Wine and Aquamark3benchmark on the catalyst 8.592 and same problem on 8.582.


                      • #26
                        Might be a bogus message, not sure :



                        • #27
                          Originally posted by bridgman View Post
                          Might be a bogus message, not sure :

                          for me OFP (a nice game) works most of the time..
                          i think there only was some litle deteils that was not renderet..
                          i can bring some fotos online winxp VS Linux...
                          there are some diverences..
                          i think on nvidia there are nerly no diverences.. ..
                          but i can't test this becourse all my nvidia carts are death..
                          a frend send me Pictures of OFP on windows he has a nvidia...
                          and yes there are diverences... but it can be the "wine" what makes the diverence not the driver..
                          so over all.. i don't know..


                          • #28
                            I know this is a somewhat old thread but i am experiencing the same problem as the original author (wow minimap all white indoors).

                            Now im using the 9.5 drivers and GLX_SGIX_pbuffer is exported both in the server and client side of GLX, fgl_glxgears works with no problem, so my question is basically is this then implemented now?

                            And if so then i suppose my problem is the WGL -> GLX wrapper in wine or perhaps the detection of the extension by wine?

                            Wine version is: 1.1.22 running on ubuntu 9.04


                            • #29
                              To answer my own question:
                              Yes this seems to be implemented now.

                              No the problem is not with Wine, its with ATI's driver.
                              It's supposed to include the extensions that are present in the driver in the "GLX extensions:" list which it doesn't.

                              Why the driver doesn't do this is another question which i don't have the answer to, seems stupid since its there both at client and server side.



                              • #30
                                Can you be a bit more precise about what is not working with the extension ? Maybe sample code or something ? I'm not clear how the extension can be "not implemented in the driver" if fgl_glxgears is working.

                                My understanding from the devs is that the extension was always implemented in the driver code (and worked in other OSes) but since it was only a standard extension in Windows the X binding was not added until recently.
                                Last edited by bridgman; 06-05-2009, 01:19 PM.