MTRR regression: AGP transfer inconsistencies
|Reported by:||rudolfc||Owned by:||bonefish|
|Has a Patch:||no||Platform:||All|
Description (last modified by )
Since hrev34197 MTRR doesn't work OK anymore on my ASUS P4 mainboard with AGP slot.
The nvidia kerneldriver maps a 1Mb buffer using MTRR-WC in main system memory. This buffer is written to by the CPU, and it's read by the GPU using AGP transfers. It turns out that the GPU sees an inconsistently written buffer which results in old / partially degraded commands being executed by the engine, resulting in an engine hang in the end. Using PCI transfers this problem doesn't occur. If I relocate the buffer to gfx memory, this problem doesn't occur. If I disable MTRR-WC mapping in the kerneldriver the problem remains in AGP.
On PCIe systems this problem doesn't exist.
hrev34190 is OK, hrev34203 is not OK. From the changes in between I think hrev34197 must be the problem. Note: BeOS also is OK on this system! (dano/R5). I tested hrev35431: still not OK, same symptoms as hrev34203.
Please have a look at the MTRR changes in relation to the nVidia kerneldriver!
The reason the problem only now surfaces is that acceleration engines are currently not used in Haiku. In order to test you need to use acceleration commands.
Thanks in advance!