Option "Coolbits" is not used | Optimus-enabled laptop running an RTX 2070 | Manjaro Linux

Hi,

This appears to be a driver bug. Namely, it seems that the Coolbits option can only be attached to an X screen associated with the GPU (it appears that if attached to GPU itself, the option gets transferred to the screen internally), but there is no X screen associated with the discrete GPU if you are using PRIME render offload. It will have to be fixed upstream.

Until it’s fixed upstream, I can provide a workaround for driver version 440.64. The file nvidia_drv.so should have sha1sum dbd03c529fd6d66c6a016a9cfbc4613be501e0fc. Perform the following replacements:

  • at offset 45970, replace 6 bytes with B801000000C3,
  • at offset 45A4B, replace 2 bytes with 9090,
  • at offset 45A86, replace 10 bytes with B8010000004883C408C3,
  • at offset 4A988, replace 1 byte with EB.

You should get a file with sha1sum d2a16889a058b0368371e1d5167f4f0fefab6800. These changes are roughly equivalent to using Option "Coolbits" "12" in xorg.conf for all of your GPUs regardless of whether there is an associated X screen. Enjoy!

Note that although I did my best to ensure the workaround is correct (and it works well for me), it might have unintended consequences, and so you are using it entirely at your own risk.