129 Commits

Author SHA1 Message Date
c984d73a7f Fixes for API changes done in Blender 2.80
Seems to work with both Blender 2.79 and 2,80.
2019-06-03 09:51:07 +02:00
a04a10068a Prevent crash when generating JSONString
The issue is discussed in rBBB4726ee0c9c05
2018-09-06 15:51:36 +02:00
4726ee0c9c Produce benchmark JSON schema v2
- No more '(Display)' strings in the GPU names, but store devices as
  `{'name': name, 'type': 'CPU/CUDA/OPENCL', 'is_display': bool}`
- Introduces testing with py.test & pipenv. The test suite is far from
  complete, though.
2018-08-28 12:11:01 +02:00
363a7621ab Bumped version to 1.0b3.dev0 2018-08-17 11:13:40 +02:00
99fdb422ef Fixed bug in peak memory stats + added unit test 2018-08-16 17:23:47 +02:00
0bfdfb87bc Cleanup of stats regexps 2018-08-16 17:23:25 +02:00
84faded0cc Fix T56314: wrong operating system records for Ubuntu
We now bundle `distro` to find Linux distribution info. Its source is
https://github.com/nir0s/distro
2018-08-16 15:56:08 +02:00
03ad327ca2 Include Benchmark Client version information in the result JSON
This part of the JSON schema isn't required yet. When missing, the version
is assumed to be -∞
2018-08-16 14:43:29 +02:00
c4139613f8 Accidentally bumped the version nr, back to 1.0b2.dev0 2018-08-16 10:40:42 +02:00
6f180cc6c4 Scripted version bump + release branch creation 2018-08-15 18:37:29 +02:00
fbcc6dc511 Pass hostname to auth token request
Related to T56381
2018-08-15 13:06:45 +02:00
18a99a437a Include current time in error report 2018-08-14 17:27:53 +02:00
0eea078802 Include version in HTTP User-Agent header
This allows us to check on the server side whether the user is still using
an up-to-date benchmark client or not.
2018-08-14 17:20:13 +02:00
4fea9526b9 Allow users to save an error report 2018-08-14 17:19:37 +02:00
1a63105d5b Logging fixes 2018-08-14 17:15:41 +02:00
e5bf3b1947 Store version number of the benchmark client in a separate python file 2018-08-14 17:15:36 +02:00
13b766de4a Moved setup.cfg to the correct place 2018-08-14 16:47:00 +02:00
b64577df2e Run submission in a separate thread, and more explicit state
Also more explicit timeouts and an overall better handling of errors.
2018-08-14 16:36:43 +02:00
5d86b87f40 Better handling of HTTP connection errors during submission 2018-08-14 15:38:46 +02:00
bf61aafdac Remove unused variable 2018-08-14 15:38:25 +02:00
2da2105763 Wordwrap: prevent infinite loop + cache result
Previously a line that was too long but didn't contain spaces would cause
an infinite loop and hang Blender. Now we just hard-break each line when
there are no spaces to be found.

The result of word_wrap() is now also cached, so that redraws are more
efficient.
2018-08-14 15:38:05 +02:00
7b88d7704c Fix T56372: Properly show error messages when submission fails
This also introduces a word-wrapping function that takes variable character
widths into account.
2018-08-14 15:08:58 +02:00
9ed933760c Moved some drawing code into separate functions 2018-08-14 13:55:01 +02:00
2999d063db Default global state variables to the correct type
Code gets easier to understand if variables don't change their type.
2018-08-14 13:49:47 +02:00
088427a833 More protection with G.progress_lock 2018-08-14 13:48:07 +02:00
7ecc2cd22b Protect setting G.result_dict with G.progress_lock 2018-08-14 13:44:07 +02:00
c915a486cb Use context manager for handling G.progress_lock
Manually calling `G.progress_lock.release()` is error-prone as it's not
called when an exception is raised while the lock is acquired.
2018-08-14 13:43:29 +02:00
d252f75acf Separated space/__init__.py into a few modules
- `draw.py` contains all the drawing code
- `global_state.py` contains the `G` class introduced in the previous commit.
2018-08-14 13:38:05 +02:00
4ae3f418c6 Formatting 2018-08-14 13:34:20 +02:00
9af1ca1c49 Moved global state into a class G
This allows other modules to do `from benchmark.space import G` and use
the global state too. This is possible because the name `G` keeps
referencing the same object (a class) even when resetting (contrary to
the old `global_xxx = None`, which assigns a new object reference).
2018-08-14 13:33:56 +02:00
cfbbc912e7 Removed unused imports 2018-08-14 12:17:39 +02:00
58644b911f Formatting according to PEP-8 using autopep8
I've added a `setup.cfg` file with `[pep8]` section to make it use the
120-char line length limit we have for all Blender/Python scripts.
2018-08-14 12:14:54 +02:00
05c01f2b21 PEP8: import of built-in modules at the top of the file
This also prevents double import of `sys` and `os`.
2018-08-14 12:07:26 +02:00
d026cc12f7 Remove debug only code 2018-08-10 20:18:29 +02:00
3271a728a2 Make sure Blender's build date is always in expected format 2018-08-10 20:16:19 +02:00
9ab37dbb45 Ensure CPU topology information is integers on all platforms
On Windows it was a string, go figure.
2018-08-10 19:48:18 +02:00
a2cf5eb571 Add device index to OpenCL devices 2018-08-10 14:38:11 +02:00
61e56c2d8e Allow sharing only once 2018-08-10 14:14:14 +02:00
e85faa1ab6 Interface tweaks 2018-08-10 12:29:59 +02:00
30199bcbec Professional styling of 'auth token received' HTML page 2018-08-10 11:55:56 +02:00
b32052f1ed Make version to be Beta 2018-08-10 10:48:37 +02:00
66477fdf43 Make final blurb more final 2018-08-10 10:46:15 +02:00
a2d7fd1b37 Wrap GPU names into multiple lines 2018-08-10 10:43:29 +02:00
1defd9395a Moved submission module into benchmark module 2018-08-10 10:35:05 +02:00
0e1d2810fe Implement requesting device by index
For now main goal is to be able to request specific Vega card.
In the longer term we can use this to select compute device
which is a non-display, or the one which is on specific PCI
slot or so.
2018-08-10 10:21:04 +02:00
26f5978aae Don't check return code of calling cl_query 2018-08-09 18:17:09 +02:00
3bae5244cf Change benchmark result 'stats' key to 'scenes' with different content
Old:
   'stats': [
        {'scene_name': 'somescene', 'otherstat': 123}
    ]
New:
   'scenes': [
        {'name': 'somescene', stats: {'otherstat': 123}}
    ]
2018-08-09 18:04:16 +02:00
da869e022a Submission of benchmark data to mydata.blender.org 2018-08-09 18:04:07 +02:00
9ecab3a512 Benchmark: Report proper Vega device in json 2018-08-09 17:51:31 +02:00
821f50cda1 Benchmark: Workaround to show proper Vega card 2018-08-09 17:21:50 +02:00