Tests to verify xemu handling of various pushbuffer commands
Go to file
2022-01-09 10:24:04 -08:00
.github/workflows Excludes the release bundling job when running off the main branch. (#17) 2021-12-22 21:08:25 -08:00
githooks Refactoring. 2021-11-10 08:59:28 -08:00
resources/image_blit Adds partially functional compositing buffer. 2021-11-29 13:08:49 -08:00
shaders Updates depth culling to match observed behavior. (#30) 2021-12-29 23:00:02 -08:00
tests Adds mode to exercise inline buffer handling. (#31) 2022-01-07 17:13:20 -08:00
third_party Improves float z distribution. 2021-11-18 14:26:46 -08:00
.clang-format Refactoring. 2021-11-10 08:59:28 -08:00
.gdbinit Import from https://github.com/Ernegien/nxdk/tree/test/texture-formats/samples/texture-formats 2021-11-09 22:37:44 -08:00
.gitignore Refactoring. 2021-11-10 08:59:28 -08:00
.gitmodules Improves float z distribution. 2021-11-18 14:26:46 -08:00
debug_output.cpp Improves float z distribution. 2021-11-18 14:26:46 -08:00
debug_output.h Fixes crash on HW when failing to set texture format before clear. 2021-11-29 10:02:48 -08:00
main.cpp Removes debug cruft, adds note on running LightingNormalTests first. 2021-12-29 13:26:51 -08:00
Makefile Adds tests for lighting without specifying normals. (#26) 2021-12-28 11:29:55 -08:00
math3d.c Adds depth buffer test. 2021-11-11 18:33:53 -08:00
math3d.h Adds depth buffer test. 2021-11-11 18:33:53 -08:00
menu_item.cpp Adds test re-run functionality. (#34) 2022-01-09 08:03:32 -08:00
menu_item.h Adds test re-run functionality. (#34) 2022-01-09 08:03:32 -08:00
nxdk_ext.h Adds mode to exercise inline buffer handling. (#31) 2022-01-07 17:13:20 -08:00
pbkit_ext.cpp Material test cleanup. 2021-12-20 09:04:29 -08:00
pbkit_ext.h Adds 2d primitive line tests 2021-12-22 20:51:46 -08:00
README.md Adds link to golden test results. 2022-01-09 10:24:04 -08:00
test_driver.cpp Adds test re-run functionality. (#34) 2022-01-09 08:03:32 -08:00
test_driver.h x button runs all tests for current test suite. issue #7 (#28) 2021-12-29 11:51:05 -05:00
test_host.cpp Adds mode to exercise inline buffer handling. (#31) 2022-01-07 17:13:20 -08:00
test_host.h Adds mode to exercise inline buffer handling. (#31) 2022-01-07 17:13:20 -08:00
texture_format.cpp Factors tests into separate files. 2021-11-10 16:37:51 -08:00
texture_format.h Adds material and fixed pipeline tests. 2021-12-18 08:30:59 -08:00
vertex_buffer.cpp Adds tests for lighting without specifying normals. (#26) 2021-12-28 11:29:55 -08:00
vertex_buffer.h Adds mode to exercise inline buffer handling. (#31) 2022-01-07 17:13:20 -08:00

nxdk_pgraph_tests

Various tests for nv2a rendering.

Based on code from https://github.com/Ernegien/nxdk/tree/test/texture-formats/samples/texture-formats

Golden test results from XBOX hardware are available here

Usage

Tests will be executed automatically if no gamepad input is given within an initial timeout.

Individual tests may be executed via the menu.

Controls

DPAD:

  • Up - Move the menu cursor up. Inside of a test, go to the previous test in the active suite.
  • Down - Move the menu cursor down. Inside of a test, go to the previous test in the active suite.
  • Left - Move the menu cursor up by half a page.
  • Right - Move the menu cursor down by half a page.
  • A - Enter a submenu or test. Inside of a test, re-run the test.
  • B - Go up one menu or leave a test. If pressed on the root menu, exit the application.
  • X - Run all tests for the current suite.
  • Start - Enter a submenu or test.
  • Back - Go up one menu or leave a test. If pressed on the root menu, exit the application.
  • Black - Exit the application.

Build prerequisites

This test suite requires some modifications to the pbkit used by the nxdk in order to operate.

Use the pbkit_extensions branch in https://github.com/abaire/nxdk

NOTE: By default this project expects to be run on a devkit (e:\DEVKIT must exist). If you wish to run on a retail system, pass DEVKIT=n as a parameter when invoking make.

Running with CLion

Create a build target

  1. Create a new Embedded GDB Server target
  2. Set the Target to all
  3. Set the Executable to main.exe
  4. Set Download executable to None
  5. Set 'target remote' args to 127.0.0.1:1234
  6. Set GDB Server to the path to the xemu binary
  7. Set GDB Server args to -s -S (the -S is optional and will cause xemu to wait for the debugger to connnect)

To capture DbgPrint, additionally append -device lpc47m157 -serial tcp:127.0.0.1:9091 to GDB Server args and use something like pykdclient.

Deploying with xbdm_gdb_bridge

The Makefile contains a deploy target that will copy the finished binary to an XBOX running XBDM. This functionality requires the xbdm_gdb_bridge utility.