Merged today to the open-source NVIDIA “NAK” compiler code within Mesa 25.2 is Kepler instruction scheduling. This real instruction scheduling support for GeForce GTX 600/700 “Kepler” graphics processors can provide some significant performance benefits in select workloads.
Lorenzo Rossi opened the merge request last week for adding this instruction scheduling support to the open-source NAK shader compiler code used by the Nouveau and NVK drivers. Today that code was merged for Mesa 25.2 ahead of the code branching / feature freeze next week.
Rossi commented in the merge request:
“This commit adds real instruction scheduling for SM32 (KeplerB) and adds a minor optimization to the generated instructions.
Dual-issue and functional-unit resource tracking are still to be implemented.”
The real kicker for end-users though is the NAK patch adding the real instruction dependencies for Kepler. Rossi noted there:
“This commit ports instruction latency information found in codegen emitter. Previously every instruction was delayed by 16 cycles even if it was not necessary.
PixMark Piano is highly affected by instruction latencies and gets a 2.5x boost, other benchmarks still get better performance. The other two missing pieces to get feature parity with codegen are functional unit resource tracking and instruction dual-issue.
Performance measures on a GT770 (with 0f pstate)
Pixmark piano: 519 -> 14526 pts (has rendering issues in both!)
Furmark: 3247 -> 5786 pts
The talos principle (high settings): 30-33 -> 55-60 FPS”
For relevant workloads at least, this is a very significant performance improvement for Nouveau/NAK when using a more than decade old NVIDIA Kepler GPU.