Potential adjustable configuration for application

A machine learning-based system predicts optimal configuration settings for user applications, addressing performance inconsistencies by suggesting personalized adjustments, thereby enhancing application performance and usability.

WO2026127951A1PCT designated stage Publication Date: 2026-06-18HEWLETT PACKARD DEVELOPMENT COMPANY LP

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HEWLETT PACKARD DEVELOPMENT COMPANY LP
Filing Date
2024-12-10
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

User frustration arises from varying application performance across different hardware and software configurations, making it challenging for users to manually determine optimal settings for enhanced performance.

Method used

A system utilizing machine learning and data analysis to predict host system-specific configuration settings, leveraging session data to identify impactful parameters and suggest personalized adjustments for improved performance.

🎯Benefits of technology

Enhances application performance by providing actionable configuration settings, improving usability and system lifespan through personalized and data-driven optimization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024059397_18062026_PF_FP_ABST
    Figure US2024059397_18062026_PF_FP_ABST
Patent Text Reader

Abstract

Session data for a session of an application related to an application host system configuration may be used to predict a potential performance value for the application host system. A potential adjustable configuration value may be generated based on the potential performance value.
Need to check novelty before this filing date? Find Prior Art

Description

86355606POTENTIAL ADJUSTABLE CONFIGURATION FOR APPLICATION BACKGROUND

[0001] User applications, such as video game applications ("video games" or "games") may be executed by a platform including a combination of computer hardware and associated software stored by the computer hardware. Various factors may impact application performance. For example, applications may be executed on various computer types having different hardware configurations, such as desktop computers, laptop computers, tablet computers, smart phones, and dedicated gaming consoles. For example, game performance can vary based on differences between central processing units (CPUs) (e.g., processor speed, instruction set, cache sizes, etc.), presence or absence of a dedicated graphics processing unit (GPU), GPU specifications, available memory, display resolution, etc. Game performance may vary even on identical hardware setups due to differences in system configurations, game settings, power management, other running applications, etc.BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The following drawings are provided to help illustrate various features of examples of the disclosure and are not intended to limit the scope of the disclosure or exclude alternative implementations.

[0003] FIG. 1 illustrates an example system according to some aspects of the present disclosure.

[0004] FIG. 2 illustrates an example method according to some aspects of the present disclosure.

[0005] FIG. 3 illustrates an example method according to some aspects of the present disclosure.

[0006] FIG. 4 illustrates a computer system according to some aspects of the present disclosure.

[0007] FIG. 5 illustrates a non-transitory computer readable medium according to some aspects of the present disclosure.DETAILED DESCRIPTION

[0008] Computer application performance may vary significantly between executing systems. Even computers with the same hardware configuration may have drastically different performance characteristics depending on software / firmware / drivers and otherQB\93573215.4 186355606 configurable parameters. For instance, with respect to an application, two host systems with the same hardware configuration and the same in-game configurations may demonstrate different performance depending on out-of-game configurations, such as power settings, graphics drivers, etc. This may lead to user frustration for systems having non-performant configurations. However, across in-game settings, operation system settings, hardware settings, concurrently executing programs / services, drivers, driver settings, etc., a configuration space for a system may have billions, trillions, etc. of different possible configurations. Manually determining a performant configuration may be challenging for users. Indeed, even distinguishing between impactful and unimpactful parameters may be challenging.

[0009] Aspects of the described technology may support enhanced application performance by providing host system-specific configuration settings predicted to enhance a performance metric. For example, the described technology may support enhanced video game performance by providing host system-specific configuration settings predicted to enhance an application performance metric (e.g., a gameplay metric). For example, the described technology may leverage machine learning and comprehensive data analysis to provide personalized and actionable configurations that address performance inconsistencies. Accordingly, examples of the described technology may support improved performance on host systems and improve the useable lifespan of host systems.

[0010] Computers may provide various configurable settings that may impact application performance, including, for example, application-specific settings, operating system settings, hardware settings, etc. For example, application-specific settings may include configurable parameters that may be modified within an application, such as vertical synchronization configurations, use of GPU-specific instructions / interfaces (e.g., low-latency operational modes), display settings such as maximum / minimum FPS, anti-aliasing (e.g., multisampling anti-aliasing), global shadow quality settings, dynamic shadows, model / texture detail setting, texture filtering modes, shader detail settings, particle detail setting, ambient occlusion setting, high dynamic range (HDR) settings, resolution settings, etc. As another example, hardware settings may include configurable parameters that control / influence hardware operation, such as performance control settings, CPU affinity settings, CPU optimization settings (e.g., cache behavior, clock speed, memory frequency), etc. As a further example, operating system setting may include configurable parameters that may be modified via anQB\93573215.4 286355606 operating system, such as clipboard contents, concurrently running applications, automatic update settings, automatic background recording, print / file sharing settings, background service programs (such as, in a Microsoft Windows system, Defragsvc, Diagtrack, DoSVC, DPS, ShellHWDetection, Spooler, StorSVC, SysMain, TrkWks, UsoSVC, VaultSVC, WUAuserv, AppReadiness, BTAGService, BthAvctpSvc, DeviceAssociationService, Devicelnstall, dmappushservice, DSmSvc, DusmSVC, LanmanWorkstation, clipSVC, wildsvc, etc.), visual / system theme settings, etc.

[0011] FIG. 1 illustrates an example environment 100 including a host computer system 101 ("host 101") and a server computer system 105 ("server 105"). For example, host and server 101 and 105 may be implemented as described with respect to the computer system of FIG. 4. For example, host 101 may comprise a personal computing device such as a desktop computer, laptop computer, tablet computer, smart phone, dedicated gaming consoles, etc. Server 101 may comprise a server computer or collection of server computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the operations discussed herein.

[0012] In this example, host 101 comprises instructions stored on a non-transitory computer-readable medium and executed by a processor to implement the illustrated blocks 102, 103, 104. For example, host 101 may execute an application 102. For instance, application 102 may comprise an application having visual quality parameters, such as a graphic design application (e.g., Adobe Light Studio, Blender, etc.), an engineering design application (e.g., Autodesk, Cadence design), an application (e.g., a tactical shooter game, a real-time strategy game, a sports / action game, etc.). For ease of explanation, various examples may be described with respect to video games. The described technology may be applied to any application. For instance, further applications, such as virtual reality applications, graphics design applications, engineering design applications, etc. may have configurable GPU settings, hardware acceleration settings, etc., which may impact performance. Similarly, such applications may be impacted by other application settings, hardware settings, installed drivers / services, concurrently executing applications, etc.

[0013] In some cases, host 101 video game application 102 may comprise a multi-player video game and host 101 may connect to other host computers (e.g., via the Internet, a cloud infrastructure, etc.) to execute a game with multiple participants. In some examples, video game application 102 may be executed via a hub or other intermediate application.QB\93573215.4 386355606

[0014] Here, host 101 may include instructions to collect application session data 103. For example, the session data may be data retrieved during execution of the application (e.g., while a user is playing an application, designing a visual asset, creating a circuit design, etc.). For example, session data may comprise video game session data 103 that may comprise values related to the execution of an application session. For example, session data 103 may include scalar values, such as fixed or static parameters (e.g., a resolution setting during application execution, such as gameplay) or statistical measure values (e.g., an average, minimum, maximum, etc. of a time-varying parameter), etc. As another example, session data 103 may include vector or other values, such as time-series measurements, configuration sets, settings files, etc. For instance, video game session data may include data related to a complete video game execution session (e.g., from program start to program quit), data related to a portion of a complete execution sessions, such as a round, a match, or other unit of gameplay, a user-defined session length, etc.

[0015] In some examples, session data 103 may include measured performance values. For example, the measured performance values may correspond to factors (e.g., an application factor such as a gameplay factor) that is to be improved by an adjusted configuration. For instance, the measured performance values may comprise framerate measurements (e.g., time-series data or statistical measures), input latency measurements, network latency, etc.).

[0016] In some examples, session data 103 may include configuration values related to the video game session. The configuration values may include fixed configuration values and potentially adjustable configuration values. Potentially adjustable configuration values may include configuration values reflective of changes that may be implemented on a host system. Fixed configuration values may include fixed system parameters as well as otherwise adjustable configuration values that are excluded from adjustment. For instance, resolution settings may be included as fixed configuration values to exclude resolution from potential adjustment. As a further example, the fixed configuration values may include configuration values that are not adjustable. For instance, the fixed configuration values may include system information such as model information, current hardware and software specifications, such as CPU, GPU, RAM, storage, network information, etc. The adjustable configuration values may correspond to configuration values that are candidates for subsequent adjustments to improve the performance value. For instance, adjustable configuration values may compriseQB\93573215.4 486355606 processor power / performance settings, video game detail settings, concurrently executing applications, clipboard contents, etc.

[0017] As indicated above, in some cases, session data 103 may include application session telemetry including application-specific data, values computed based on such data, etc. For instance, session data 103 may include video game session telemetry, such as video-game specific data or values computed based on such data. For instance, session data 103 may include game performance metrics related to the game played, such as frame rates, latency, resource utilization, thermal performance, etc. As another example, session data may include application performance metrics such as rendering speed, rendering frame-rate, etc.

[0018] In some examples, session data 103 may further comprise host system telemetry, such as data related to the execution environment for video game 102 (e.g., operating system or hardware performance data). For instance, host system telemetry may include data regarding resource utilization of concurrently running applications or services over the application (e.g., video game session) (e.g., processor / memory usage of a concurrent application).

[0019] In some examples, host system 101 may execute instructions to transmit session data 103 to a server 105. Server 105 may comprise instructions stored on a non-transitory computer-readable medium and executed by a processor to implement the illustrated blocks 106, 107, 108.

[0020] For example, server 105 may include instructions for a session data processing service 106 ("session data processing 106"). For instance, session data processing 106 may comprise code to process received session data to format the session data for input to a machine learning model. For example, session data processing 106 may include code to anonymize session data (e.g., by removing model ID numbers, serial numbers, or other identifiable information included in the session data). As another example, session data processing 106 may include code to filter session data, such as to isolate session data corresponding to active application use. For instance, session data for an application may be filtered to isolate gameplay data. As another example, session data for a graphics application may be filtered to isolate active use of the application, a period when the application is actively rendering an asset, etc. For example, the session data may be filtered to remove data related to time spent in menus, lobbies, etc., or to remove data related to the video game being left idle, etc. In some examples, the session data may be filtered based on receivedQB\93573215.4 586355606 telemetry data. For example, session data may be filtered based on CPU and GPU load, temperature, etc. For instance, session data may be filtered to remove data corresponding to a period when the CPU load, GPU load, or a combination fall below a threshold. For example, a relatively low GPU load accompanied by a relatively high CPU load may be indicative of a video game loading prior to gameplay. As another example, input telemetry data (e.g., pointer movement, keystrokes, etc.) may be used to filter the session data. For example, session data recorded without accompanying inputs may be removed to remove inactive / idle periods.

[0021] In some examples, server 105 may include a machine learning ("ML") model ("ML model 107") stored on a non-transitory computer readable medium. For example, server 105 may execute ML model 107 to predict a potential performance value based on the session data. For example, ML model 107 may comprise a model trained on session data received from other client computers, such as clients operated by users who have consented to data collection. This training data may reflect performance values achieved by other clients with other configurations. As a further example, ML model 107 may comprise a model trained on data obtained from other sources, such as public Internet websites (e.g., application community websites), customer support interactions, user community experts, etc. For instance, ML model 107 may comprise a generative artificial intelligence (Al) model, such as a large-language model, trained to parse such data to a suitable format for use in training the predictive ML model. For example, a customer support interaction with another game player may have included recommended settings for the game player. Here, the generative Al model may parse a transcript or other text narrative of the support interaction to create training data based on the recommended settings.

[0022] In some examples, ML model 107 may provide a prediction of a performance value that might be achievable. For instance, the model might predict that 300 FPS could be achieved by host 101 based on the FPS achieved by past configuration data. As another example, the model might predict an improved rendering speed, level of rendered details, or other performance metric based on past configuration data. For example, ML model 107 may comprise a regression model, such as a linear regression model, a Bayesian regression model (e.g., a Bayesian ridge regression model), a decision tree regression model (e.g., a random forest regression model, a gradient boosting regression model), a support vector regression model, an instance-based regression model (e.g., a k-nearest neighbor regression model), orQB\93573215.4 686355606 other suitable regression ML model. As further examples, ML model 107 may comprise a neural network, reservoir computer, or other suitable ML model.

[0023] In some examples, ML model 107 may be specific to a particular application, such as a particular video game. For instance, server 105 may comprise a plurality of ML models 107 corresponding to different applications. In this example, server 105 may apply a selected ML model 107 based on an application identified in the received session data. In some implementations, ML model 107 may be specific to a system type or other category. For instance, a version of an application for a Complex Instruction Set Computer (CISC) architecture may have a different associated ML model 107 than a version for a Reduced Instruction Set Computer (RISC) architecture. As anotherexample, a version of an application fora dedicated game console may have a different ML model 107 than a version for a general- purpose computer (e.g., a PC or laptop).

[0024] In some examples, server 105 further comprises instructions for determining a potential configuration 108 for host 101 ("potential configuration 108"). For example, the potential configuration 108 may comprise a set of adjustable settings for the host 101 based on the potential performance value provided by ML model 107.

[0025] In some examples, ML model 107 may predict a potential adjustable configuration value 108 to achieve the predicted potential performance value. For example, a potential adjustable configuration corresponding to the predicted performance value may be retrieved from ML model 107. For instance, a decision tree may be queried to identify a tree branch (e.g., sequence of decisions) that provided the predicted performance value and to determine the potential adjustable configuration based on the tree branch.

[0026] As another example, server 105 may include a classification model to identify potential configuration 108. For instance, configuration settings retrieved from the video game session data may be classified as impactful / unimpactful to the potential performance value. In this example, a potential adjustable configuration may be determined based on session data indicating unimpactful settings that may be adjusted to improve application performance. For example, a classification model hyperparameter may establish a threshold for the impactful / unimpactful classification. As another example, a classification model may output a weight, probability, or other indicator of a confidence level or degree of predicted impact.QB\93573215.4 786355606

[0027] In some examples, host 101 may include instructions 104 stored on a non-transitory computer readable medium to implement an adjusted configuration. For example, the adjusted configuration 104 may be displayed via a graphical user interface on a display forthe user to manually adjust the configuration of host 101. As another example, adjusted configuration 104 may be displayed with a graphical control element to automatically implement the adjusted configuration settings. As indicated above, adjusted configuration 104 may include values for video game host system configurable parameters as well as values for video game-specific configurable parameters. For instance, adjusted configuration 104 may include an identification of a concurrently executed program that may improve performance if closed, an option to adjust host system power preferences, an option to adjust game settings, etc. In some examples, instructions 104 may be comprise be executable to implement the adjusted configuration (or portions of the adjusted configuration) without manual user intervention. For instance, instructions 104 may include script instructions, configuration files, or other instructions to modify host system settings and adjust application-related configurations.

[0028] FIG. 2 illustrates an example flow diagram of a method 200 to output a potential adjustable configuration value for an application, such as an application. For instance, a server, such as server 105, may perform method 200 to determine a potential adjustable configuration value for a host application system, such as host system 101.

[0029] Example method 200 may include block 201, which includes receiving session data for a session of an application. For example, the session data may include a measured performance value. For example, the measured performance value may comprise time-series measurements of the of a target performance factor, such as frames per second, time-series latency measurements, etc. As another example, the measured performance value may comprise a statistical measure, such as an average, min, max, etc. of the target performance factor, such as an average frames per second over the session, a lowest or highest frame rate over the session, etc. The session data may further comprise an adjustable configuration value corresponding to an adjustable configuration. For example, adjustable configuration values may comprise values recorded during the application session that correspond to adjustable host system parameters, such as processor power / performance settings, video game detail settings, concurrently executing applications, clipboard contents, etc. The session data may further comprise a fixed configuration value corresponding to a fixedQB\93573215.4 886355606 configuration. For example, the fixed configuration values may include adjustable configuration values that are excluded from adjustment. For instance, resolution settings may be included as fixed configuration values to exclude resolution from potential adjustment. As a further example, the fixed configuration values may include configuration values that are not adjustable. For instance, the fixed configuration values may include system information such as model information, current hardware and software specifications, such as CPU, GPU, RAM, storage, network information, etc.

[0030] In some examples, block 201 may include receiving filtered session data for an active portion of the application session. For instance, block 201 may include receiving filtered session data for an active gameplay portion of the video game session. For example, an application host system may include an application hub or other management application to perform filtering, as described below.

[0031] In some examples, method 200 may further include block 202, which includes predicting a potential performance value based on the session data. For example, block 202 may comprise applying a ML model to the session data to predict a potential performance value. For instance, block 202 may comprise applying a regression model to session data, such as the fixed configuration values, potential adjustments to the adjustable configuration values, hardware or software specifications, etc. For instance, as discussed above, the ML model may be trained on historical application session data according to actual performance values achieved at the historical application sessions. As an example, block 202 may comprise predicting a potentially achievable average frame rate for an application based on past frame rates achieved historically by other video game host systems.

[0032] In some examples, method 200 may further include block 203, which includes determining a potential adjustable configuration value based on the potential performance value. The potential adjustable configuration value may comprise a set of potential application-specific or system settings that may be adjusted by the video game host system. For example, the ML model applied in block 202 may comprise a transparent ML model that provides access to analytical factors that led to the predicted potential performance value. For instance, block 203 may include determining the potential adjustable configuration value based on a decision sequence of a decision tree model. As another example, block 203 may include applying a classification model to identify potential adjustable configurations that may impact performance. For instance, a classifier ML model may be trained on the same orQB\93573215.4 986355606 similar training data as the predictive ML model. The classifier ML model may classify feature reflected in the session data according to their predicted impact on the performance value. Accordingly, in some examples, the potential adjustable configuration determined in block 203 may be different from potential adjustable configuration settings evaluated in block 202. For instance, block 202 may be performed to determine whether to perform block 203. For example, block 203 may be performed if the predicted performance value is improved compared to the measured performance value. For instance, the difference between the predicted performance value and the measured performance value may be compared to a threshold to determine whether to provide a potential adjustable configuration.

[0033] In some examples, block 203 may further include determining other performance- related values. Block 203 may include determining potential hardware changes to the application host system to improve the performance value. For example, block 203 may include ranking potential hardware changes based on predicted performance impact. For instance, block 203 may comprise determining if replacing the video game host system GPU or increasing host system memory, etc. is predicted to impact performance. In some examples, such potential hardware changes may be determined as discussed with respect to the potential configuration value. In further examples, potential hardware changes may be determined based on potential changes to the fixed configuration values. For instance, the fixed configuration values corresponding to the prospective replaceable hardware (e.g., GPU performance values, memory system values, etc.) may be analyzed by a classification model. For example, such a classification model may comprise the same classification model as used to determine the potential adjustable configuration or a different classification model.

[0034] I n some implementations, block 203 may be performed based on various user inputs. For example, a user may provide budgetary preferences that may be included in the application session data. In this example, block 203 may comprise determining budgetspecific hardware recommendations to meet user performance expectations. For example, this may support users make informed decisions about hardware purchases based on their budget and performance goals.

[0035] In some examples, method 200 may further include block 204, which includes outputting the potential adjustable configuration value. For example, block 204 may include transmitting the potential adjustable configuration value to an application host system. For example, block 204 may comprise causing a graphical user interface to be displayed by theQB\93573215.4 1086355606 video game host system to display the potential adjusted configuration (e.g., for the user to implement manually). As another example, block 204 may comprise causing a graphical control to be displayed by the video game host system to implement the potential adjusted configuration. For instance, block 202 may include providing the potential adjustable configuration value via an application hub application, such as a hub application executed locally on the video game host system, a hub application executed remotely (e.g., a web application, cloud-hosted application, etc.), etc. In further examples, block 204 may include outputting further values, such as potential hardware changes as described above.

[0036] In further examples, block 204 may comprise applying a generative Al model to generate a narrative to suggest changes to hardware and game settings to optimize performance. For instance, block 204 may include generating recommendations for adjusting in-game settings, updating drivers, modifying system configurations, etc.

[0037] FIG. 3 illustrates an example flow diagram of a method 300 to output a potential adjustable configuration value for an application. For example, a server, such as server 105, may perform method 300 to determine a potential adjustable configuration value for a host video game system, such as host system 101. For instance, method 300 may be performed as an implementation of method 200.

[0038] In some examples, method 300 may include block 301, which includes receiving session data for a session of an application. For example, block 301 may be performed as described with respect to block 201 of method 200. As discussed above, the session data may include a measured performance value, an adjustable configuration value, and a fixed configuration value corresponding to a fixed configuration.

[0039] I n the illustrated example, method 300 may further include block 302, which includes filtering the session data based on the video game host system telemetry received in block 301. For example, block 302 may comprise filtering session data, such as to isolate session data corresponding to active application execution. For example, the session data may be filtered to remove data related to time spent in menus, lobbies, etc., or to remove data related to the video game being left idle, etc. In some examples, the session data may be filtered based on received telemetry data. For example, session data may be filtered based on CPU and GPU load, temperature, etc. For instance, session data may be filtered to remove data corresponding to a period when the CPU load, GPU load, or a combination fall below a threshold. For example, a relatively low GPU load accompanied by a relatively high CPU loadQB\93573215.4 1186355606 may be indicative of a video game loading prior to gameplay. As another example, input telemetry data (e.g., pointer movement, keystrokes, etc.) may be used to filter the session data. For example, session data recorded without accompanying inputs may be removed to remove inactive / idle periods.

[0040] In some examples, method 300 may further include block 303, which includes applying a machine learning model specific to the video game to the adjustable configuration value and the fixed configuration value. For example, block 303 may be performed as described with respect to block 202 of method 200, where the ML model is specific to the video game. For instance, method 300 may include maintaining a plurality of ML models specific to a corresponding plurality of video games. Here, block 303 may comprise identifying the ML model to apply based on an application indicator contained in the session data.In some examples, methods may include using the session data (e.g., received in block 201 or block 301) to train the ML model (e.g., for future video game system analysis). For example, the session data received in block 301 may include a consent indicator or other element indicating that the session data may be used to update the ML model. As another example, method 300 may include maintaining a user profile that includes such consent. In some examples, updating the ML model may be based on various conditions. For instance, in the illustrated example, block 304 comprises a decision based on whether the predicted performance value in block 303 is an improvement over the measured performance value. In this example, method 300 includes block 305, which may be performed if the measured performance value exceeds or is within a threshold of the predicted performance value. Block 305 may include providing an option to update the machine learning model based on the session data received in block 301. For instance, block 305 may comprise issuing a reward to a user for identifying a novel performant configuration. Updating the ML model based on these configurations may thereby increase the potential performance improvement provided by the described technology.

[0041] In some examples, method 300 may further comprise block 306, which may be performed if the predicted performance value exceeds the measured performance value. For instance, block 306 may be performed if the difference between the predicted performance value and the measured performance value exceeds a threshold. In this example, block 306 may include determining a potential adjustable configuration value based on the potential performance value. For example, block 306 may be performed as described with respect toQB\93573215.4 1286355606 block 203 of method 200. In some examples, as discussed above, block 306 may include applying a classifier model to determine the potential adjustable configuration value. In some such cases, block 306 may include applying an application-specific classifier model. In further cases, block 306 may include applying a classifier model that encompasses multiple video games, such as video game categories (e.g., a first classifier model for shooter games, a second classifier model for racing games, etc.).

[0042] In some examples, method 300 may further comprise block 307, which may include providing an option to update the adjustable configuration based on the potential adjustable configuration value. For example, block 307 may be performed as described with respect to block 204 of method 200 to cause a graphical control to be displayed to provide an option to the user to update the video game host system's adjustable configuration.

[0043] FIG. 4 is an illustration of an example computer system 400 within which a set of instructions, for causing the machine to perform any one or more of the operations discussed herein, may be executed. In the illustrated example, computer system 400 comprises an implementation of an application host system, such as a PC, laptop, tablet, smartphone, dedicated video game console, etc. For instance, computer system 400 may comprise an implementation of a host system 101 of FIG. 1. In further examples, server system 105 may be implemented as illustrated with respect to computer system 400. In such examples, instructions 407 may comprise corresponding instructions to perform server-side operations such as the operations described with respect to FIGS. 2 and 3. Further, while a single computing system is illustrated, the term "computing system" shall also be taken to include any collection of computing systems that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the operations discussed herein.

[0044] The example computer system 400 includes a processor 405 and a non-transitory computer readable medium 406. For example, medium 406 may comprise a memory (such as read-only memory (ROM), flash memory, dynamic random-access memory (DRAM), resistive RAM (reRAM), etc.), a static or persistent memory (such as flash memory, static random access memory (SRAM), etc.), a data storage (e.g., a solid state drive, flash memory, hard drive, etc.) which communicate with each other via an interconnect 404.

[0045] Processor 405 may include one or more general-purpose processors such as a microprocessor, a central processing unit, or the like. More particularly, the processor may be complex instruction set computing (CISC) microprocessor, reduced instruction setQB\93573215.4 1386355606 computing (RISC) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 405 may also be one or more special-purpose processors such as a GPU, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processor 405 comprises circuitry to execute instructions 407 to perform the operations discussed herein.

[0046] The computer system 400 may further include a network interface device 401 for connecting to the LAN, intranet, internet, and / or the extranet. For example, computer system 400 may connect to an application configuration server (e.g., a server 105) via network interface device 401. The computer system 400 also may include a display 402 (such as a liquid crystal display (LCD) or light-emitting diode (LED) display) and an input device, such as an alphanumeric input device (e.g., a keyboard), a cursor control device (e.g., a mouse). Computer system 400 may comprise further other components, omitted from the illustrated for brevity, such as a signal generation device (such as a speaker), etc..

[0047] Medium 406 may store one or more sets of instructions 407 (e.g., software) that are executable by processor 405 to implement various operations or functions described herein. For example, instructions 407 may also reside, completely or at least partially, within processor 405 during execution thereof. In some examples, instruction 407 may include instructions for an application, an application hub or other application management application, an operating system, or other interface to configuration values.

[0048] In some examples, instructions 407 may include instructions 408 to connect to an application configuration server via network interface 401. For example, the application configuration server may comprise an implementation of a server system 105 of FIG. 1. For instance, the application configuration server may comprise a server to interface with an application hub application or other application managed platform.

[0049] In some examples, instructions 407 may include instructions 409 to transmit session data for a session of an application to the application configuration server. For example, the session data may include a measured performance value, an adjustable configuration value corresponding to an adjustable configuration, and a fixed configuration value corresponding to a fixed configuration as discussed above. In some examples, instructions 409 may further include instructions to filter the session data based on application host system telemetry and transmit the filtered session data to the application configuration server. For example,QB\93573215.4 1486355606 instructions 409 may be executable by processor 405 to filter the data as described with respect to block 302 of FIG. 3. For instance, in some examples, the application host system (e.g., computer system 400) may perform data filtering operations as previously described with respect to server-side operations.

[0050] In some examples, instructions 407 may include instructions 410 to receive a potential adjustable configuration value from the application configuration server. For example, the potential adjustable configuration value may be generated by the application configuration server as described with respect to FIGS. 2 and 3.

[0051] In some examples, instructions 407 may include instructions 411 to provide a graphical user interface via display 402 to provide a user control to implement the potential adjustable configuration value. For example, instructions 407 may comprise instructions for a gaming hub application that provides an interface to computer system 400 settings, drivers, etc. As another example, instructions 407 may comprise script instructions or other instructions to modify settings and adjust application-related configurations.

[0052] In further examples, instructions 411 may include instructions to provide an option to update a predictive ML model based on the potential adjustable configuration value. For example, instructions 411 may be executable to retransmit the session data to the application configuration server or to transmit a signal indicating that sever stored session data may be used to update the predictive ML model. In some examples, instructions 411 may be executable to provide the option to update the ML model based on the potential performance value corresponding to the potential adjustable configuration value meeting a threshold comparison condition with respect to the measured performance value. For example, the threshold comparison condition may comprise a comparison condition indicative of the measured performance value being comparable to or improved with respect to the predicted performance value. For instance, the threshold comparison condition may comprise a lower threshold for measured performance values. For example, instructions 411 may be executable to provide the option to update the ML model responsive to a measured application performance value exceeding a predicted performance value generated by the application configuration server.

[0053] FIG. 5 illustrates an example non-transitory computer readable medium 500 ("medium 500") storing instructions executable by a computer to provide a potential adjustable configuration value. For example, medium 500 may comprise a medium of aQB\93573215.4 1586355606 computer system, such as medium 406 of computer system 400. As another example, medium 500 may comprise a medium storing instructions that may be instantiated on a computer system. For instance, medium 500 may comprise a network attached storage, content distribution network, or other software deployment server. As another example, medium 500 may comprise a removable computer readable medium such as an optical disc or flash drive.

[0054] In some examples, medium 500 may store instructions 501 executable by a computer to provide session data for a session of an application. For example, instructions 501 may comprise an implementation of instructions 409 of FIG. 4 to transmit session data to a server. As described above, the session data may include a measured performance value, an adjustable configuration value corresponding to an adjustable configuration, and a fixed configuration value corresponding to a fixed configuration. For instance, the session data may include application host system configuration data, application configuration data, power configuration data, and concurrent application data. In further examples, instructions 501 may be executable to filter session data based on telemetry for the session, such as described with respect to instructions 409 of computer system 400.

[0055] In some examples, medium 500 may store instructions 502 to receive a potential adjustable configuration value based on a potential performance value generated based on the session data. For example, the potential performance value may be generated as described with respect to FIGS. 2 or 3. As an example, instructions 502 may comprise an implementation of instructions 410 of computer system 400.

[0056] I n some examples, medium 500 may store instructions 503 to display a graphical user interface to provide the potential adjustable configuration value. For example, instructions 503 may be executable to provide a narrative or other informative description of the potential adjustable configuration value (e.g., as generated by a generative Al). As another example, instructions 503 may be executable to display a graphical user interface including a graphical control element to implement some or all of the adjustable configuration value. For instance, instructions 503 may be executable to display a list of potential configuration changes. As an example, the list may include control elements to allow a user to select particular configuration changes to be implemented.

[0057] In some implementations, instructions 503 may be further executable to display a second graphical control to submit the session data to update an ML model. For example,QB\93573215.4 1686355606 instructions 503 may comprise instructions to receive a consent / opt-in indicator indicating that the session data may be used to update the ML model. As another example, instructions 503 may comprise instructions to inform a user that their current configuration meets performance requirements to be included in the ML model.

[0058] In some implementations, instructions 503 may be further executable to display a second graphical user interface to display a suggested hardware component associated with a second potential performance value. For instance, in these examples, instructions 502 may be further executable to receive a description of the suggest hardware components, such as described with respect to block 204 of FIG. 2.

[0059] Certain operations of methods according to the technology, or of systems executing those methods, can be represented schematically in the figures or otherwise discussed herein. Unless otherwise specified or limited, representation in the figures of particular operations in particular spatial order can not necessarily require those operations to be executed in a particular sequence corresponding to the particular spatial order. Correspondingly, certain operations represented in the figures, or otherwise disclosed herein, can be executed in different orders than are expressly illustrated or described, as appropriate for particular examples of the technology. Further, in some examples, certain operations can be executed in parallel, including by dedicated parallel processors, or separate computing devices that interoperate as part of a large system.

[0060] The disclosed technology is not limited in its application tothe details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. Other examples of the disclosed technology are possible and examples described and / or illustrated here are capable of being practiced or of being carried out in various ways.

[0061] A plurality of hardware and software-based devices, as well as a plurality of different structural components can be used to implement the disclosed technology. In addition, examples of the disclosed technology can include hardware, software, and electronic components or modules that, for purposes of discussion, can be illustrated and described as if the majority of the components were implemented solely in hardware. However, in one example, the electronic based aspects of the disclosed technology can be implemented in software (for example, stored on non-transitory computer-readable medium) executable by a processor. Although certain drawings illustrate hardware and software located withinQB\93573215.4 1786355606 particular devices, these depictions are for illustrative purposes. In some examples, the illustrated components can be combined or divided into separate software, firmware, hardware, or combinations thereof. As one example, instead of being located within and performed by a single electronic processor, logic and processing can be distributed among multiple electronic processors. Regardless of how they are combined or divided, hardware and software components can be located on the same computing device or can be distributed among different computing devices connected by a network or other suitable communication links.

[0062] Any suitable non-transitory computer usable or computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer- readable medium would include the following: a portable computer diskette, a hard disk, a random-access memory (RAM), a read-only memory (ROM), an erasable programmable readonly memory (EPROM or Flash memory), a portable compact disc read-only memory (CD- ROM), an optical storage device, or a magnetic storage device. In the context of this disclosure, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[0063] As used herein in the context of computer implementation, unless otherwise specified or limited, the terms "component," "system," "module," "block," and the like are intended to encompass part or all of computer-related systems that include hardware, software, a combination of hardware and software, or software in execution. For example, a component can be, but is not limited to being, a processor device, a process being executed (or executable) by a processor device, an object, an executable, a thread of execution, a computer program, or a computer. By way of illustration, both an application running on a computer and the computer can be a component. Components (or system, module, and so on) can reside within a process or thread of execution, can be localized on one computer, can be distributed between two or more computers or other processor devices, or can be included within another component (or system, module, and so on).QB\93573215.4 18

Claims

86355606CLAIMSWhat is claimed is:

1. A method, comprising: receiving session data for a session of an application, the session data including a measured performance value, an adjustable configuration value corresponding to an adjustable configuration, and a fixed configuration value corresponding to a fixed configuration; predicting a potential performance value based on the session data; determining a potential adjustable configuration value based on the potential performance value; and outputting the potential adjustable configuration value.

2. The method of claim 1, wherein predicting the potential performance value comprises applying a machine learning model specific to the application to the adjustable configuration value and the fixed configuration value.

3. The method of claim 2, further comprising: responsive to the potential performance value meeting a threshold comparison condition with respect to the measured performance value, providing an option to update the machine learning model based on the session data.

4. The method of claim 1, wherein the adjustable configuration value and the potential adjusted configuration value comprise values for an application host system configurable parameter.

5. The method of claim 1, wherein the session data comprises application host system telemetry captured during the session.

6. The method of claim 5, further comprising: filtering the session data based on the application host system telemetry, wherein predicting the potential performance value is based on the filtered session data.

7. The method of claim 5, wherein the application host telemetry comprises concurrently executed application telemetry.

8. The method of claim 1, further comprising: responsive to the potential performance value meeting a threshold comparison condition with respect to the measured performance value, providing an option to update the adjustable configuration based on the potential adjustable configurationQB\93573215.4 1986355606 value.

9. A device, comprising: a display; a network interface; a processor; and a non-transitory computer readable medium storing instructions executable by the processor to: connect to an application configuration server via the network interface; transmit session data for a session of an application to the application configuration server, the session data including a measured performance value, an adjustable configuration value corresponding to an adjustable configuration, and a fixed configuration value corresponding to a fixed configuration; receive a potential adjustable configuration value from the application configuration server; and provide a graphical user interface via the display to provide a user control to implement the potential adjustable configuration value.

10. The device of claim 9, wherein the non-transitory computer readable medium stores instructions executable by the processor to provide an option to update a predictive machine learning model based on the potential adjustable configuration value responsive to a potential performance value corresponding to the potential adjustable configuration value meeting a threshold comparison condition with respect to the measured performance value.

11. The device of claim 9, wherein: the session data comprises client system telemetry, and the non-transitory computer readable medium stores instructions executable by the processor to: filter the session data based on application host system telemetry; and transmit the filtered session data to the application configuration server.

12. A non-transitory computer readable medium storing instructions executable by a computer to:QB\93573215.4 2086355606 provide session data for a session of an application, the session data including a measured performance value, an adjustable configuration value corresponding to an adjustable configuration, and a fixed configuration value corresponding to a fixed configuration; receive a potential adjustable configuration value based on a potential performance value generated based on the session data and; and display a graphical user interface to provide the potential adjustable configuration value.

13. The non-transitory computer readable medium of claim 12, storing further instructions executable by the computer to: display a second graphical control to submit the session data to update a machine learning model.

14. The non-transitory computer readable medium of claim 12, storing further instructions executable by the computer to: display a second graphical user interface to display a suggested hardware component associated with a second potential performance value.

15. The non-transitory computer readable medium of claim 12, wherein the session data comprises application host system configuration data, application configuration data, power configuration data, and concurrent application data.QB\93573215.4 21