[EMAIL PROTECTED] writes: > [Albert Cahalan] >> ATI wouldn't likely recommend uncached/guarded or not using >> the hardware IDCT either though. > > uncached/guarded is more or less mandatory on AGP as the HW isn't > cache coherent, though we would probably get better throughput > using cached mapping and explicit cache flushes.
Hey, wait a minute... why guarded? Tell me where I'm wrong: AGP memory is regular RAM on the motherboard. (at least it isn't device registers) Typically an app puts images (bumpmaps, textures, etc.) in AGP memory. Triangles for 3d rendering also get written to AGP memory. This app is X, or an authorized local client. It is not common to have the video card writing to AGP memory. If the video card does write to memory, X can ensure that this doesn't happen to memory that the user is busy writing to. It is not common for the for the user to read AGP memory. If the user does read from AGP memory, the X server could flush some cache lines before telling the user that the memory has been updated. (PowerPC uses a physical cache, not a virtual cache) The motherboard chipset will walk some sort of page table when the video card tries to access AGP memory. This is kept coherent by a Linux kernel DRI/DRM/AGP driver. Aside from X itself, ordering isn't going to matter. User apps won't be trying to atomicly update data structures as viewed from the video card. X might do this. It wouldn't be insane to update X to include all the necessary cache-related instructions. User apps need caching off by default, since trying to update all the apps would be insane. Unless user code will write to AGP memory on one processor and read or write on another processor, the M bit (Memory Coherency Attribute) can be cleared. It's pointless for the CPU to waste bus cycles trying to be coherent, since the video card will not cooperate. All non-SMP systems should map the AGP memory with coherency disabled. No existing PowerPC will do unrequested prefetching across page boundries, or this is easily avoided by not using memory adjacent to the boundry between AGP memory and non-AGP memory. If apps would at least avoid reading stuff written by the video card, write-through cached would be OK. Apps that read AGP memory are uncommon enough that fixing all of them would be feasible. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]