Nouveau Works On Optimus Dynamic Power Handling
Phoronix: Nouveau Works On Optimus Dynamic Power Handling
While DRI2 PRIME has led to Optimus-like support for laptops with NVIDIA/Intel GPU combinations, one of the problems making this technology less beneficial is the lack of dynamic power management handling. What's the point of keeping one GPU fed with power when it's being unused and just lowering your battery life? Fortunately, a fix is ahead...
Sounds good for those who've got hybrid graphics situations on their laptops.. Possibly those of us with desktops as well.
Has anyone done any performance comparisons of how much of a hit you take when you have a discrete card hooked up directly to the monitor instead of using an IGP and PRIME to offload rendering to the discrete GPU? Depending on how large the hit is, I might consider doing this with my desktops at some point.
It's a fairly big performance hit at the moment. There are two problems:
Originally Posted by Veerappan
1. there's at least one extra copy (copy frame rendered by the render GPU to the display GPU). There may be additional copies involved to deal with different tiling configurations between GPUs or to take advantage of vram.
2. there's no inter-device synchronization support at the moment, so we have to poll with the CPU to see if a buffer is idle and can be copied to the other card for display.
Doesn't DMA_BUF fix issue 1, and the DMA Sync work fix issue 2? I know DMA Sync isn't merged yet, and I THOUGHT all the FOSS drivers were adapted to accept and work with DMA_BUF.. was I wrong?
Originally Posted by agd5f
Also the issue you mention with vRAM isn't that a non-issue with AMD's "Heterogenous" environments? Again, not common place (Even released yet?) but once it IS doesn't that immediately fix the issue of System Ram => vRAM since its all shared?
agd5f: could you quantify the loss in performance of a copy of a buffer?
Also when swaping buffers, the old buffer is idle so I don't understand why there is a need to poll with the cpu to see if it is idle.
DMA_BUF allows for sharing of buffers; that's what makes all of the PRIME stuff possible. Most (all?) of the open source KMS drivers support DMA_BUF. While there is work in progress for a synchronization system for sharing buffers, it's not currently implemented. So if the IGP wants to copy a buffer from the dGPU, it has to poll for that buffer to be idle. There's currently no way for the dGPU to tell the IGP that it's done with the buffer.
As for vram, on cards with vram it's advantageous to use it whenever possible since it provides much better bandwidth in most cases compared to system ram. Unfortunately, the IGP card can't read from vram, so you have to copy the results from vram to system ram and then possibly from system ram to whatever buffer the IGP is using to scanout from.
So laptop users will be able to get dul gpu working correctly, but still useless on performance side with no reclocking on recent nvidia gpus. Is it so hard to find the bits that control it ?