62 Commits

Author SHA1 Message Date
Sybren A. Stüvel 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
Sybren A. Stüvel 6f180cc6c4 Scripted version bump + release branch creation 2018-08-15 18:37:29 +02:00
Sybren A. Stüvel 18a99a437a Include current time in error report 2018-08-14 17:27:53 +02:00
Sybren A. Stüvel 4fea9526b9 Allow users to save an error report 2018-08-14 17:19:37 +02:00
Sybren A. Stüvel e5bf3b1947 Store version number of the benchmark client in a separate python file 2018-08-14 17:15:36 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel 5d86b87f40 Better handling of HTTP connection errors during submission 2018-08-14 15:38:46 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel 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
Sybren A. Stüvel 9ed933760c Moved some drawing code into separate functions 2018-08-14 13:55:01 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel 088427a833 More protection with G.progress_lock 2018-08-14 13:48:07 +02:00
Sybren A. Stüvel 7ecc2cd22b Protect setting G.result_dict with G.progress_lock 2018-08-14 13:44:07 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel 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
Sybren A. Stüvel 4ae3f418c6 Formatting 2018-08-14 13:34:20 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel cfbbc912e7 Removed unused imports 2018-08-14 12:17:39 +02:00
Sybren A. Stüvel 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
Sergey Sharybin a2cf5eb571 Add device index to OpenCL devices 2018-08-10 14:38:11 +02:00
Sergey Sharybin 61e56c2d8e Allow sharing only once 2018-08-10 14:14:14 +02:00
Sergey Sharybin e85faa1ab6 Interface tweaks 2018-08-10 12:29:59 +02:00
Sergey Sharybin b32052f1ed Make version to be Beta 2018-08-10 10:48:37 +02:00
Sergey Sharybin 66477fdf43 Make final blurb more final 2018-08-10 10:46:15 +02:00
Sergey Sharybin a2d7fd1b37 Wrap GPU names into multiple lines 2018-08-10 10:43:29 +02:00
Sybren A. Stüvel 1defd9395a Moved submission module into benchmark module 2018-08-10 10:35:05 +02:00
Sergey Sharybin 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
Sybren A. Stüvel 26f5978aae Don't check return code of calling cl_query 2018-08-09 18:17:09 +02:00
Sybren A. Stüvel 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
Sybren A. Stüvel da869e022a Submission of benchmark data to mydata.blender.org 2018-08-09 18:04:07 +02:00
Sergey Sharybin 9ecab3a512 Benchmark: Report proper Vega device in json 2018-08-09 17:51:31 +02:00
Sergey Sharybin 821f50cda1 Benchmark: Workaround to show proper Vega card 2018-08-09 17:21:50 +02:00
Sergey Sharybin 383cb4fcd2 Mention GPU memory required to finish the full benchmark 2018-08-08 12:21:15 +02:00
Brecht Van Lommel 984a8f1f08 Benchmark: tweak opendata link to be centered correctly. 2018-08-08 11:56:52 +02:00
Sergey Sharybin b216fcb8cb Keep buttons alignment when device selector is not visible 2018-08-08 10:42:24 +02:00
Sergey Sharybin 8c0216fce6 Use buttons opf default color in file browser 2018-08-08 10:33:06 +02:00
Sergey Sharybin 57a080c9db Use blender logo size which is safer for downscale 2018-08-07 23:58:56 +02:00
Brecht Van Lommel 206d83d546 Benchmark: use link button drawing in UI. 2018-08-07 20:11:44 +02:00
Brecht Van Lommel 36023cec88 Bundler: initial port to macOS. 2018-08-07 18:02:25 +02:00
Sergey Sharybin fc4b8618f0 Don't use victor scene
It is quite resource-heavy, likely to run out of resources
on lots of machines.
2018-08-07 16:59:13 +02:00
Sergey Sharybin 87ac43b6ec Further tweaks to blender logo 2018-08-07 12:09:45 +02:00
Sergey Sharybin 3e16d19178 Draw shadow under the text 2018-08-07 11:48:23 +02:00
Sergey Sharybin 16284d4505 Update images to be moar final 2018-08-07 11:43:08 +02:00
Sergey Sharybin ef03f62053 Add placeholder texts
Will make it easier to tweak once final text is ready.
2018-08-07 11:36:39 +02:00
Sergey Sharybin f391aafb27 Tweak wording in the interface, hopefulyl to make it more obvious 2018-08-07 11:11:48 +02:00
Sergey Sharybin 24c6749a83 Send SIGINT once
This is enough (somehow) to abort rendering. With signal sent
twice Blender wil lsave crash report, which is not what we want.
2018-08-07 10:10:48 +02:00
Sergey Sharybin 23ca9b0759 Fixed bad alignment of device selection 2018-08-07 10:04:15 +02:00
Sergey Sharybin c98955b3ff Add a button to go back to the beginning
Allows to run benchmark on multiple configurations, without
closing benchmark software.
2018-08-07 10:03:05 +02:00
Sergey Sharybin 93c7f172ad Save ouytput images to a temp director which will be erased
Also removed hardcoded temp path in benchmark itself.
2018-08-06 16:58:07 +02:00
Sergey Sharybin 8cebc726ca Only show device enum when needed 2018-08-06 16:42:46 +02:00