Hello. I'm trying to change the DigitalVibrance attribute of the display attached to my GPU but I can't seem to be able to produce a valid CLI assignment specification. Even to just query this specific attribute I can't craft a spec that works.
Querying works with -q all:
$ nvidia-settings -q all
...
Attribute 'DigitalVibrance' (laptop:1[gpu:0]; display device: TV-0): 0.
The valid values for 'DigitalVibrance' are in the range -1024 - 1023 (inclusive).
'DigitalVibrance' is display device specific.
'DigitalVibrance' can use the following target types: X Screen, GPU, Display Device.
...
Based on the output above and on the format suggested by the --help, i.e., {DISPLAY}/{attribute name}[{display devices}], I tried:
$ nvidia-settings -q laptop:1[gpu:0]/DigitalVibrance[TV-0]
ERROR: Error resolving target specification 'gpu-0' (No targets match target specification), specified in query 'laptop:1[gpu-0]/DigitalVibrance[TV-0]'.
But no success. So I tried different things with the following script:
#!/bin/bash
# query_gpu.sh
set -u
attribute="DigitalVibrance"
for host in "" "laptop" "localhost" "$(hostname -s)"; do
for display in "0" "1"; do
for target_type in "DPY" "gpu" "GPU" "gpu-0" "GPU-0"; do
for target_id in "HDMI-1-0" "0" "1"; do
for display_device in "TV-0" "HDMI-1-0" "DPY-0" ""; do
if [ -z "${display_device}" ]; then
query="${host}:${display}[${target_type}:${target_id}]/${attribute}"
else
query="${host}:${display}[${target_type}:${target_id}]/${attribute}[${display_device}]"
fi
echo "#### Trying: ${query}"
nvidia-settings -q "${query}"
done
done
done
done
done
None worked, but some interesting results: querying with these targets does not produce an error but also no output:
If something other than GPU:0 or gpu:0 is given as targets then an error is produced. Strangely enough, specifying the host with the "correct" targets as above also doesn't work:
$ nvidia-settings -q laptop:1[GPU-0]/DigitalVibrance
ERROR: Error resolving target specification 'GPU-0' (No targets match target specification), specified in query 'laptop:1[GPU-0]/DigitalVibrance'.
What suggests that it might be a bug: everything works as expected in the GUI and if I set the DigitalVibrance to something, e.g., -100, and then save the configuration, then the format in which is saved is not a valid query. That is:
$ grep DigitalVibrance .nvidia-settings-rc
[DPY:HDMI-1-0]/DigitalVibrance=-100
$ nvidia-settings -q [DPY:HDMI-1-0]/DigitalVibrance
ERROR: Error resolving target specification 'DPY:HDMI-1-0' (No targets match
target specification), specified in query
'[DPY:HDMI-1-0]/DigitalVibrance'.
Information about the system:
Computer: Laptop Dell G3 with a built-in Intel GPU and the NVIDIA GPU, external monitor connected to the HDMI output of the laptop, PRIME profile "On-Demand" in use
NVIDIA GPU: NVIDIA GeForce GTX 1060 with Max-Q Design
NVIDIA Driver version: 525.78.01
nvidia-settings version: 510.47.03
Operating system: Ubuntu 22.04
Xorg version: 7.7
Linux kernel: 5.19.0-32-generic
The output of -q gpus and -q all is attached, also the output of the small shell script shown above.
Hello. I'm trying to change the
DigitalVibrance
attribute of the display attached to my GPU but I can't seem to be able to produce a valid CLI assignment specification. Even to just query this specific attribute I can't craft a spec that works.Querying works with
-q all
:Based on the output above and on the format suggested by the
--help
, i.e.,{DISPLAY}/{attribute name}[{display devices}]
, I tried:But no success. So I tried different things with the following script:
None worked, but some interesting results: querying with these targets does not produce an error but also no output:
If something other than
GPU:0
orgpu:0
is given as targets then an error is produced. Strangely enough, specifying the host with the "correct" targets as above also doesn't work:But it doesn't complain if we omit the host:
What suggests that it might be a bug: everything works as expected in the GUI and if I set the
DigitalVibrance
to something, e.g.,-100
, and then save the configuration, then the format in which is saved is not a valid query. That is:Information about the system:
The output of
-q gpus
and-q all
is attached, also the output of the small shell script shown above.script-query-gpu-output.txt nvidia-settings-query-all.txt nvidia-settings-query-gpus.txt