Bit of a necro here, but you know how I said you can simply just throw more hardware at the problem and get better results? That's not entirely true. I'm losing my mind here and I'm about at my wits end, but I managed to make my average FPS
worse across multiple OSes and driver packages.
I upgraded my R9 280X to a RX 580. The only way I've managed to bring my FPS back up was to put the old card back in. I thought perhaps there was an issue where Starsector was defaulting to software rendering, but Starsector is definitely utilizing the new GPU, although not much. I tried dropping either the Microsoft software OpenGL render DLL or the 4 ATI OpenGL renders in each of the Java.exe and Starsector.exe folders but this seemingly had no impact on utilization.
My roommate's PC still has no issue running the game (never goes below 30FPS), despite being entirely an AMD setup. His graphics card, a RX 560, is certainly not as good as mine. The positive differences between my current system and my roommate's system are the DDR4 RAM and the better performing Ryzen 5 2600X processor.
Alex had mentioned that the bulk of the work was done on a single thread. I see the Java EXE utilize as much as 40% of my total processor (3 cores/threads maxed out and some extra) but I'm wondering if the actual bottleneck here is one of these cores not being able to handle the load it is given. The processor I currently run, the FX-8350, was manufactured about a year before development for Starfarer really kicked off AFAIK. The gimmick behind the processor was the insane number (at the time) of physical cores on the die, 8 in total. Multi-threaded applications excelled and single-threaded applications suffered. For years, Intel had the lead in single core performance. We can generalize that Intel users would prefer nVidia GPUs over AMD and compound the very real issue of poor OpenGL drivers from AMD with the worse single-core performance that AMD CPUs have provided for the past half decade. The A10 APU series are no exception to this.
It may seem like a GPU issue and it definitely feels like one, but I'm no longer convinced it is.
I've repeated tests of both 2D and 3D OpenGL applications on both of my GPUs, most of which have used OpenGL 3.0-4.5, with no real issues with performance. The very simplistic OpenGL Extensions Viewer rendering test using the legacy OpenGL Context for OpenGL 1.2 showed nearly identical performance to that of a modern context running OpenGL 4.5, but again, this doesn't tell me a whole lot. "Modern" games that use OpenGL as their API (almost entirely 3D rendering...) don't generally seem to have the same kind of performance variance that Starsector does, at least not with my testing. This makes me lean more and more towards this month long goose chase actually just being Starsector's single-thread performance requirements being a lot higher than I anticipated and no one realizing this because of other very real issues concerning AMD hardware. Even the majority of older Intel laptops have better single-thread performance than my CPU. Sheesh.
I'll try to enlist some of my esports students in testing the game. I may however get the Netbeans Java profiler and start drilling down into specific items that may be thread-bound. The Starsector on PS3 idea sounds more and more enticing
If you came to this thread thinking you may have an AMD GPU issue, read carefully and consider what your CPU is capable of on a single-thread basis. You probably still have an AMD GPU based OpenGL problem, but don't waste time like I did using a CPU that most likely is not capable of running the game adequately.