mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-06 23:57:22 +02:00
Adjust checking in gpuclockctl to assist when errors happen
This commit is contained in:
parent
ab5fdad3cb
commit
42d7503482
@ -64,6 +64,9 @@ static int get_gpu_state_nv(struct GameModeGPUInfo *info)
|
|||||||
if (info->vendor != Vendor_NVIDIA)
|
if (info->vendor != Vendor_NVIDIA)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if (!getenv("DISPLAY"))
|
||||||
|
LOG_ERROR("Getting Nvidia parameters requires DISPLAY to be set - will likely fail!\n");
|
||||||
|
|
||||||
char arg[128] = { 0 };
|
char arg[128] = { 0 };
|
||||||
char buf[EXTERNAL_BUFFER_MAX] = { 0 };
|
char buf[EXTERNAL_BUFFER_MAX] = { 0 };
|
||||||
char *end;
|
char *end;
|
||||||
@ -127,7 +130,10 @@ static int set_gpu_state_nv(struct GameModeGPUInfo *info)
|
|||||||
if (info->vendor != Vendor_NVIDIA)
|
if (info->vendor != Vendor_NVIDIA)
|
||||||
return -1;
|
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 */
|
/* Set the GPUGraphicsClockOffset parameter */
|
||||||
char core_arg[128];
|
char core_arg[128];
|
||||||
@ -200,6 +206,12 @@ static int set_gpu_state_amd(struct GameModeGPUInfo *info)
|
|||||||
if (info->vendor != Vendor_AMD)
|
if (info->vendor != Vendor_AMD)
|
||||||
return -1;
|
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
|
// 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)
|
if (set_gpu_state_amd_file("pp_sclk_od", info->device, info->core) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -278,12 +290,6 @@ int main(int argc, char *argv[])
|
|||||||
printf("%ld %ld\n", info.core, info.mem);
|
printf("%ld %ld\n", info.core, info.mem);
|
||||||
|
|
||||||
} else if (argc >= 6 && argc <= 7 && strncmp(argv[3], "set", 3) == 0) {
|
} 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 */
|
/* Get and verify the vendor and device */
|
||||||
struct GameModeGPUInfo info;
|
struct GameModeGPUInfo info;
|
||||||
memset(&info, 0, sizeof(info));
|
memset(&info, 0, sizeof(info));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user