Martin Peres
2010-Sep-29 11:25 UTC
[Nouveau] Add pause/unpause methods for PFIFO & PGRAPH. Use them to get stable clock changes
Hi, With these patches, I get reliable clock changes on my nv86. It should work from nv50 to nvc0 (non-included). Now, we need to wait for vblank. This is on my TODO but if someone knows how to do so, please send me pointers to it or implement it yourself :) Regards, Martin
Martin Peres
2010-Sep-30 17:14 UTC
[Nouveau] Add pause/unpause methods for PFIFO & PGRAPH. Use them to get stable clock changes
Hi, Here is an updated set of patches (in regards on comments got on IRC and an handling error when using several channels). These updated patch allow me to run 5 glxgears at the same time and reclock the card almost 100 times per second without crashing. Don't panic if you get theses in your logs: PGRAPH: wait for idle fail: 00000000 00000000 00000000 00000103! PGRAPH: PGRAPH paused while running a ctxprog, NV40_PGRAPH_CTXCTL_0310 = 0x11 It means that we tried to reclock during a context switch. It would be safe to continue as when the program is at 0x11, it means it waits for another process (which is stopped because we stopped PFIFO before). I could allow to get this value (ie continue and clock), but if someone changes the ctxprog, he would have to update it here. For the moment, I don't mind if from time to time, setting the clocks fail. Waiting for your comments. Regards, Martin