505 Commits

Author SHA1 Message Date
Marc Di Luzio
53d1700a68 Add the timout to the call signature of run_external_process 2019-03-07 17:51:57 +00:00
Marc Di Luzio
4578af47ba Combine the two run_external_process functions so they both have the same timeout protection 2019-03-07 17:51:57 +00:00
Marc Di Luzio
e9ff2cbb10 Implement a timeout in run_external_process 2019-03-07 17:51:57 +00:00
Marc Di Luzio
1665447350 Use run_external_process for the script execution
This protects the main process against script exection and allows more detailed error handling
2019-03-07 17:51:57 +00:00
Marc Di Luzio
5facf2bba5 Refactor out script execution 2019-03-07 17:51:57 +00:00
Marc Di Luzio
024acddf90 Run the custom start scripts to after the other optimisations
This ensures the other featues are applied first, and the scripts can react if needed to those settings
2019-03-07 17:51:57 +00:00
Marc Di Luzio
9df1dd857c Try waiting for the reaper thread at the start of tests if needed 2019-03-07 17:51:57 +00:00
Marc Di Luzio
e44c445262 Use the actual dbus error when failing in the client
This helps greatly when identifying what went wrong
2019-03-07 17:51:57 +00:00
Alex Smith
3c28e84700 Merge pull request #105 from mdiluz/auto-detect-vendor
Detect the GPU vendor automatically
2019-03-04 08:43:58 +00:00
Marc Di Luzio
a5543880f3 Clarify ini file description
As requested in #105
2019-03-01 18:13:58 +00:00
Alex Smith
c7c1c5470f Minor fix for preload instructions 2019-02-27 09:38:09 +00:00
Alex Smith
326be7ebbd Merge pull request #106 from mdiluz/supervisor-support
Add "supervisor" support
2019-02-26 18:31:18 +00:00
Marc Di Luzio
7f6f32d284 Actually reject requests if require_supervisor is hit 2019-02-22 15:58:46 +00:00
Marc Di Luzio
c1dfd8bbc4 Add gamemode error strings to printouts to help debug issues 2019-02-21 17:34:20 +00:00
Marc Di Luzio
218dc9dab8 Fix up formatting 2019-02-21 17:34:20 +00:00
Marc Di Luzio
70c317233f Wait for the child to finish up 2019-02-21 17:34:20 +00:00
Marc Di Luzio
3a624350d1 Add flavor to error log messages 2019-02-21 17:34:20 +00:00
Marc Di Luzio
baf295773b Implement supervisor tests 2019-02-21 17:34:20 +00:00
Marc Di Luzio
b28efdb555 Correct the names and return 0 for success 2019-02-21 17:34:20 +00:00
Marc Di Luzio
602afdcbb7 Add check against require_supervisor variable 2019-02-21 17:34:20 +00:00
Marc Di Luzio
1d40c0cc1b Refactor to use single internal functions for register, unregister and query 2019-02-21 17:34:20 +00:00
Marc Di Luzio
d4fdd9e3b4 Correct internal name for query_status_for 2019-02-21 17:34:20 +00:00
Marc Di Luzio
de1049f070 Fix comments 2019-02-21 17:34:20 +00:00
Marc Di Luzio
c2f7e971c6 Implement game_mode_query_status_for as well 2019-02-21 17:34:20 +00:00
Marc Di Luzio
1b96111afc Add entry in README for supervisor support 2019-02-21 17:34:20 +00:00
Marc Di Luzio
1430c0b831 Implement supervisor features using new config variables
This allows direct control over who can make requests on behalf of other processes

	require_supervisor can also be used to allow a supervisor to take direct control of gamemode on the system (perhaps a GUI, or game launcher)
2019-02-21 17:34:20 +00:00
Marc Di Luzio
d60ac23daa Add a helper function for getting if a config list contains a string 2019-02-21 17:34:20 +00:00
Marc Di Luzio
c5f58c56d0 Hook up interfaces for functions to register another process 2019-02-21 17:34:20 +00:00
Marc Di Luzio
0f7950245a Actually don't error if a symbol is not required 2019-02-21 17:34:20 +00:00
Marc Di Luzio
ca858d6932 Add two new API calls to the client to request gamemode on behalf of another process
gamemode_request_start_for and gamemode_request_end_for
2019-02-21 17:34:20 +00:00
Marc Di Luzio
1f49432e7a Simplify the typedefs for the apicalls 2019-02-21 17:34:20 +00:00
Marc Di Luzio
de390be93d Add unused to now unused hex function 2019-02-21 17:33:58 +00:00
Marc Di Luzio
ebe525d04e Fix up testing now that we detect the vendor 2019-02-21 17:26:14 +00:00
Marc Di Luzio
91deffb6b4 Fill in the GPU vendor automatically 2019-02-21 17:26:14 +00:00
Marc Di Luzio
0847d3b452 Remove the vendor config value in prep for it to be auto-detected 2019-02-21 17:26:14 +00:00
Alex Smith
d582b580b2 Merge pull request #104 from mdiluz/more-testing
Add more test coverage
2019-02-21 14:10:44 +00:00
Alex Smith
77c10ba15f Merge pull request #103 from mdiluz/protect-gpu-settings
Protect the [gpu] config section
2019-02-21 11:34:11 +00:00
Marc Di Luzio
94b6a34f65 Add test for gamemoderun and the reaper thread
Using a simple test allows us to check both at once
2019-02-20 18:08:49 +00:00
Marc Di Luzio
42d7503482 Adjust checking in gpuclockctl to assist when errors happen 2019-02-20 18:08:24 +00:00
Marc Di Luzio
ab5fdad3cb Give the child more time to quit 2019-02-20 17:53:13 +00:00
Marc Di Luzio
e36a172144 Add full test for GPU settings 2019-02-20 17:53:13 +00:00
Marc Di Luzio
784cb0053d Extract testing to individual functions 2019-02-20 17:53:13 +00:00
Marc Di Luzio
a9572e6896 Begin GPU test implementation 2019-02-20 17:53:13 +00:00
Marc Di Luzio
20a4862888 Add functionality to get the current GPU information in the daemon 2019-02-20 17:53:13 +00:00
Marc Di Luzio
e31a811946 Add run_external_process_get_output function to get output as well 2019-02-20 17:53:13 +00:00
Marc Di Luzio
392fb221dc Return failure on failure, and don't try and read past the end of argv 2019-02-20 17:53:13 +00:00
Marc Di Luzio
9cd32c63eb Implement getting GPU clocks for NV 2019-02-20 17:53:13 +00:00
Marc Di Luzio
1bc4ac626a Comment about register features
Also add comment about org.freedesktop.ScreenSaver not being fully testable
2019-02-20 17:53:13 +00:00
Marc Di Luzio
7f5e59b7c4 Add pass/fail for the CPU tests 2019-02-20 17:53:13 +00:00
Marc Di Luzio
6bfedc9692 Call the configured scripts to test them 2019-02-20 17:53:13 +00:00