nvidia-composition-pipeline

#343
Raw
Author
winny
Created
March 21, 2021, 8:52 a.m.
Expires
Never
Size
1015 bytes
Hits
351
Syntax
Bash
Private
No
#!/usr/bin/env bash

set -eu

enable_cp() {
    sh -c "nvidia-settings --assign CurrentMetaMode=\"$(nvidia-settings -t -q CurrentMetaMode |tr -d "\n"|sed 's/ViewPortIn=/ForceFullCompositionPipeline=On, ViewPortIn=/g'|sed 's/.*:://'|sed 's/^ *//;s/ *$//')\"" > /dev/null
    echo 'Enabled composition pipeline'
}

disable_cp() {
    sh -c "nvidia-settings --assign CurrentMetaMode=\"$(nvidia-settings -t -q CurrentMetaMode |tr -d "\n"|sed 's/.*:://'|sed 's/^ *//;s/ *$//'|sed "s/CompositionPipeline=On/CompositionPipeline=Off/g")\"" > /dev/null
    echo 'Disabled composition pipeline'
}

toggle_cp() {
    if nvidia-settings -t -q CurrentMetaMode|grep -Fq 'ForceCompositionPipeline=On' > /dev/null; then
        enable_cp
    else
        disable_cp
    fi
}

usage() {
    printf 'Usage: %s <enable|disable>\n' "$(basename "$0")"
    exit 1
}

if [[ $# -ne 1 ]]; then
    usage
elif [[ $1 = "enable" ]]; then
    enable_cp
elif [[ $1 = "disable" ]]; then
    disable_cp
else
    usage
fi