mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-06 23:57:22 +02:00
Set up overclocking calls on NVidia
These require the coolbits plugin to be activated on nvidia-xsettings
This commit is contained in:
parent
bd5baccc67
commit
f5e7fa3222
@ -31,7 +31,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "logging.h"
|
#include "logging.h"
|
||||||
|
|
||||||
#include <linux/limits.h>
|
#include <linux/limits.h>
|
||||||
|
@ -33,6 +33,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
#include "logging.h"
|
#include "logging.h"
|
||||||
|
|
||||||
|
#include "external-helper.h"
|
||||||
#include "gpu-control.h"
|
#include "gpu-control.h"
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
@ -66,14 +67,39 @@ int get_gpu_state(struct GameModeGPUInfo *info)
|
|||||||
*/
|
*/
|
||||||
int set_gpu_state_nv(struct GameModeGPUInfo *info)
|
int set_gpu_state_nv(struct GameModeGPUInfo *info)
|
||||||
{
|
{
|
||||||
if(info->vendor != Vendor_NVIDIA )
|
if (info->vendor != Vendor_NVIDIA)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
// Running these commands:
|
// These commands don't technically even need root
|
||||||
// nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=1400'
|
|
||||||
// nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[3]=50'
|
/* Set the GPUGraphicsClockOffset parameter */
|
||||||
|
char core_arg[64];
|
||||||
|
snprintf(core_arg,
|
||||||
|
64,
|
||||||
|
"[gpu:%ld]/GPUGraphicsClockOffset[%ld]=%ld",
|
||||||
|
info->device,
|
||||||
|
info->nv_perf_level,
|
||||||
|
info->core);
|
||||||
|
const char *exec_args_core[] = { "/usr/bin/nvidia-settings", "-a", core_arg, NULL };
|
||||||
|
if (run_external_process(exec_args_core) != 0) {
|
||||||
|
LOG_ERROR("ERROR: Failed to set %s!\n", core_arg);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the GPUMemoryTransferRateOffset parameter */
|
||||||
|
char mem_arg[64];
|
||||||
|
snprintf(mem_arg,
|
||||||
|
64,
|
||||||
|
"[gpu:%ld]/GPUMemoryTransferRateOffset[%ld]=%ld",
|
||||||
|
info->device,
|
||||||
|
info->nv_perf_level,
|
||||||
|
info->mem);
|
||||||
|
const char *exec_args_mem[] = { "/usr/bin/nvidia-settings", "-a", mem_arg, NULL };
|
||||||
|
if (run_external_process(exec_args_mem) != 0) {
|
||||||
|
LOG_ERROR("ERROR: Failed to set %s!\n", mem_arg);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(stderr, "Setting GPU parameters on NVIDIA is currently unimplemented!\n");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
common_sources = [
|
common_sources = [
|
||||||
'logging.c',
|
'logging.c',
|
||||||
'governors-query.c',
|
'governors-query.c',
|
||||||
|
'external-helper.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
daemon_common = static_library(
|
daemon_common = static_library(
|
||||||
@ -27,7 +28,6 @@ daemon_sources = [
|
|||||||
'gamemode-gpu.c',
|
'gamemode-gpu.c',
|
||||||
'daemonize.c',
|
'daemonize.c',
|
||||||
'dbus_messaging.c',
|
'dbus_messaging.c',
|
||||||
'external-helper.c',
|
|
||||||
'daemon_config.c',
|
'daemon_config.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user