883 Commits

Author SHA1 Message Date
Alayan
97faf4a492 Move the camera files in a subfolder 2024-05-20 12:07:06 +02:00
Alayan
dca91a6ee8 Move the start benchmark function to the profiler
This simplifies its reuse for the recommend video settings function
2024-05-20 11:46:06 +02:00
Alayan
1c58f0154f Add graphics settings to the perf report 2024-05-11 20:33:03 +02:00
Alayan
e83fdc9324 Display a basic summary of benchmark results 2024-05-07 17:11:16 +02:00
Alayan
543ee92e00 Confirm the performance report saving to the user
Also fix a compilation issue with compilers not recognizing uint
2024-04-26 16:50:50 +02:00
Alayan
792c1e0926 Compute new performance metrics and improve saving of profiler data
* Format the standard CPU and GPU profiler data as CSV, to simplify its analysis
* Include the internal identifier name of the track in the report name, or 'menu' if there is no active track. This uses the current track at the time of report saving. It is possible to keep the profiler on through multiple tracks and menus, but it's on people enabling the artist debug mode and the profiler to use it sensibly
* Stop the profiler when saving data, if it's not already stopped
* Compute, when profiling is stopped, for all integer FPS values up to 1000, three key metrics:
 - The number of frames too slow to reach this FPS value
 - The proportion of total time spent in frames slower than this FPS value
 - The proportion of total time spent in frames beyond the maximum duration associated with this FPS value
* Compute three key indicator values:
 - Steady FPS (highest FPS with no more than 1% time spent in slower frames and no more than 0.1% time spent beyond the maximum duration)
 - Mostly stable FPS (highest FPS with no more than 12% time spent in slower frames and no more than 2% time spent beyond the maximum duration)
 - Typical FPS (highest FPS with no more than 50% time spent in slower frames and no more than 10% time spent beyond the maximum duration)
* Save an additional 'perf-report' containing this new data

 Traditional performance measurements, such as average FPS and 1% lows (which are typically based on the 1% slowest frames, not on the 1% slowest gameplay time), are flawed because they unduly reward outputting more fast frames. Increasing the number of fast frames without speeding up the slow frames is useless when it comes to making the game feel smooth, which is especially critical in a racing game.

 Missing features:
 - Displaying a summary of the performance test instead of the normal end screen
 - Confirm to the user that the report has been successfully saved
 - And more advanced options.
2024-04-26 16:11:55 +02:00
Alayan
171ac3c0b0 Adapt the pause menu in benchmark mode
* Use explicit activation and desactivation functions for the profiler to improve code clarity and robustness
* In the pause dialog, only display the 'back to race' and 'exit' buttons in benchmark mode
* Relabel the buttons in the pause menu in benchmark mode
* Use 'Performance test' in user-facing texts to ensure better translations
* Fix parts of the UI disappearing when leaving the pause menu in benchmark mode

Additional known issue introduced in the previous benchmark commit:
* With big text sizes, the performance test button overflows in the graphics settings.
2024-04-24 13:29:05 +02:00
Deve
754a11030e Update gradle and android build script 2024-04-18 17:20:09 +02:00
Alayan
a6cecd2279 First steps for a benchmark mode
* Add a button in the graphics options to start a benchmark
* Added logic to play a custom replay for benchmarking
* Added logic to automatically start and end the profiling as the race starts and ends, when in benchmark mode
* Disable the profiler drawings in benchmark mode, they take additional resources and are useless
* Keep the race going when the pause menu is opened, as it would otherwise distort the results
* Added logic to clean up the profiler data each time profiling is switched back from off to on. This avoids multiple profiling sessions piling up in one report, for example when benchmarking tw
* Added a sped up Black Forest replay for use during the benchmark

Missing features and known issues:
* The end screen should display a benchmark result summary instead of a normal end screen
* Entering and leaving the pause menu in benchmark mode makes some parts of the race UI disappear
* The end screen should send the player back to the graphics settings, not the main menu
* Pausing and quitting can leave the profiler enabled when it should not be
* The options in the pause menu should be customized in benchmark mode
* The replay used for benchmarking should be configurable in a data file
* Automatically testing multiple graphics settings and providing an overall summary
* And more advanced options.
2024-04-16 05:46:30 +02:00
Newow
41609ef69a Add fflush(stdout) after writing to stdout with printf
fixes issues with backlog when server is running through a pipe
2023-06-11 14:55:53 +06:00
Benau
f9d10fe9ff Don't pause in network game for debug dialog 2023-03-30 08:14:47 +08:00
Benau
dcc7397668 Make dumpAllTextures usable in legacy video drivers 2023-03-03 22:35:58 +08:00
Benau
a85bf04b1c Update download assets size 2023-01-09 16:24:41 +08:00
Benau
641dbcf9c0 Add support for 3-letter language code in android 2022-11-26 11:11:55 +08:00
Benau
a688912872 Remove IrrlichtDevice.h and IVideoDriver.h in header files 2022-11-17 11:09:56 +08:00
Benau
d170f0f445 Remove irrlicht.h in remaining code if unneeded 2022-11-17 08:46:54 +08:00
Benau
ec76b29633 Fix android compilation 2022-11-17 08:14:41 +08:00
Benau
013d604846 Update download assets size 2022-11-12 09:19:23 +08:00
Benau
cab25432c2 Update download assets size 2022-10-30 16:50:27 +08:00
Benau
4f0b9644a8 Update download assets size 2022-09-19 11:23:44 +08:00
Benau
dd6768911d Build for armv7 windows
No installer as armv7 windows has no x86 emulation
2022-09-18 23:54:44 +08:00
Benau
3e2de9419e Update download assets size 2022-08-24 12:00:07 +08:00
QwertyChouskie
4f32435ef2 Tweaks to crash report dialog (#4789)
* Use error icon in crash report dialog

Found this change when going through old folders, looks like it never made it in.

* Update crash error message

Improve grammar; avoid reports for one-off errors; link to proper subforum (id 17 is STK General)
2022-08-05 18:08:20 +08:00
Benau
593f78a230 Move MiniGLM to graphics engine folder 2022-07-24 12:22:06 +08:00
Benau
d2da2e22e1 Avoid address sanitizer error 2022-05-04 10:42:16 +08:00
Benau
993073b7dc Update download assets size 2022-04-16 13:16:44 +08:00
David Carlier
37a57d0011 Fix build for Haiku and a handful of other oses with the spirv-tools dependency. 2022-03-26 15:05:08 +00:00
David Carlier
18018a5cc1 scoped deref mem utils intro proposal.
trying out in two cases for now.
2022-03-06 19:02:15 +00:00
Benau
dcdc66b8f5 Fix undefined behavior in C++20, see #4735 2022-02-25 11:13:27 +08:00
David CARLIER
1f0ea77f80 illumos port. (#4732)
overcoming sun constant defined in this platform.
forcing 64 bits build as angelscript assembly is incorrect for 32 bits.
2022-02-13 00:31:14 +08:00
Semphriss
96c0d167bf Items animation (#4713) 2022-01-25 13:07:04 +08:00
Benau
33e6110737 Update localized language names and use tsv file for them 2021-11-15 10:58:48 +08:00
Benau
712822a5f5 Update download assets size 2021-11-12 10:23:41 +08:00
Benau
fa1ddbd839 Remove compiler warning 2021-10-01 12:57:07 +08:00
Benau
d0f4c8ffee Update download assets size 2021-09-28 15:48:26 +08:00
Benau
b3c3b4c729 Remove unused code 2021-09-10 11:19:24 +08:00
Benau
0fc1bd961f Fix OS string in Switch Homebrew 2021-09-10 10:46:21 +08:00
Benau
da881ac459 Update download assets size 2021-08-30 16:06:19 +08:00
Benau
f1f5a47bcf Update download assets size 2021-08-25 15:18:15 +08:00
Benau
08a97f7ae5 Update download assets size 2021-05-08 11:20:28 +08:00
Benau
6e26a0ad80 Add crash reporting support for ARM64 Windows and fix typo for x86_64 2021-04-27 16:07:12 +08:00
Benau
2ef63f997e Allow texture console reloading GEGLTexture 2021-04-17 13:16:27 +08:00
Benau
4bc85a6179 Allow translating in UTF8 2021-03-20 11:22:06 +08:00
Benau
9767f73da6 Don't make debug message translatable 2021-03-13 00:50:54 +08:00
Mary
cc125c5f68 Switch fixes (#4503)
* InputManager: support split joycons, fix mappings

* CFileSystem: getAbsoluteFilename() - replace double slashes

* CFileSystem: typo in macro

* debug: use touch handler for debug (strange behaviour on switch SDL)

* InputManager: don't need SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS
2021-03-09 23:42:48 +08:00
Benau
cee737e405 Fix incorrect shortcut help 2021-03-09 15:08:08 +08:00
Richard Qian
969de9e751 Improved artist debug mode (#4501)
* Add more functionality to the debug menu

Includes:
* Front of kart view
* Inverse side of kart view
* Change to kart #9 or #10
* Attachments for AI karts

* Fix enumeration value not handled in switch for debug camera

* More enhancements to the debug menu, part 2

Includes:
* Restore access to the anchor/anvil powerup
* Clear the current powerup or attachment
* Change to kart #11 or #12
* Flatten karts as if they were hit by a swatter
* Block most of the view with plungers

* Enable executing some keypress actions from the debug menu in a new sub-menu

Includes:
* Rescuing karts from menu
* Pausing the game from menu (but keypresses will cause the game to crash)
* Moved "To next kart" menu entry to be right below "To previous kart" for easier reach

* Change print kart positions to info level, better labeling of side kart views

* Prevent crashes when trying to use 'Behind wheel view' on a ghost kart

* Add close button to the debug slider dialog, and a function to enable/disable spinners

* Make it easier to read and select kart camera targets from the debug menu

* Add another dialog (reusing the debug slider code) to allow the user to select
from a slider the kart number to change to

* The 11th and 12th target slots have been removed to make the submenu cleaner,
but the 9th and 10th slots have been left in place

* The predefined slots (1st place to 10th place) actually use numbers

* Improve the appearance of the FPS (frames per second) counter

* Shift the position closer to the center, so that in-race kart icons are not obscured
* The box and text position adapt based on the screen resolution
* Use a thin black border for the font, and make the font white-colored
* Decrease the font scaling to 0.7, so that other UI elements can be seen more easily

* Improve debug keyboard shortcuts handling, rearrange some shortcuts

Most shortcuts are now handled by Debug instead of InputManager directly
Other changes include:
* Fix moving right in 1st-person view not working
* Change the 1st-person view shortcuts to work more like in Blender
* Add more keyboard shortcuts for quickly seeing the top and sides of a kart
* The key to show player list in soccer mode no longer needs to be held down
* Rearrange some shortcuts to flow more naturally

New list of debug keyboard shortcuts:
* F1 - Normal view
* F2 - Top view
* F3 - Right side of kart view
* F4 - Left side of kart view
* F5 - 1st-person view
* F6 - Reload SP textures
* F7 - Next kart
* F8 - Previous kart
* F9 - Show player list in soccer mode
* Q - Move 1st-person view camera down
* E - Move 1st-person view camera up
* R - Rotate 1st-person view camera right
* F - Rotate 1st-person view camera left

* Exit demo mode when there also are no dialogs active; fixes related crashes

* Improve the debug menu, various fixes to some menu items, and mouse-accessible actions

Includes:
* Debug menu opens at the cursor position, but not at off-screen places
* Ensure that the debug menu stays (almost) within the actual window
* Middle mouse button can also be used to access the debug menu
* Move all items into submenus, rearrange most submenus to keep a compact size
* Add ability to set powerup and nitro amount by debug slider dialog
* Label the some commands with the new keyboard shortcuts
* Screenshots can now be saved via the debug menu
* Texture reloading can now be done via the debug menu

* Add more debug shortcut keys, change many of the existing ones

The full shortcuts list will be explained later

Includes:
* Use Control and Shift keys to fit more shortcuts onto fewer keys
* Label the debug menu items with the keys that can be used to activate them
* Fix more debug menu items causing game crashes in certain situations
* Add help message dialog to tell users the list of static/debug shortcuts; incomplete
* Slightly alter the free margins that the debug menu can appear in
* Render target textures (RTT) can now be dumped via the debug menu
* Replace the 10th kart camera target with the last kart camera target
* Switch the shortcuts used for activating history save and manual replay saving

* Finish labelling the remaining debug actions, complete the debug keys help dialog

Unfortunately, the now unused tutorial message dialog has been repurposed for this use,
and the font sizes greater than 'Large' will cause some text to draw outside the dialog

* Document the remaining command-line parameters, clean up some of them

This adds another method that will print out the previously undocumented debug options

Rename --gamepad-visuali[s,z]ation to --gamepad-visuals

Also fix some comments related to the user config, including the game mode numbers

* The AI cannot handle the anvil powerup anymore, but it won't spam logs anymore
2021-03-08 11:23:28 +08:00
Mary
d9b8b7acad Support for Nintendo Switch (#4491)
* WIP support for Nintendo Switch

* OpenAL is usable

* Remove some debug code, add manual crash when DEBUG_NXLINK is on

* Remove more debug logs

* Support touch, account name detection, language detection. Remove resolution settings

* Stylistic changes

* SFXManager: update on main thread

* Add build script, remove crypto.hpp changes, disable opengl recorder on switch

* make: use sudo where needed, libs=>lib, portlib=>portlibs

* make: build harfbuzz with freetype

* main: remove DEBUG_NXLINK

* socket_address: this comment is no longer relevant

* Fix indentation in SDL, remove extra debug logs from InputManager

* InputManager: make log debug, not info

* CMakeLists: add mbedtls include dirs on switch

* main: deinitialize stuff

* main_loop: fix format
2021-03-04 09:23:23 +08:00
David CARLIER
eb5bb253f3 debugging current thread id on apple too 2021-01-22 20:44:57 +00:00
David Carlier
edcf9cb624 OpenBSD utility build update. 2020-12-24 16:17:51 +00:00