165 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
f254f806ce Update README.md
Add note about downloading Blender scenes from SVN.
2018-09-04 23:50:06 +02:00
12573e7158 Update README.md
Add info about CLI usage.
2018-09-03 16:55:52 +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
34dd5eec25 Git: fetch before checkout'ing a branch 2018-08-17 12:55:37 +02:00
afdb0e977e Actually call bundle.sh from bundle.bat
…instead of bundle-linux.sh that no longer exists
2018-08-17 12:52:43 +02:00
1f70a6f266 Add README.md 2018-08-17 12:42:17 +02:00
e6d300a219 Benchmark submodule checkout after libs update
Otherwise on Darwin make update will switch it
back to master.
2018-08-17 12:16:59 +02:00
36be4df607 Rename bundle-linux.sh and bundle-windows.bat → bundle.{sh,bat}
The shell script is also used by macOS and Windows builds, so calling it
'linux' is a bit silly.
2018-08-17 11:52:10 +02:00
8f0848dc35 Blender's benchmark submodule should be on the correct branch
This forces the release/scripts/benchmark submodule to be on the same
branch as the working directory of the bundle script (usually release-xxx).
2018-08-17 11:50:40 +02:00
363a7621ab Bumped version to 1.0b3.dev0 2018-08-17 11:13:40 +02:00
9e9d1b7c13 Updated setup.cfg
The `pep8` command was complaining that `pycodestyle` is the new `pep8`
when it comes to config section names.
2018-08-16 17:24:13 +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
1d1aa3dab9 Ignore bundled files 2018-08-16 15:38:46 +02:00
63950598c6 Bundle script: stop when there is an error 2018-08-16 15:38:00 +02:00
0e2dc29c26 Blender branch changed temp-benchmark → benchmark 2018-08-16 15:37:51 +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