Hi friends,
I'm very glad to see that the Morroblivion Community is still going strong and thriving. I spent most of 2022 working full-time+ at my job, which was really great since I was finally able to pay off some of my loans and debts. My job also gave me the opportunity to finally upgrade my home development system: Ryzen 7 5700G + Radeon RX 6750 XT, 64GB RAM, 2TB SSD. Over the winter break, I took some time off from work and finally had time to test Morroblivion with this new rig....
I had high hopes that the Ryzen 7 5700G + RX 6750XT would finally be able to give me 60 fps minimums in Morroblivion... and it kind of succeeded (in most areas). Almost everywhere, I got at least 60fps -- except the known problem areas like certain areas of Seyda Neen, looking in certain directions (standing on the steps of the tradehouse, looking towards the northern edge of Vivec City). In the problem areas, the FPS dropped down to 40-45fps. As most of you can probably guess, this is due to single-threaded CPU bottle-necking, but I wanted to figure out exactly what it was and what can be done to fix it.
After some investigations using MSI Afterburner to track individual CPU core usage, I verified that a single core was going from average 50% usage to 90-100% usage when on the tradehouse steps facing towards the northern edge of Vivec City. And by turning off Distant Objects, this core usage dropped back down to 50-70%. My current guess is that this is a literal edge case where the viewport is at the edge between two major branches (world quadrants) of the tree data-structure used for drawing Distant Objects and that both branches (world quadrants) are being traversed and drawn instead of just one.
I think the only way to truly fix the above is to hook the Draw Distant Objects function and off-load the tree sorting and traversal to an external thread. You can already use a partial work-around by enabling the FPS manager in Oblivion Reloaded -- what this is actually doing is modifying the Distant Objects maximum draw distance in real-time, however, the all the distant object processing and drawing operations are still being handled by the original game engine in the same single-thread that is handling the rest of the game+graphics processing. What we need to do is either replace the draw distant objects function or the entire draw distant lands+objects+trees graphics pathway (which is what MGE-XE does) and put this processing into a separate thread.
Unfortunately, I probably won't have time to work on Morroblivion this year (I still have well over $100K debt), but maybe next year I will be in a better financial position.
-Best regards and Happy modding and gaming in 2023 to everyone!

Thank you for these tests and summary.
When I started playing Morroblivion 0.66.3b lately, I was shocked by the poor performance in certain areas and/or with certain view angles (eg. in Seyda Neen or Balmora). It seems that the game always processes every object in Morrowind that is in view range, fully neglecting if that object is visible or not. That brings the game to a crawl in Morrowind worldspace, even on PCs with modern hardware that run Cyrodiil just fine.
For me it helped to set "bDisplayLODBuildings=0" in "Oblivion.ini". Now the game runs smooth. Sure, I won't be able to see Vivec City from Seyda Neen anymore, but good performance is more important. After all, I want to play the game and not just take some screenshots.
The only downside with this setting is, that for Vivec cantons some objects pop in a bit earlier than others. It looks strange, but I can live with that.
Also, regarding stability - I advise anyone NOT to use Oblivion Reloaded, no matter what version. It's full of bugs and causes crashes all the time. I don't understand why people are still using it.
In my opinion, ENBSeries with a good preset like Simple ENB looks equally nice and runs more stable.