17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-31 23:59:03 +01:00

perf(gl46): the geometry of the banks without user data in a few large buffers shared by them, so the multi draws take the chunks of many models at once (gfx.geometry.shared)

This commit is contained in:
2026-10-24 01:49:02 +02:00
parent e53c44ed4d
commit 6bcdb7dd05
8 changed files with 306 additions and 56 deletions

View File

@@ -1552,6 +1552,11 @@ global_settings::ConfigParse_gfx( cParser &Parser, std::string_view const Token
Parser.getTokens(1);
Parser >> gfx_gpucull_walkcache;
}
else if (Token == "gfx.geometry.shared")
{
Parser.getTokens(1);
Parser >> gfx_geometry_shared;
}
else if (Token == "gfx.depthprepass.scene")
{
Parser.getTokens(1);
@@ -2130,6 +2135,7 @@ global_settings::export_as_text( std::ostream &Output ) const {
export_as_text( Output, "gfx.gpucull.models", gfx_gpucull_models );
export_as_text( Output, "gfx.gpucull.bucketrange", gfx_gpucull_bucketrange );
export_as_text( Output, "gfx.gpucull.walkcache", gfx_gpucull_walkcache );
export_as_text( Output, "gfx.geometry.shared", gfx_geometry_shared );
export_as_text( Output, "gfx.depthprepass.scene", gfx_depthprepass_scene );
export_as_text( Output, "gfx.depthprepass.replay", gfx_depthprepass_replay );
export_as_text( Output, "gfx.grass", gfx_grass );

View File

@@ -327,6 +327,9 @@ struct global_settings {
// made again only when the model changes: the trees of animated models, ones lit by the luminance and the models drawn on their
// own are walked every time
bool gfx_gpucull_walkcache = true;
// (opengl 4.6) the geometry of the banks without user data (models, scenery) is kept in a few large buffers shared by them, so
// the multi draws can take the chunks of many models at once. read when a bank sets its buffers up (load time)
bool gfx_geometry_shared = true;
// (opengl 4.6) the depth of the whole opaque scene of the main view is drawn before its colour, the instances included
bool gfx_depthprepass_scene = false;
// (opengl 4.6) the depth pass of the scene (gfx_depthprepass_scene, or the one of the contact shadows) walks the scene for