mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-07 16:17:23 +02:00
Error with invalid device or vendor values
This commit is contained in:
parent
cee2351c55
commit
fe9b5c8744
@ -261,7 +261,7 @@ static void load_config_files(GameModeConfig *self)
|
|||||||
self->inhibit_screensaver = 1; /* Defaults to on */
|
self->inhibit_screensaver = 1; /* Defaults to on */
|
||||||
self->apply_gpu_optimisations = 0;
|
self->apply_gpu_optimisations = 0;
|
||||||
self->gpu_vendor = 0;
|
self->gpu_vendor = 0;
|
||||||
self->gpu_device = 0;
|
self->gpu_device = -1; /* 0 is a valid device ID so use -1 to indicate no value */
|
||||||
self->nv_core_clock_mhz_offset = 0;
|
self->nv_core_clock_mhz_offset = 0;
|
||||||
self->nv_mem_clock_mhz_offset = 0;
|
self->nv_mem_clock_mhz_offset = 0;
|
||||||
self->amd_core_clock_percentage = 0;
|
self->amd_core_clock_percentage = 0;
|
||||||
|
@ -68,12 +68,31 @@ int game_mode_initialise_gpu(GameModeConfig *config, GameModeGPUInfo **info)
|
|||||||
GameModeGPUInfo *new_info = malloc(sizeof(GameModeGPUInfo));
|
GameModeGPUInfo *new_info = malloc(sizeof(GameModeGPUInfo));
|
||||||
memset(new_info, 0, sizeof(GameModeGPUInfo));
|
memset(new_info, 0, sizeof(GameModeGPUInfo));
|
||||||
|
|
||||||
// TODO: Fill in the GPU vendor and device automatically
|
|
||||||
|
|
||||||
/* Get the config parameters */
|
/* Get the config parameters */
|
||||||
config_get_gpu_vendor(config, &new_info->vendor);
|
config_get_gpu_vendor(config, &new_info->vendor);
|
||||||
config_get_gpu_device(config, &new_info->device);
|
config_get_gpu_device(config, &new_info->device);
|
||||||
|
|
||||||
|
/* TODO: Detect the GPU vendor and device automatically when these aren't set */
|
||||||
|
|
||||||
|
/* verify device ID */
|
||||||
|
if (new_info->device == -1) {
|
||||||
|
LOG_ERROR("Invalid gpu_device value set in configuration, will not appli optimisations!\n");
|
||||||
|
free(new_info);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* verify GPU vendor */
|
||||||
|
if (new_info->vendor != Vendor_NVIDIA && new_info->vendor != Vendor_AMD &&
|
||||||
|
new_info->vendor != Vendor_Intel) {
|
||||||
|
LOG_ERROR("Invalid gpu_vendor value set in configuration, will not apply optimisations!\n");
|
||||||
|
LOG_ERROR("Possible values are: 0x%04x (NVIDIA) 0x%04x (AMD) 0x%04x (Intel)\n",
|
||||||
|
Vendor_NVIDIA,
|
||||||
|
Vendor_AMD,
|
||||||
|
Vendor_Intel);
|
||||||
|
free(new_info);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Load the config based on GPU */
|
/* Load the config based on GPU */
|
||||||
switch (new_info->vendor) {
|
switch (new_info->vendor) {
|
||||||
case Vendor_NVIDIA:
|
case Vendor_NVIDIA:
|
||||||
@ -87,6 +106,7 @@ int game_mode_initialise_gpu(GameModeConfig *config, GameModeGPUInfo **info)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
/* TODO : Sanity check these values */
|
||||||
|
|
||||||
/* Give back the new gpu info */
|
/* Give back the new gpu info */
|
||||||
*info = new_info;
|
*info = new_info;
|
||||||
|
@ -41,8 +41,8 @@ enum GPUVendor {
|
|||||||
|
|
||||||
/* Storage for GPU info*/
|
/* Storage for GPU info*/
|
||||||
struct GameModeGPUInfo {
|
struct GameModeGPUInfo {
|
||||||
enum GPUVendor vendor;
|
long vendor;
|
||||||
int device; /* path to device, ie. /sys/class/drm/card#/ */
|
long device; /* path to device, ie. /sys/class/drm/card#/ */
|
||||||
|
|
||||||
long core; /* Core clock to apply */
|
long core; /* Core clock to apply */
|
||||||
long mem; /* Mem clock to apply */
|
long mem; /* Mem clock to apply */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user