Skip to main content

Benchmark orchestrator for the xemu original Microsoft Xbox emulator

Project description

xemu-perf-tester

Orchestrates running xemu benchmarks using xemu-perf-tests.

Installation

Install from Pypi

pip install xemu-perf-tester

Use

Running benchmarks

Run xemu-perf-run -h for detailed information on executing the benchmarks.

One time setup: xemu-perf-run --import-install <path_to_your_xemu.toml_file>

Test the latest xemu with the latest benchmark release

The default behavior is to download the latest xemu-perf-tests iso and xemu release and run the benchmarks using the OpenGL backend. You may pass the --use-vulkan parameter to use Vulkan instead.

xemu-perf-run

Testing against specific xemu and/or xemu-perf-tests releases

xemu-perf-run \
  --xemu-tag v0.8.7 \
  --test-tag v12345

--xemu_tag accepts:

  • a xemu release version (e.g., v0.8.92)
  • the URL of a build action (e.g., https://github.com/xemu-project/xemu/actions/runs/16152580613)
  • the URL of a pull request (PR) (e.g., https://github.com/xemu-project/xemu/pull/2329).

The action and PR options additionally require you to pass a GitHub token using the --github-token argument. See --help for details.

Reusing existing xemu-perf-tests ISO and/or xemu binary

You can use the --iso and --xemu flags to specify existing artifacts. This will skip the automated check against the GitHub API for the latest tagged artifacts.

xemu-perf-run \
  --xemu ~/bin/xemu \
  --iso ~/special_perf_tests.xiso

Using a development build of xemu on macOS

Some extra flags are needed to utilize a development build of xemu. You will need to set the DYLD_FALLBACK_LIBRARY_PATH environment variable to point at a valid xemu.app binary and will need to pass the --no-bundle argument to xemu-perf-run to prevent it from attempting to find a xemu.app bundle itself.

DYLD_FALLBACK_LIBRARY_PATH=/path/to/xemu_repo/dist/xemu.app/Contents/Libraries/arm64 \
xemu-perf-run \
  --xemu /path/to/xemu_repo/build/qemu-system-i386 \
  --no-bundle

Test configuration

Conditional block listing

Tests that cannot be executed on certain versions of xemu may be disallowed using a blocklist.json file specified using the --block-list-file command.

The file provides a simple list of JSON objects, each specifying a set of one or more conditions and one or more test names to be disabled if the condition is satisfied.

For example, to disable the entire "High vertex count" suite on xemu versions less than 0.8.54:

{
  "rules": [
    {
      "conditions": [
        "$version < 0.8.54"
      ],
      "skipped": [
        "High vertex count::"
      ]
    }
  ]
}

"conditions" may use the $version variable to test against the runtime reported version of xemu.

"skipped" entries are fully qualified test names, with anything before "::" referring to a test suite and everything after to a specific test. These are exact matches, so "Suite::Test" will only disable the test literally named " Suite::Test" but would still allow "Suite::Test1" to run. The trailing "::" may be omitted when disallowing an entire test suite. For example "Suite::" is equivalent to "Suite", both will disable all tests in the "Suite" suite.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xemu_perf_tester-0.2.3.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xemu_perf_tester-0.2.3-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file xemu_perf_tester-0.2.3.tar.gz.

File metadata

  • Download URL: xemu_perf_tester-0.2.3.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for xemu_perf_tester-0.2.3.tar.gz
Algorithm Hash digest
SHA256 d30898fb290f2edb8bb6154f1e8c7078662f66f9c9da8f6f6a78509c494a6e6b
MD5 05c84d15dbfd4a0aede7da46a547e98f
BLAKE2b-256 b517170b4b12497b0eaf7d76e6b42ca0aa1ae76960eeed64126464e9c7581e03

See more details on using hashes here.

File details

Details for the file xemu_perf_tester-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for xemu_perf_tester-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 edc7b295c9b5d8992e2747a558cf863acbde4471b1e75eef1f60926f3a9410e0
MD5 e296ce7e9175d3cc5197c74b3cd0f7d9
BLAKE2b-256 514882b00cb1701ee59fda8775402a25ea0701f123403e5bb92b40bb0c8eca6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page