Adjust checking in gpuclockctl to assist when errors happen

This commit is contained in:
Marc Di Luzio 2019-02-16 12:16:06 +00:00
parent ab5fdad3cb
commit 42d7503482

View File

@ -64,6 +64,9 @@ static int get_gpu_state_nv(struct GameModeGPUInfo *info)
if (info->vendor != Vendor_NVIDIA)
return -1;
if (!getenv("DISPLAY"))
LOG_ERROR("Getting Nvidia parameters requires DISPLAY to be set - will likely fail!\n");
char arg[128] = { 0 };
char buf[EXTERNAL_BUFFER_MAX] = { 0 };
char *end;
@ -127,7 +130,10 @@ static int set_gpu_state_nv(struct GameModeGPUInfo *info)
if (info->vendor != Vendor_NVIDIA)
return -1;
// These commands don't technically even need root
if (!getenv("DISPLAY") || !getenv("XAUTHORITY"))
LOG_ERROR(
"Setting Nvidia parameters requires DISPLAY and XAUTHORITY to be set - will likely "
"fail!\n");
/* Set the GPUGraphicsClockOffset parameter */
char core_arg[128];
@ -200,6 +206,12 @@ static int set_gpu_state_amd(struct GameModeGPUInfo *info)
if (info->vendor != Vendor_AMD)
return -1;
/* Must be root to set the state */
if (geteuid() != 0) {
fprintf(stderr, "gpuclockctl must be run as root to set AMD values\n");
print_usage_and_exit();
}
// Set the the core and mem clock speeds using the OverDrive files
if (set_gpu_state_amd_file("pp_sclk_od", info->device, info->core) != 0)
return -1;
@ -278,12 +290,6 @@ int main(int argc, char *argv[])
printf("%ld %ld\n", info.core, info.mem);
} else if (argc >= 6 && argc <= 7 && strncmp(argv[3], "set", 3) == 0) {
/* Must be root to set the state */
if (geteuid() != 0) {
fprintf(stderr, "gpuclockctl must be run as root to set values\n");
print_usage_and_exit();
}
/* Get and verify the vendor and device */
struct GameModeGPUInfo info;
memset(&info, 0, sizeof(info));