Page MenuHome

Blender Benchmark: CLI only works in batch if you run it once interactively
Closed, ResolvedPublic

Description

Download and install the Windows CLI version of the blender benchmark from here:

https://opendata.blender.org/ (the 'Download for other platforms' option)

Install and run it thusly: benchmark-launcher-cli benchmark bmw27 --blender-version 2.81a --device-type CPU --json

You should see an error in the style of the following:

  • SNIP ----

ERROR: Blender version 2.81a seems to be broken. Consider running the 'clear_cache' command.
ERROR: Blender version 2.81a with checksum 87355b0a81d48ea336948294b9da8670eaae73667fae028e9a64cbb4104ceea1 is broken: missing valid flag file

  • SNIP ----

Now, run just the exe (i.e. benchmark-launcher-cli) and you'll be presented with a series of prompts to get the benchmark going. Once you do that, you can run the above incantation.

Event Timeline

Jagannadhan Ravi (easythrees) changed the task status from Needs Triage to Confirmed.Jan 27 2020, 12:09 AM

I'll take a shot at fixing this.

I just did a sync and rebuild of the launcher, and I'm seeing something odd. When I try to run it, I get:

ERROR: fetching metadata failed: current launcher not supported

Any ideas why?

Are you running the benchmark client against your own development install of the Open Data platform (/website in the repo)?
In that case, make sure that you update the "Client" via the admin backend.

Um okay, how do I do that?

You need to:

How can I do this step:

  • SNIP ----

Obtain an OAuth client and secret key from Blender ID

  • SNIP ----

Without building Blender ID on my own? Is there a client I can download?

So I just tried running the test script (I didn't change the default values for the parameters mentioned above) and I get these errors:

opendata_main/models/user_settings.py:16: error: Returning Any from function declared to return "UserSettings"
opendata_main/models/user_settings.py:18: error: Returning Any from function declared to return "UserSettings"

I'm *guessing* these are related (to the issue mentioned above), are they?

So, regarding this note:

Obtain an OAuth client and secret key from Blender ID and set the BLENDER_ID.OAUTH_CLIENT and BLENDER_ID.OAUTH_SECRET properties.

Where do I get these? I used the BlenderID addon and logged in, but the file doesn't have these values. What am I missing?

Also the 'import snapshot' instruction in the documentation fails with:

Unknown command: 'import_snapshot'
Type 'manage.py help' for usage.

Sem Mulder (SemMulder) closed this task as Resolved.Feb 12 2020, 9:26 AM

This issue occurs because you first need to download the Blender version. Please read the README.txt included in the archive downloaded from opendata.blender.org for details. We might improve that error message here though. Since this is not a bug I am closing this issue.

How can I do this step: Obtain an OAuth client and secret key from Blender ID. Without building Blender ID on my own? Is there a client I can download?

You will need to run Blender ID (i.e. the server) locally. Another approach might be to build the launcher in debug mode (make DEBUG=true), that way the checksum is set according to launcher/internal/rpc/checksum_dev.go and you can add the launcher to your local Open Data server.

Looking at the other errors you get running the tests and import_snapshot I'm wondering if your virtualenv is setup correctly. Are you using poetry?

Hi @Sem Mulder (SemMulder), I wouldn't call this resolved because the core issue is still a problem. I did use poetry per the instructions. Did you mean the readme.md (as opposed to txt)? There's no txt file anyway. I will try running the launcher in debug mode, but I think it failed the last time I'd tried that.

Just to be clear, the issue here is that the command needs to run once and download everything interactively before you can run it in a scriptable manner, which is not desired behaviour.

Hi @Sem Mulder (SemMulder), my apologies, I think I misunderstood what you said. I see the file now and yes, this works. Please accept my apologies for the inconvenience.