New info: I've discovered that the game is only using a single CPU thread, and the GPU usage is low (as expected). I'm only getting 30-40 fps in a battle with 600 DP.
Setting priority to high via task manager did nothing. I noticed on the "set affinity" tab that the java process is set to use all 16 threads.
Edit: corrected "core" to "thread". I quickly read more and realized that the game is only supposed to run on one CPU core, aside from music and a few other things. However, is it possible that this is the real bottleneck? Should it be using two threads, since that's one core?
My CPU is i7 11700K. Ty for any advice / info. Or happy to provide more info.
Edit2: just went into bios and turned on "gaming mode" for the CPU. It bumped the core voltage up (instead of auto) and set the CPU fan high, plus made some multiplier changes (if I said that correctly). End result was my FPS doubled to about 60 in the same fight that I tested previously. Still baffled by 0% idle during paused combat, though.
A 3080 has many times more VRAM than is necessary to use GraphicsLib, so I really have no idea why having the mod enabled (in and of itself) is affecting your idle %. That said, the idle % metric can be really misleading. As long as your frame rate is acceptable, that's really the only thing that matters.
Starsector is inherently CPU-bottlenecked in that it only uses one thread; nothing short of a significant rewrite could utilize multiple threads in a meaningful way. 11th gen Intel CPUs tend to run blazing hot when they're utilized to the fullest, which is probably why your motherboard has a separate "gaming mode". It's probably an enhanced variant of "Multi-Core Enhancement", which essentially disables your CPU's TDP limits and lets it run as hot/power-hungry as possible. As you saw, it's a huge boost in performance, especially for CPU-bound games like Starsector.
As for GraphicsLib, having shaders enabled WILL affect performance, even if you're not GPU-limited. The reason for this is that, as Starsector is single-threaded, the extra graphics API calls are also made on that one thread, so there's more work for the CPU to do. The performance cost is generally around 15-30%, depending on your exact settings/situation.
Could you set up a standard test (say, a campaign battle that you can deploy-all, then zoom out and wait a few seconds, and then record the frame rate)? You'd want to test these scenarios:
1. Framerate with GraphicsLib disabled
2. Framerate with GraphicsLib enabled
3. Framerate with GraphicsLib enabled but after the battle starts you disable shaders by pressing pause/break