blender-benchmark-bundle.git
2 years agoFixes for API changes done in Blender 2.80 master
Sergey Sharybin [Mon, 3 Jun 2019 07:51:07 +0000 (09:51 +0200)]
Fixes for API changes done in Blender 2.80

Seems to work with both Blender 2.79 and 2,80.

3 years agoPrevent crash when generating JSONString
Francesco Siddi [Thu, 6 Sep 2018 13:51:36 +0000 (15:51 +0200)]
Prevent crash when generating JSONString

The issue is discussed in rBBB4726ee0c9c05

3 years agoUpdate README.md
Francesco Siddi [Tue, 4 Sep 2018 21:50:06 +0000 (23:50 +0200)]
Update README.md

Add note about downloading Blender scenes from SVN.

3 years agoUpdate README.md
Francesco Siddi [Mon, 3 Sep 2018 14:55:52 +0000 (16:55 +0200)]
Update README.md

Add info about CLI usage.

3 years agoProduce benchmark JSON schema v2
Sybren A. Stüvel [Tue, 28 Aug 2018 10:11:01 +0000 (12:11 +0200)]
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.

3 years agoGit: fetch before checkout'ing a branch
Sybren A. Stüvel [Fri, 17 Aug 2018 10:55:37 +0000 (12:55 +0200)]
Git: fetch before checkout'ing a branch

3 years agoActually call bundle.sh from bundle.bat
Sybren A. Stüvel [Fri, 17 Aug 2018 10:52:37 +0000 (12:52 +0200)]
Actually call bundle.sh from bundle.bat

…instead of bundle-linux.sh that no longer exists

3 years agoAdd README.md
Francesco Siddi [Fri, 17 Aug 2018 10:41:53 +0000 (12:41 +0200)]
Add README.md

3 years agoBenchmark submodule checkout after libs update
Francesco Siddi [Fri, 17 Aug 2018 10:16:59 +0000 (12:16 +0200)]
Benchmark submodule checkout after libs update

Otherwise on Darwin make update will switch it
back to master.

3 years agoRename bundle-linux.sh and bundle-windows.bat → bundle.{sh,bat}
Sybren A. Stüvel [Fri, 17 Aug 2018 09:52:10 +0000 (11:52 +0200)]
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.

3 years agoBlender's benchmark submodule should be on the correct branch
Sybren A. Stüvel [Fri, 17 Aug 2018 09:50:40 +0000 (11:50 +0200)]
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).

3 years agoBumped version to 1.0b3.dev0
Sybren A. Stüvel [Fri, 17 Aug 2018 09:13:40 +0000 (11:13 +0200)]
Bumped version to 1.0b3.dev0

3 years agoUpdated setup.cfg
Sybren A. Stüvel [Thu, 16 Aug 2018 15:24:13 +0000 (17:24 +0200)]
Updated setup.cfg

The `pep8` command was complaining that `pycodestyle` is the new `pep8`
when it comes to config section names.

3 years agoFixed bug in peak memory stats + added unit test
Sybren A. Stüvel [Thu, 16 Aug 2018 15:23:47 +0000 (17:23 +0200)]
Fixed bug in peak memory stats + added unit test

3 years agoCleanup of stats regexps
Sybren A. Stüvel [Thu, 16 Aug 2018 15:23:25 +0000 (17:23 +0200)]
Cleanup of stats regexps

3 years agoFix T56314: wrong operating system records for Ubuntu
Sybren A. Stüvel [Thu, 16 Aug 2018 13:56:08 +0000 (15:56 +0200)]
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

3 years agoIgnore bundled files
Sybren A. Stüvel [Thu, 16 Aug 2018 13:38:46 +0000 (15:38 +0200)]
Ignore bundled files

3 years agoBundle script: stop when there is an error
Sybren A. Stüvel [Thu, 16 Aug 2018 13:38:00 +0000 (15:38 +0200)]
Bundle script: stop when there is an error

3 years agoBlender branch changed temp-benchmark → benchmark
Sybren A. Stüvel [Thu, 16 Aug 2018 13:37:51 +0000 (15:37 +0200)]
Blender branch changed temp-benchmark → benchmark

3 years agoInclude Benchmark Client version information in the result JSON
Sybren A. Stüvel [Thu, 16 Aug 2018 12:43:29 +0000 (14:43 +0200)]
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 -∞

3 years agoAccidentally bumped the version nr, back to 1.0b2.dev0
Sybren A. Stüvel [Thu, 16 Aug 2018 08:40:42 +0000 (10:40 +0200)]
Accidentally bumped the version nr, back to 1.0b2.dev0

3 years agoScripted version bump + release branch creation
Sybren A. Stüvel [Wed, 15 Aug 2018 16:24:43 +0000 (18:24 +0200)]
Scripted version bump + release branch creation

3 years agoPass hostname to auth token request
Sybren A. Stüvel [Wed, 15 Aug 2018 11:06:45 +0000 (13:06 +0200)]
Pass hostname to auth token request

Related to T56381

3 years agoInclude current time in error report
Sybren A. Stüvel [Tue, 14 Aug 2018 15:27:53 +0000 (17:27 +0200)]
Include current time in error report

3 years agoInclude version in HTTP User-Agent header
Sybren A. Stüvel [Tue, 14 Aug 2018 15:20:13 +0000 (17:20 +0200)]
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.

3 years agoAllow users to save an error report
Sybren A. Stüvel [Tue, 14 Aug 2018 15:15:54 +0000 (17:15 +0200)]
Allow users to save an error report

3 years agoLogging fixes
Sybren A. Stüvel [Tue, 14 Aug 2018 15:15:41 +0000 (17:15 +0200)]
Logging fixes

3 years agoStore version number of the benchmark client in a separate python file
Sybren A. Stüvel [Tue, 14 Aug 2018 15:15:36 +0000 (17:15 +0200)]
Store version number of the benchmark client in a separate python file

3 years agoMoved setup.cfg to the correct place
Sybren A. Stüvel [Tue, 14 Aug 2018 14:47:00 +0000 (16:47 +0200)]
Moved setup.cfg to the correct place

3 years agoRun submission in a separate thread, and more explicit state
Sybren A. Stüvel [Tue, 14 Aug 2018 14:36:43 +0000 (16:36 +0200)]
Run submission in a separate thread, and more explicit state

Also more explicit timeouts and an overall better handling of errors.

3 years agoBetter handling of HTTP connection errors during submission
Sybren A. Stüvel [Tue, 14 Aug 2018 13:38:46 +0000 (15:38 +0200)]
Better handling of HTTP connection errors during submission

3 years agoRemove unused variable
Sybren A. Stüvel [Tue, 14 Aug 2018 13:38:25 +0000 (15:38 +0200)]
Remove unused variable

3 years agoWordwrap: prevent infinite loop + cache result
Sybren A. Stüvel [Tue, 14 Aug 2018 13:37:15 +0000 (15:37 +0200)]
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.

3 years agoFix T56372: Properly show error messages when submission fails
Sybren A. Stüvel [Tue, 14 Aug 2018 13:05:37 +0000 (15:05 +0200)]
Fix T56372: Properly show error messages when submission fails

This also introduces a word-wrapping function that takes variable character
widths into account.

3 years agoMoved some drawing code into separate functions
Sybren A. Stüvel [Tue, 14 Aug 2018 11:55:01 +0000 (13:55 +0200)]
Moved some drawing code into separate functions

3 years agoDefault global state variables to the correct type
Sybren A. Stüvel [Tue, 14 Aug 2018 11:48:53 +0000 (13:48 +0200)]
Default global state variables to the correct type

Code gets easier to understand if variables don't change their type.

3 years agoMore protection with `G.progress_lock`
Sybren A. Stüvel [Tue, 14 Aug 2018 11:48:07 +0000 (13:48 +0200)]
More protection with `G.progress_lock`

3 years agoProtect setting `G.result_dict` with `G.progress_lock`
Sybren A. Stüvel [Tue, 14 Aug 2018 11:44:07 +0000 (13:44 +0200)]
Protect setting `G.result_dict` with `G.progress_lock`

3 years agoUse context manager for handling G.progress_lock
Sybren A. Stüvel [Tue, 14 Aug 2018 11:43:29 +0000 (13:43 +0200)]
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.

3 years agoSeparated `space/__init__.py` into a few modules
Sybren A. Stüvel [Tue, 14 Aug 2018 11:37:53 +0000 (13:37 +0200)]
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.

3 years agoFormatting
Sybren A. Stüvel [Tue, 14 Aug 2018 11:34:20 +0000 (13:34 +0200)]
Formatting

3 years agoMoved global state into a class G
Sybren A. Stüvel [Tue, 14 Aug 2018 11:33:56 +0000 (13:33 +0200)]
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).

3 years agoRemoved unused imports
Sybren A. Stüvel [Tue, 14 Aug 2018 10:17:39 +0000 (12:17 +0200)]
Removed unused imports

3 years agoFormatting according to PEP-8 using `autopep8`
Sybren A. Stüvel [Tue, 14 Aug 2018 10:14:54 +0000 (12:14 +0200)]
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.

3 years agoPEP8: import of built-in modules at the top of the file
Sybren A. Stüvel [Tue, 14 Aug 2018 10:07:26 +0000 (12:07 +0200)]
PEP8: import of built-in modules at the top of the file

This also prevents double import of `sys` and `os`.

3 years agoRemove debug only code
Sergey Sharybin [Fri, 10 Aug 2018 18:18:29 +0000 (20:18 +0200)]
Remove debug only code

3 years agoMake sure Blender's build date is always in expected format
Sergey Sharybin [Fri, 10 Aug 2018 18:15:50 +0000 (20:15 +0200)]
Make sure Blender's build date is always in expected format

3 years agoEnsure CPU topology information is integers on all platforms
Sergey Sharybin [Fri, 10 Aug 2018 17:48:18 +0000 (19:48 +0200)]
Ensure CPU topology information is integers on all platforms

On Windows it was a string, go figure.

3 years agoAdd device index to OpenCL devices
Sergey Sharybin [Fri, 10 Aug 2018 12:38:11 +0000 (14:38 +0200)]
Add device index to OpenCL devices

3 years agoAllow sharing only once
Sergey Sharybin [Fri, 10 Aug 2018 12:14:14 +0000 (14:14 +0200)]
Allow sharing only once

3 years agoInterface tweaks
Sergey Sharybin [Fri, 10 Aug 2018 10:29:59 +0000 (12:29 +0200)]
Interface tweaks

3 years agoProfessional styling of 'auth token received' HTML page
Sybren A. Stüvel [Fri, 10 Aug 2018 09:55:51 +0000 (11:55 +0200)]
Professional styling of 'auth token received' HTML page

3 years agoMake version to be Beta
Sergey Sharybin [Fri, 10 Aug 2018 08:48:11 +0000 (10:48 +0200)]
Make version to be Beta

3 years agoMake final blurb more final
Sergey Sharybin [Fri, 10 Aug 2018 08:46:15 +0000 (10:46 +0200)]
Make final blurb more final

3 years agoWrap GPU names into multiple lines
Sergey Sharybin [Fri, 10 Aug 2018 08:43:29 +0000 (10:43 +0200)]
Wrap GPU names into multiple lines

3 years agoMoved submission module into benchmark module
Sybren A. Stüvel [Fri, 10 Aug 2018 08:35:05 +0000 (10:35 +0200)]
Moved submission module into benchmark module

3 years agoImplement requesting device by index
Sergey Sharybin [Fri, 10 Aug 2018 08:21:04 +0000 (10:21 +0200)]
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.

3 years agoDon't check return code of calling cl_query
Sybren A. Stüvel [Thu, 9 Aug 2018 16:17:09 +0000 (18:17 +0200)]
Don't check return code of calling cl_query

3 years agoChange benchmark result 'stats' key to 'scenes' with different content
Sybren A. Stüvel [Thu, 9 Aug 2018 15:31:44 +0000 (17:31 +0200)]
Change benchmark result 'stats' key to 'scenes' with different content

Old:
   'stats': [
        {'scene_name': 'somescene', 'otherstat': 123}
    ]
New:
   'scenes': [
        {'name': 'somescene', stats: {'otherstat': 123}}
    ]

3 years agoSubmission client: log status code & text when submission is bad
Sybren A. Stüvel [Thu, 9 Aug 2018 15:29:52 +0000 (17:29 +0200)]
Submission client: log status code & text when submission is bad

3 years agoSubmission of benchmark data to mydata.blender.org
Sybren A. Stüvel [Thu, 9 Aug 2018 15:09:21 +0000 (17:09 +0200)]
Submission of benchmark data to mydata.blender.org

3 years agoBenchmark: Report proper Vega device in json
Sergey Sharybin [Thu, 9 Aug 2018 15:51:31 +0000 (17:51 +0200)]
Benchmark: Report proper Vega device in json

3 years agoBenchmark: Workaround to show proper Vega card
Sergey Sharybin [Thu, 9 Aug 2018 15:21:50 +0000 (17:21 +0200)]
Benchmark: Workaround to show proper Vega card

3 years agoAttempt to deal with partially initialized checkouts
Sergey Sharybin [Wed, 8 Aug 2018 15:23:50 +0000 (17:23 +0200)]
Attempt to deal with partially initialized checkouts

3 years agoBundle: Implement ZIP creation on Windows
Sergey Sharybin [Wed, 8 Aug 2018 13:14:41 +0000 (15:14 +0200)]
Bundle: Implement ZIP creation on Windows

3 years agoMention GPU memory required to finish the full benchmark
Sergey Sharybin [Wed, 8 Aug 2018 10:21:15 +0000 (12:21 +0200)]
Mention GPU memory required to finish the full benchmark

3 years agoUse better framed picture when available
Sergey Sharybin [Wed, 8 Aug 2018 10:05:07 +0000 (12:05 +0200)]
Use better framed picture when available

3 years agoBenchmark: tweak opendata link to be centered correctly.
Brecht Van Lommel [Wed, 8 Aug 2018 09:55:29 +0000 (11:55 +0200)]
Benchmark: tweak opendata link to be centered correctly.

3 years agoReport more uniform progress when rendering on GPU
Sergey Sharybin [Wed, 8 Aug 2018 09:24:29 +0000 (11:24 +0200)]
Report more uniform progress when rendering on GPU

3 years agoKeep buttons alignment when device selector is not visible
Sergey Sharybin [Wed, 8 Aug 2018 08:42:24 +0000 (10:42 +0200)]
Keep buttons alignment when device selector is not visible

3 years agoUse buttons opf default color in file browser
Sergey Sharybin [Wed, 8 Aug 2018 08:33:06 +0000 (10:33 +0200)]
Use buttons opf default color in file browser

3 years agoUse blender logo size which is safer for downscale
Sergey Sharybin [Tue, 7 Aug 2018 21:58:39 +0000 (23:58 +0200)]
Use blender logo size which is safer for downscale

3 years agoBundler: add macOS code signing and .dmg + .zip packing.
Brecht Van Lommel [Tue, 7 Aug 2018 20:24:04 +0000 (22:24 +0200)]
Bundler: add macOS code signing and .dmg + .zip packing.

3 years agoBundle: Support ImageMagic on Windows
Sergey Sharybin [Tue, 7 Aug 2018 20:22:53 +0000 (22:22 +0200)]
Bundle: Support ImageMagic on Windows

3 years agoBundle: Better approach for previous commit
Sergey Sharybin [Tue, 7 Aug 2018 20:16:37 +0000 (22:16 +0200)]
Bundle: Better approach for previous commit

Saves some submodule checkout, which is especially slow
on WIndows for some reason.

3 years agoBundle: Initialize submodules after checkout to branch
Sergey Sharybin [Tue, 7 Aug 2018 20:12:06 +0000 (22:12 +0200)]
Bundle: Initialize submodules after checkout to branch

Ensures we've got benchmark submodule initialized.

3 years agoBundle: Unpack blender release archive
Sergey Sharybin [Tue, 7 Aug 2018 20:05:39 +0000 (22:05 +0200)]
Bundle: Unpack blender release archive

3 years agoBundle: Run install target on windows
Sergey Sharybin [Tue, 7 Aug 2018 19:53:55 +0000 (21:53 +0200)]
Bundle: Run install target on windows

3 years agoBundle: Pass compilation step on Windows
Sergey Sharybin [Tue, 7 Aug 2018 18:17:40 +0000 (20:17 +0200)]
Bundle: Pass compilation step on Windows

3 years agoBenchmark: use link button drawing in UI.
Brecht Van Lommel [Tue, 7 Aug 2018 18:09:04 +0000 (20:09 +0200)]
Benchmark: use link button drawing in UI.

3 years agoBundle: Tweaks to detect MSbuild rather than make
Sergey Sharybin [Tue, 7 Aug 2018 16:49:15 +0000 (18:49 +0200)]
Bundle: Tweaks to detect MSbuild rather than make

3 years agoBundle: Tweaks to bootstrap bunlder
Sergey Sharybin [Tue, 7 Aug 2018 16:44:31 +0000 (18:44 +0200)]
Bundle: Tweaks to bootstrap bunlder

It seems running vcvarsall from inside Git bash
does not make proper change in the environment.

Workaround is to have separate script, which
sets environment up and calls bash scripts.

3 years agoFix for previous commit
Sergey Sharybin [Tue, 7 Aug 2018 16:21:18 +0000 (18:21 +0200)]
Fix for previous commit

3 years agoMake bitness to be detected on Windows
Sergey Sharybin [Tue, 7 Aug 2018 16:18:19 +0000 (18:18 +0200)]
Make bitness to be detected on Windows

Required to run script from Git bash. MSVC_ARCH is to
be provided by either configuration or environment.

3 years agoBundler: fixes for macOS.
Brecht Van Lommel [Tue, 7 Aug 2018 16:17:04 +0000 (18:17 +0200)]
Bundler: fixes for macOS.

3 years agoBundler: initial port to macOS.
Brecht Van Lommel [Tue, 7 Aug 2018 16:00:23 +0000 (18:00 +0200)]
Bundler: initial port to macOS.

3 years agoExit script if compilation failed
Sergey Sharybin [Tue, 7 Aug 2018 15:44:48 +0000 (17:44 +0200)]
Exit script if compilation failed

3 years agoReport packign state
Sergey Sharybin [Tue, 7 Aug 2018 15:15:30 +0000 (17:15 +0200)]
Report packign state

3 years agoAllow build environment to tweak cmake flags
Sergey Sharybin [Tue, 7 Aug 2018 15:13:55 +0000 (17:13 +0200)]
Allow build environment to tweak cmake flags

3 years agoTweak tile size on GPU
Sergey Sharybin [Tue, 7 Aug 2018 15:07:44 +0000 (17:07 +0200)]
Tweak tile size on GPU

3 years agoDon't use victor scene
Sergey Sharybin [Tue, 7 Aug 2018 14:59:13 +0000 (16:59 +0200)]
Don't use victor scene

It is quite resource-heavy, likely to run out of resources
on lots of machines.

3 years agoArchive the result bundle
Sergey Sharybin [Tue, 7 Aug 2018 14:40:37 +0000 (16:40 +0200)]
Archive the result bundle

3 years agoBundler: ADownload blender from internet and package it
Sergey Sharybin [Tue, 7 Aug 2018 13:29:26 +0000 (15:29 +0200)]
Bundler: ADownload blender from internet and package it

3 years agoInitial work on bundling script
Sergey Sharybin [Tue, 7 Aug 2018 13:07:04 +0000 (15:07 +0200)]
Initial work on bundling script

Not finished, but has something workign already.

3 years agoFurther tweaks to blender logo
Sergey Sharybin [Tue, 7 Aug 2018 10:09:45 +0000 (12:09 +0200)]
Further tweaks to blender logo

3 years agoDraw shadow under the text
Sergey Sharybin [Tue, 7 Aug 2018 09:48:23 +0000 (11:48 +0200)]
Draw shadow under the text

3 years agoUpdate images to be moar final
Sergey Sharybin [Tue, 7 Aug 2018 09:43:08 +0000 (11:43 +0200)]
Update images to be moar final

3 years agoAdd placeholder texts
Sergey Sharybin [Tue, 7 Aug 2018 09:36:39 +0000 (11:36 +0200)]
Add placeholder texts

Will make it easier to tweak once final text is ready.

3 years agoTweak wording in the interface, hopefulyl to make it more obvious
Sergey Sharybin [Tue, 7 Aug 2018 09:11:48 +0000 (11:11 +0200)]
Tweak wording in the interface, hopefulyl to make it more obvious

3 years agoSend SIGINT once
Sergey Sharybin [Tue, 7 Aug 2018 08:10:48 +0000 (10:10 +0200)]
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.