From: Beso <[email protected]> Date: 2008/12/12 Subject: Re: Cannot get DRI to work To: Hendrik Friedel <[email protected]>
i have some observations: 1. have you compile the libdrm modules for the kernel you're using?! 2. try using the mtrr registers to map the memory. it's somehow faster than without it Option "mtrr" "on" #enables mtrr 3. i'd also use the following optimizations: Option "AccelMethod" "EXA" # uses exa by default (faster than xaa) Option "DRI" "true" # tells to use dri Option "no_accel" "no" # tells to use hw accel if possible Option "DynamicClocks" "on" # enables the dynamic scaling for power handling Option "AccelDFS" "true" # i don't know what this does but it's a remnant that # doesn't seem to influence the fps Option "EnableDepthMoves" "yes" # enables depth moves (i don't know if it's still used) # another old remnant that doesn't influence fps Option "RenderAccel" "true" # this enables render acceleration. it needs dri and it's slow, # but very cool as user experience. now coming to your settings: a. do you force the loading of the drm? the latest xorg versions and with newer kernels don't seem able to automatically load the drm module by themselves. i have to force the loading of drm and radeon at startup or have X hang. i still haven't figured this out (the 2.6.26 introduced this issue). b. from your dmesg and xorg log it seems that you have a 8mb gart aperture. in the bios you should be able to see the real value, but i don't seem to see the agpgart aperture identified by the kernel from the dmesg you've attached. anyway verify in the bios that your agp aperture is really set. this link indicates how to set them in the better way: http://www.cableforum.co.uk/board/30/16813-bios-settings-agp-aperture-size-how.html the kernel should find the gart aperture in the correct way after setting this. check if you have the agpgart compiled in the kernel not as module. you should have most likely an aperture of 32 mb or if you're lucky of 64mb. c. why are you forcing radeon to use the internal agp driver? try removing that option, since if i recall well it's the right one to use when using fglrx. this option forces the driver not to use the kernel drm module, but the driver one. now find out your agp version and try tweaking the following options: Option "AGPMask" "integer" This option applies to AGPv1/2. To handle an AGPv3 interface, you will additionally need Option "AGPv3Mask". Value Effect "0x00000001" Disable AGP 1x (forces 2x or 4x). "0x00000002" Disable AGP 2x (forces 1x or 4x). "0x00000004" Disable AGP 4x (forces 1x or 2x). "0x00000010" Disable fast-writes. "0x00000200" Disable sidebanding. To combine several settings, only add the values. Let me show an example: "0x00000216" means: force AGP 1x (disable AGP 2x and 4x), disable fast-writes and sidebanding. You can check, if fast-writes has been disabled by searching your kernel log for 'AgpCommand = hex-integer'. The second last hex digit should be 0 (zero) if fast-writes is off, or 1 (one) if it is on. Option "AGPv3Mask" "integer" This option only applies to AGPv3. [Important] Important It is used in addition to Option "AGPMask". That means, that you turn off fast-writes or sidebanding with Option "AGPMask". Value Effect "0x00000001" Disable AGP 4x (forces 8x). "0x00000002" Disable AGP 8x (forces 4x). also set the bus type to agp with the following: Option "BusType" "string" This option allows to overwrite the detected bus type. Use it, when the drivers bus detection is incorrect or when you want to force an AGP card to PCI bus. The default situation is, that the driver auto-detects the bus type. Possible values for this option are: Value Effect "AGP" AGP bus. "PCI" PCI bus. "PCIE" PCI Express bus (fallback: PCI). [Caution] Caution NEVER try to force a PCI card to AGP bus. and then try tweking with the following kernel options: Option "KernelModuleParm" "string" If you change this option during runtime, you have to remove and reload the fglrx kernel module with rmmod fglrx && modprobe fglrx (see modprobe(8), rmmod(8)). Possible values you can provide with this option are (separate them by semicolon): Parameter Mode "agplock=0" Disable AGP locked user pages. "agplock=1" Enable AGP locked user pages (default). "agpgart=0" Use built-in AGP GART support. "agpgart=2" Same, but only if no agpgart module is loaded. "agpgart=3" Disable built-in AGP GART support. "agp_try_unsupported=1" Try unsupported chipsets [1]. "debug=0" Turn debugging off. "debug=1" Turn debugging on. "debug=0x00040003" ??? "maxlockedmem=256" Maximum locked DMA (Direct Memory Access) memory in MB. "noauth" ??? "su_flags=0xdead0003" Recognize card as FireGL model and enable 3DNow. [Note] Note If neither the built-in nor the kernel AGPGart support work, you can use [1] as a fallback. the following tells the driver how much memory to use: Option "MaxGARTSize" "integer" Configure the ATI AGP GART (Graphic Address Remapping Table) size. if you don't know how useinternalagp functions this is the explanation: Option "UseInternalAGPGART" "boolean" Enable or disable the usage of an internal agpgart module. If you set this option to "yes", the driver will not use the kernel's AGPGart module. Instead it will make use of the "built-in" AGP support. The default is "no", as long as the graphics driver's kernel module detects the presence of an agpgart kernel module. [Warning] Warning If you set this option to "yes" you must ensure, that you don't have the kernel AGP support compiled in. Instead compile it as modules. The AGP support in the driver may not always work, depending on the type of motherboard and/or card that you have. But there is a possibility, which maybe still works. Refer to the "agp_try_unsupported=1" value for Option "KernelModuleParm". now getting to what i'd try first the following: Option "BusType" "AGP" Option "MaxGARTSize" "integer" # the one you set in the bios and the kernel finds out. Option "UseInternalAGPGART" "no" Option "KernelModuleParm" "agplock=0" # then try unsupported Option "AGPv3Mask" "0x00000001" # disable 8x and 4x agp Option "AGPv3Mask" "0x00000002" Option "AGPMask" "0x00000010" # disable fast writes and 4x and 2x support Option "AGPMask" "0x00000004" Option "AGPMask" "0x00000002" Option "DRI" "true" Option "mtrr" "on" Option "AccelMethod" "EXA" then i'd add the following modes to your monitor: 1280x1024 1024x768 800x600 (i'm not sure that the 9250 agp can do 1920x1080) then remove the ati framebuffer from the kernel since it only gives problems and force the vesafb at boot. these options should do to set up a normal agp 1x mode and should succed as far as the kernel detects the right agp aperture. if it doesn't detect it the problem is somewhere there. after that tweaking the agp options should give you an improved experience. -- dott. ing. beso _______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
