The DMA video frame copier is showing great promise. It correctly copies all the words without the 75% droppage that cacheline flushes cause. I'm still doing something stupid in the DMA descriptor link fields. I can't get them to work so I would have to repeatedly reissue the DMA requests. I'd much rather just make a DMA descriptor chain that is a loop so it runs forever.
Initial calculations show that 30fps update should take about half of the PCI bandwidth. If all the other devices are running at full speed that can account for another 25% so it shouldn't have a negative performance impact. We'll see.