Announcement

Collapse
No announcement yet.

ati compile error

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ati compile error

    Just tried the latest gits and got compile errors with ati.

    Branches
    libdrm-3d->r6xx-r7xx-3d (or something like that from agd5f)
    mesa->r6xx-rewrite
    xf...ati->master
    xf...radeonhd->master

    Dist: slackware-current (32 bit) which has qt4+ and kde4+
    Kernel: 2.6.27.15
    edit: hardware is hd3200 (780g)

    errors for ati are:
    Code:
    In file included from radeon_textured_video.c:156:
    radeon_textured_videofuncs.c: In function 'RADEONDisplayTexturedVideoMMIO':
    radeon_textured_videofuncs.c:156: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:156: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R200DisplayTexturedVideoMMIO':
    radeon_textured_videofuncs.c:552: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:552: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R300DisplayTexturedVideoMMIO':
    radeon_textured_videofuncs.c:1102: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:1102: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R500DisplayTexturedVideoMMIO':
    radeon_textured_videofuncs.c:2561: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:2561: error: invalid type argument of '->' (have 'Bool')
    In file included from radeon_textured_video.c:179:
    radeon_textured_videofuncs.c: In function 'RADEONDisplayTexturedVideoCP':
    radeon_textured_videofuncs.c:156: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:156: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R200DisplayTexturedVideoCP':
    radeon_textured_videofuncs.c:552: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:552: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R300DisplayTexturedVideoCP':
    radeon_textured_videofuncs.c:1102: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:1102: error: invalid type argument of '->' (have 'Bool')
    radeon_textured_videofuncs.c: In function 'R500DisplayTexturedVideoCP':
    radeon_textured_videofuncs.c:2561: warning: comparison between pointer and integer
    radeon_textured_videofuncs.c:2561: error: invalid type argument of '->' (have 'Bool')
    radeonhd compiled OK. I'll try it out in a bit.

    edit: radeonhd 2d seems to be working well. No significant errors or warning is xorg.0.log, windows movement is fast. Sound over hdmi is working.
    Last edited by forum1793; 05 July 2009, 09:27 PM.

  • #2
    Originally posted by forum1793 View Post
    libdrm-3d->r6xx-r7xx-3d (or something like that from agd5f)
    I think this branch is out of date. IIRC, you should use the master branch of libdrm now, as the r6/700 stuff has been merged into it.

    This is why I think old branches should be deleted when they're no longer used.

    Comment


    • #3
      Originally posted by mattst88 View Post
      I think this branch is out of date. IIRC, you should use the master branch of libdrm now, as the r6/700 stuff has been merged into it.

      This is why I think old branches should be deleted when they're no longer used.
      There are no changes needed for r6xx/r7xx in libdrm. Just about any libdrm should work for r6xx/r7xx.

      For the actual kernel modules, you need my r6xx-r7xx-3d branch for the new ioctls needed for r6xx/r7xx mesa support.

      As the the ddx, please pull the latest bits. It should build ok now.

      Comment


      • #4
        Yes, with the git changes from today, xf86-video-ati builds OK.

        The IOCTL reference is beyond me but that's OK. I just remember that your 3D branch was needed to try 3D.

        BTW, on my machine, glxinfo works on both drivers but glxgears causes both to instantly lock. Only the soft power button works at that point. This probably related to memory bug bridgman mentioned.

        Good luck.

        Comment


        • #5
          FYI, ioctls are another word for "system calls", which implement the actual api between userspace and the kernel driver. The usermode driver code generally calls into libdrm, then libdrm code executes the ioctl system calls which pass control to the kernel graphics driver (drm, or Direct Rendering Manager).

          I believe the ioctl term dates back to the early Unix filesystem days, when the standard calls for a file object were open, close, read, write and ioctl (I/O Control).
          Test signature

          Comment


          • #6
            I guess I'm slightly more enlightened while being slightly more confused.

            Taking what you both have said, does this mean 3D might work with agd5f's libdrm for the radeon module that come standard with the 2.6.27 series kernels? The answer should be no because we replace the radeon module (/lib...) when compiling libdrm/linux-core.

            Or are you saying that agd5f's libdrm-3d allows direct to hardware (via ioctls in kernel) but that will be replaced by putting the ioctl call in mesa (and has this already been done?)?

            If bug get's worked out in mesa, will the drm from the 2.6.30 kernel with the recent ati/radeonhd drivers from git allow 3D?

            These questions for r6xx hardware.

            Thank you for responses.

            Comment


            • #7
              Originally posted by forum1793 View Post
              Taking what you both have said, does this mean 3D might work with agd5f's libdrm for the radeon module that come standard with the 2.6.27 series kernels? The answer should be no because we replace the radeon module (/lib...) when compiling libdrm/linux-core.
              Actually agd5f said you use the kernel modules off his branch, not libdrm.
              <don't take as facts>
              In case ioctl's are system calls which is the impression I get from Wikipedia, they sound like a pretty direct way to communicate with the kernel drivers.. In the case of most system calls (open, close, read, write, etc) you never do them direectly in normal applications but always use your local libc implementations of standard C functions which are likely implemented by using system calls. Not sure how good an analogy libc is to libdrm, possibly very bad. I recommend against memorizing it.
              </don't take as facts>

              Comment


              • #8
                Yeah, the main point is that you need *drm* from agd5f's branch, not *libdrm*.

                The specific binary files you want AFAIK are drm.ko and radeon.ko, both of which are kernel drivers.
                Test signature

                Comment


                • #9
                  In Slackware the package for drm is called libdrm (I'm pretty sure).

                  So when I cloned drm git I rename it libdrm. The directory name doesn't really matter as the git stuff is inside. Then I make slackware packages of these (using modified slackbuild scripts), remove the original or previous libdrm package and install the new one. This is seen to change the drm.ko and radeon.ko modules for the operating kernel as well as libdrm files in /usr/lib and header files in /usr/include.

                  I'll try and remember to call this only drm to avoid confusion in future.

                  Edit: Wait a minute. Are you saying I should be using only radeon.ko and drm.ko from agd5f's 3d branch and then the rest from mesa/drm?

                  Thanks again.
                  Last edited by forum1793; 07 July 2009, 09:48 PM.

                  Comment


                  • #10
                    Originally posted by forum1793 View Post
                    In Slackware the package for drm is called libdrm (I'm pretty sure).
                    Geez, we sure make this hard for ourselves don't we

                    Originally posted by forum1793 View Post
                    Edit: Wait a minute. Are you saying I should be using only radeon.ko and drm.ko from agd5f's 3d branch and then the rest from mesa/drm?.
                    AFAIK you want radeon.ko and drm.ko from agd5f's 3d branch and the rest should be whatever you already have. Doing the "make install" on the drm source will automatically update /usr/include/drm headers etc... though.
                    Test signature

                    Comment

                    Working...
                    X