How to automatically set PowerMizer to Prefer Maximum Performace with 340 and 346 drivers

I have an application that will not operate unless the Performance Mode is set to maximum. Unfortunately, PowerMizer will default to Adaptive and I need it to be Prefer Max Performance.

I’ve read the threads about doing this using /etc/X11/xorg.conf but the options described do not seem to exist anymore in the 340 and 346 versions of the drivers. As pointed out by baitisj in this thread

https://devtalk.nvidia.com/default/topic/572053/?comment=4523873

Surely there is a way to do this with the newer drivers. There is no mention of this in any of the documentation I’ve seen. Please help a brother out and point me to a solution.

nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'

Use this line before running your application.

Or, in /etc/X11/xorg.conf, in the “Device” section for your graphics cared, add:

Option  "Coolbits" "13"
  Option  "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefaultAC=0x1"

This will lock your card in Performance mode for any X session.

The change, when compared to the old Options block for pre-34x drivers, is in “Coolbits” (13 instead of 1).

I’ve got an somewhat old computer here and decided to use it as a dedicated console for an amateur CNC. It has an GeForce GT 240 card, which uses the 340 drivers.
And I’ve got the same problem. Whatever PowerMiser setting I set, it always uses level 1 (405MHz GPU, 648 MHz memory rate, 810 MHz processor clock).
Level 2 (550/3400/1340MHz) and Level 0 are both grayed out and will be never selected.
Card specs suggest that those clocks are achievable on this card.
Performance is sluggish even in simple CAD-like programs (QCad, dxf2gcode etc). That’s not what I would expect from a card of such a level. I think that’s because driver does not use all its capabilities.

I’ve tried the suggestions above but they do not help.
I can successfully change GPUPowerMizerMode to 1 via command-line or via nvidia-settings GUI, but that does not affect anything. Current frequency (as seen in GPUCurrentClockFreqs below) is still 405MHz

Here are the relevant settings:

# nvidia-settings -q all | egrep -i '(Perf|Power|Freq)'
  Attribute 'GPU2DClockFreqs' (zap.lan:0[gpu:0]): 135,135.
  Attribute 'GPU3DClockFreqs' (zap.lan:0[gpu:0]): 550,1700.
  Attribute 'GPUDefault2DClockFreqs' (zap.lan:0[gpu:0]): 135,135.
  Attribute 'GPUDefault3DClockFreqs' (zap.lan:0[gpu:0]): 550,1700.
  Attribute 'GPUCurrentClockFreqs' (zap.lan:0[gpu:0]): 405,324.
  Attribute 'GPUCurrentProcessorClockFreqs' (zap.lan:0[gpu:0]): 810.
  Attribute 'GPUPowerSource' (zap.lan:0[gpu:0]): 0.
  Attribute 'GPUCurrentPerfLevel' (zap.lan:0[gpu:0]): 1.
  Attribute 'GPUAdaptiveClockState' (zap.lan:0[gpu:0]): 1.
  Attribute 'GPUPowerMizerMode' (zap.lan:0[gpu:0]): 1.
  Attribute 'GPUPowerMizerDefaultMode' (zap.lan:0[gpu:0]): 0.
  Attribute 'GPUCurrentClockFreqsString' (zap.lan:0[gpu:0]): nvclock=405, nvclockmin=405,
  nvclockmax=405, nvclockeditable=0, memclock=324, memclockmin=324, memclockmax=324, memclockeditable=0,
  memTransferRate=648, memTransferRatemin=648, memTransferRatemax=648, memTransferRateeditable=0,
  processorclock=810, processorclockmin=810, processorclockmax=810, processorclockeditable=0
  Attribute 'GPUPerfModes' (zap.lan:0[gpu:0]): perf=0, nvclock=135, nvclockmin=135, nvclockmax=135,
  nvclockeditable=0, memclock=135, memclockmin=135, memclockmax=135, memclockeditable=0,
  memTransferRate=270, memTransferRatemin=270, memTransferRatemax=270, memTransferRateeditable=0,
  processorclock=270, processorclockmin=270, processorclockmax=270, processorclockeditable=0 ; perf=1,
  nvclock=405, nvclockmin=405, nvclockmax=405, nvclockeditable=0, memclock=324, memclockmin=324,
  memclockmax=324, memclockeditable=0, memTransferRate=648, memTransferRatemin=648,
  memTransferRatemax=648, memTransferRateeditable=0, processorclock=810, processorclockmin=810,
  processorclockmax=810, processorclockeditable=0 ; perf=2, nvclock=550, nvclockmin=550, nvclockmax=550,
  nvclockeditable=0, memclock=1700, memclockmin=1700, memclockmax=1700, memclockeditable=0,
  memTransferRate=3400, memTransferRatemin=3400, memTransferRatemax=3400, memTransferRateeditable=0,
  processorclock=1340, processorclockmin=1340, processorclockmax=1340, processorclockeditable=0

How can I enforce the max performance level? Using adaptive performance is a bad option for CAD-like programs, because most of the time it exercices little pressure on automatic performance selection algorithm (while keyboard/mouse is idle) but when I scroll or edit something I want it to be as responsive as possible.

Did you found a solution ? I also have the same issue … everyone seems to recommend settings this GPUPowerMizerMode setting but my GPU remains in P2-State