View Full Version : ati compile error
forum1793
07-05-2009, 08:16 PM
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:
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.
mattst88
07-06-2009, 11:14 AM
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.
agd5f
07-06-2009, 11:41 AM
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.
forum1793
07-06-2009, 08:06 PM
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.
bridgman
07-06-2009, 08:45 PM
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).
forum1793
07-07-2009, 07:09 AM
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.
nanonyme
07-07-2009, 08:17 AM
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>
bridgman
07-07-2009, 09:18 AM
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.
forum1793
07-07-2009, 08:43 PM
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.
bridgman
07-07-2009, 08:59 PM
In Slackware the package for drm is called libdrm (I'm pretty sure).
Geez, we sure make this hard for ourselves don't we ;)
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.
agd5f
07-08-2009, 09:50 AM
configure, make, and make install in the root of the drm source will install libdrm and the associated headers, not the kernel modules. To install the kernel modules, you need to build them in the linux-core directory. in the linux-core directory, run make (or make drm.o radeon.o to just build the common and radeon modules) and then copy them to your kernel modules tree (/lib/modules/`uname -r`/kernel/drivers/gpu/drm for drm.ko and /lib/modules/`uname -r`/kernel/drivers/gpu/drm/radeon/ for radeon.ko on most recent distros.
glock24
07-08-2009, 11:02 AM
I did a "git pull" of xf86-video-ati today, and it gives me compile errors. Here's that output:
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I./AtomBios/includes -Wall -I/usr/include/xorg -I/usr/include/pixman-1 -I/usr/include/drm -I/usr/include/X11/dri -DDISABLE_EASF -DENABLE_ALL_SERVICE_FUNCTIONS -DATOM_BIOS -DATOM_BIOS_PARSER -DDRIVER_PARSER -g -O2 -MT radeon_textured_video.lo -MD -MP -MF .deps/radeon_textured_video.Tpo -c radeon_textured_video.c -fPIC -DPIC -o .libs/radeon_textured_video.o
In file included from radeon_textured_video.c:148:
radeon_textured_videofuncs.c: In function ‘RADEONDisplayTexturedVideoMMIO’:
radeon_textured_videofuncs.c:107: warning: implicit declaration of function ‘radeon_cs_space_reset_bos’
radeon_textured_videofuncs.c:145: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R200DisplayTexturedVideoMMIO’:
radeon_textured_videofuncs.c:530: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R300DisplayTexturedVideoMMIO’:
radeon_textured_videofuncs.c:1069: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R500DisplayTexturedVideoMMIO’:
radeon_textured_videofuncs.c:2517: error: invalid type argument of ‘->’ (have ‘Bool’)
In file included from radeon_textured_video.c:171:
radeon_textured_videofuncs.c: In function ‘RADEONDisplayTexturedVideoCP’:
radeon_textured_videofuncs.c:145: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R200DisplayTexturedVideoCP’:
radeon_textured_videofuncs.c:530: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R300DisplayTexturedVideoCP’:
radeon_textured_videofuncs.c:1069: error: invalid type argument of ‘->’ (have ‘Bool’)
radeon_textured_videofuncs.c: In function ‘R500DisplayTexturedVideoCP’:
radeon_textured_videofuncs.c:2517: error: invalid type argument of ‘->’ (have ‘Bool’)
make[2]: *** [radeon_textured_video.lo] Error 1
make[2]: Leaving directory `/home/gbelli/xf86-video-ati/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/gbelli/xf86-video-ati'
make: *** [all] Error 2
agd5f
07-08-2009, 11:36 AM
should be fixed now.
glock24
07-08-2009, 08:04 PM
should be fixed now.
Yep, it's working now :)
slacker
07-09-2009, 02:19 AM
Compiling xf86-video-ati from git fails with xorg-server-1.6.2
CC atombios_crtc.o
CC atombios_output.o
CC radeon_dri2.o
CC radeon_kms.o
radeon_dri2.c: In function 'radeon_dri2_create_buffer':
radeon_dri2.c:171: error: 'struct <anonymous>' has no member named 'format'
radeon_dri2.c: In function 'radeon_dri2_screen_init':
radeon_dri2.c:312: warning: assignment from incompatible pointer type
radeon_dri2.c:313: warning: assignment from incompatible pointer type
make[2]: *** [radeon_dri2.lo] Error 1
nanonyme
07-09-2009, 07:18 AM
Compiling xf86-video-ati from git fails with xorg-server-1.6.2
CC atombios_crtc.o
CC atombios_output.o
CC radeon_dri2.o
CC radeon_kms.o
radeon_dri2.c: In function 'radeon_dri2_create_buffer':
radeon_dri2.c:171: error: 'struct <anonymous>' has no member named 'format'
radeon_dri2.c: In function 'radeon_dri2_screen_init':
radeon_dri2.c:312: warning: assignment from incompatible pointer type
radeon_dri2.c:313: warning: assignment from incompatible pointer type
make[2]: *** [radeon_dri2.lo] Error 1That's a known issue, it's due to ABI compliancy stuff resulting in format member being dropped from DRI2BufferPtr and only getting into DRI2Buffer2Ptr in the X server. Probably going to get fixed soonish but you can locally fix it by doing string replacing in radeon_dri2.c.
forum1793
07-09-2009, 07:18 AM
Slacker: It would be useful for you to say which branches you are using.
xf86-video-ati->master?
mesa->r6xx-rewrite?
slacker
07-09-2009, 08:11 AM
That's a known issue, it's due to ABI compliancy stuff resulting in format member being dropped from DRI2BufferPtr and only getting into DRI2Buffer2Ptr in the X server. Probably going to get fixed soonish but you can locally fix it by doing string replacing in radeon_dri2.c.
yep that worked thanks :)
why isnt it commited?
nanonyme
07-09-2009, 05:46 PM
yep that worked thanks :)
why isnt it commited?Unsure. ^^
vBulletin® v3.8.5, Copyright ©2000-2010, Jelsoft Enterprises Ltd.