Commit Graph

56 Commits

Author SHA1 Message Date
5d86b87f40 Better handling of HTTP connection errors during submission 2018-08-14 15:38:46 +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
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
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
383cb4fcd2 Mention GPU memory required to finish the full benchmark 2018-08-08 12:21:15 +02:00
984a8f1f08 Benchmark: tweak opendata link to be centered correctly. 2018-08-08 11:56:52 +02:00
b216fcb8cb Keep buttons alignment when device selector is not visible 2018-08-08 10:42:24 +02:00
8c0216fce6 Use buttons opf default color in file browser 2018-08-08 10:33:06 +02:00
57a080c9db Use blender logo size which is safer for downscale 2018-08-07 23:58:56 +02:00
206d83d546 Benchmark: use link button drawing in UI. 2018-08-07 20:11:44 +02:00
36023cec88 Bundler: initial port to macOS. 2018-08-07 18:02:25 +02:00
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
87ac43b6ec Further tweaks to blender logo 2018-08-07 12:09:45 +02:00
3e16d19178 Draw shadow under the text 2018-08-07 11:48:23 +02:00
16284d4505 Update images to be moar final 2018-08-07 11:43:08 +02:00
ef03f62053 Add placeholder texts
Will make it easier to tweak once final text is ready.
2018-08-07 11:36:39 +02:00
f391aafb27 Tweak wording in the interface, hopefulyl to make it more obvious 2018-08-07 11:11:48 +02:00
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
23ca9b0759 Fixed bad alignment of device selection 2018-08-07 10:04:15 +02:00
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
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
8cebc726ca Only show device enum when needed 2018-08-06 16:42:46 +02:00
f41931d77b Fix render cancel on Windows
We can nto send SIGINT isgnal on windows, it does not exist.
2018-08-06 15:46:25 +02:00
4719af789c Implement compute device selector 2018-08-06 14:55:07 +02:00
969776f4ad Implement subprocess termination 2018-08-06 12:27:30 +02:00
49d0569c6b Improve HiDPI awareness of Blender logo 2018-08-06 11:45:44 +02:00
e8844bc0ec Prepare for supporting more operation systems 2018-08-06 11:13:15 +02:00
b190316fbf Implement save benchmark operator 2018-08-06 09:59:52 +02:00