17 Commits
Author SHA1 Message Date
icex2 c67053f3d3 fix: Missing closing bracket (#336)
Fix mistake that happened during conflict resolution
before the merge.
2025-02-19 19:49:09 +01:00
icex2 ccbd47428f feat(nvgpu): Add —overwrite-exists flag for profile creation (#335)
When running this in a script on startup to ensure
whatever configuration is required to be created is
created, this avoids several commands to first
check if the profile exists, delete it, then re-create it.
2025-02-19 19:45:43 +01:00
icex2 8b89748ccf fix(nvgpu): Initialize value of parameter to fix INVALID_ARGUMENT (#334)
As stated by the documentation in nvapi.h, path_info_count
must be set to the value 0 in this case.
2025-02-19 19:42:11 +01:00
icex2 9a7285bb91 fix(nvgpu): Missing error handling not returning (#333)
If fetching the configuration fails, don’t continue with
processing any non-existing data.
2025-02-19 19:41:06 +01:00
icex2 366f0090a9 chore: Remove TODO (#332)
Forgot to remove that after adressing the issue of needing
three calls in nvgpu to get the config data correctly.
2025-02-19 19:39:51 +01:00
icex2 d781905d83 feat: Extend monitor check tool, vsync and response time tests (#331)
Adding two more tests that have been proven very useful
for debugging monitor issues that caused problems with IIDX.

The vsync test flickers a text snippet between red and cyan on
every even and uneven frame. If vsync works correctly, the text
appears grey to the human eye. If there are issues like re-displaying
a previous frame or a dropped frame, this appears as the text
rendering red or cyan.

The response time test scrolls two simple blocks/lines vertically
to check if they creating ghosting/smearing on the display.

The tool now supports an interactive and command line mode.

Interactive mode is useful for running different tests on the setup
while the command line mode can be used to ran these tests
with fixed parameters and for a fixed amount of time, e.g. in a shell
script, for automation purpose.

The tool still has a few obvious imperfections like scaling issues on
different resolutions. Considering the basic functionality is given,
further improvements can follow in future iterations.
2025-02-19 19:38:31 +01:00
icex2andicex2 e0ff83f664 feat: d3d9-frame-graph-hook, add frame rate graph view (#330)
Have a checkbox to switch to a frame graph focused view
which saves a bunch of math when it’s more useful to
focus on the frame/refresh rate than the frame time values.

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 15:10:05 +01:00
icex2andicex2 972acb5f0e feat: nvgpu, add option to enable gpu scaling (#329)
GPU scaling allows high quality upscaling of older games
to the native resolution of the screen. The output frame
quality is significantly sharper than the fairly simple
frame buffer upscaling of bemanitools.

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 15:03:34 +01:00
icex2andicex2 233df32372 feat: nvgpu, make test timeout parameter optional (#328)
10 seconds is what the nvidia control panel also
has for the test timeout. Can still be changed if
shorter or longer timeouts are desired, but 10
seconds should be a general fine timeout value
to have this optional.

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 14:51:02 +01:00
icex2andicex2 d07b2094e9 feat: d3d9-monitor-check add result-timeout-secs parameter (#327)
Allow changing the time in seconds how long the results
are being displayed before exiting

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 14:45:45 +01:00
icex2andicex2 7e1e9dabdb feat: d3d9-monitor-check allow skip results (#326)
Allow pressing ESC to skip results and not having
to wait for 5 secs

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 14:36:37 +01:00
icex2andicex2 6146f53ad5 feat: Improve d3d9-monitor-check command line args (#325)
Use more user-friendly seconds for total and warm-up time
instead of frames. Use the refresh rate to calculcate the
total frame count internally for the test.

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-13 14:31:47 +01:00
icex2andicex2 05d55024b6 feat: d3d9-monitor-check tool (#322)
A separate application to run the infamous IIDX “monitor check”.

The on-screen output has been enhanced to provide more
detailed information about the on-going process. The tool
furthermore allows basic querying of adapter and adapter
modes information from the command line. These additional
options can be useful to gather more debug information
or select correct parameters for the monitor test from actually
supported mode parameters by the adapter.

The tool has been tested on an actual cabinet with nvgpu
setting different custom timings. The accuracy seems to be
even higher than what IIDX’s monitor check is actually showing.
For example, with a custom timing of 59.900, the tool yields 59.902.
Meanwhile, the monitor check of iidx 29 59.8981 hz to 59.8997 hz
on screen.

This doesn’t mean the game’s getting inaccurate values. The game
actually syncs and plays just fine. However, the game’s monitor check
cannot be used as a reference for “getting the avg. refresh rate”
value as an input parameter for other tools, e.g. chart patching with
btools.

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-12 19:39:19 +01:00
icex2andicex2 cc5c35064c feat: Bump iidxhook9 supported versions, EPOLIS “support" (#324)
No changes required, just make support visible by reflecting
it in distribution package naming, documentation and
filenaming

Co-authored-by: icex2 <djh.icex2@gmail.com>
2025-02-11 15:35:28 +01:00
icex2 50aa6226a3 feat: Add separate d3d9-frame-graph-hook (#321)
Allow this to be hooked by any application with a d3d9
render backend. This is not compatible with d3d9ex.
2025-02-08 23:22:46 +01:00
icex2 ea29b44b70 feat: Add frame time performance graph imgui overlay (#319)
A overlay window showing the a frame time graph with
the current frame time, ~10 seconds of history as well
as reference lines for the current avg. and a configurable
target frame time.

This is considered a debug tool to support in any efforts
that are related to understanding current frame times
of the games. More specifically this can be used to asses
impact of any bemanitools hooking to the game’s main
(render) loop.
2025-02-08 23:21:27 +01:00
icex2 3090b9a029 feat: Add bt d3d9 hook specific imgui overlay (#318)
For now, we focus on internal overlays for bemanitools
that hook into an existing d3d9 context. The current
abstraction is fairly thin and should be fine as a start.

Implementations are called “components” and hook
up with a single frame_update function to execute
and logic and drawing updates with imgui
2025-02-08 23:19:49 +01:00