master #7

Merged
BRNSystems merged 95 commits from Mirrorlandia_minetest/minetest:master into master 2024-01-28 00:16:42 +01:00
3 changed files with 2 additions and 124 deletions
Showing only changes of commit 89eabb5803 - Show all commits

@ -108,13 +108,6 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
return false; return false;
} }
// Speed tests (done after irrlicht is loaded to get timer)
if (cmd_args.getFlag("speedtests")) {
dstream << "Running speed tests" << std::endl;
speed_tests();
return true;
}
if (m_rendering_engine->get_video_driver() == NULL) { if (m_rendering_engine->get_video_driver() == NULL) {
errorstream << "Could not initialize video driver." << std::endl; errorstream << "Could not initialize video driver." << std::endl;
return false; return false;
@ -394,7 +387,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
if (cmd_args.exists("password-file")) { if (cmd_args.exists("password-file")) {
std::ifstream passfile(cmd_args.get("password-file")); std::ifstream passfile(cmd_args.get("password-file"));
if (passfile.good()) { if (passfile.good()) {
getline(passfile, start_data.password); std::getline(passfile, start_data.password);
} else { } else {
error_message = gettext("Provided password file " error_message = gettext("Provided password file "
"failed to open: ") "failed to open: ")
@ -451,8 +444,6 @@ bool ClientLauncher::launch_game(std::string &error_message,
int world_index = menudata.selected_world; int world_index = menudata.selected_world;
if (world_index >= 0 && world_index < (int)worldspecs.size()) { if (world_index >= 0 && world_index < (int)worldspecs.size()) {
g_settings->set("selected_world_path",
worldspecs[world_index].path);
start_data.world_spec = worldspecs[world_index]; start_data.world_spec = worldspecs[world_index];
} }
@ -524,15 +515,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
return false; return false;
} }
if (porting::signal_handler_killstatus())
return true; return true;
if (!start_data.game_spec.isValid()) {
error_message = gettext("Invalid gamespec.");
error_message += " (world.gameid=" + worldspec.gameid + ")";
errorstream << error_message << std::endl;
return false;
}
} }
start_data.world_path = start_data.world_spec.path; start_data.world_path = start_data.world_spec.path;
@ -580,104 +563,3 @@ void ClientLauncher::main_menu(MainMenuData *menudata)
if (!g_settings_path.empty()) if (!g_settings_path.empty())
g_settings->updateConfigFile(g_settings_path.c_str()); g_settings->updateConfigFile(g_settings_path.c_str());
} }
void ClientLauncher::speed_tests()
{
// volatile to avoid some potential compiler optimisations
volatile static s16 temp16;
volatile static f32 tempf;
// Silence compiler warning
(void)temp16;
static v3f tempv3f1;
static v3f tempv3f2;
static std::string tempstring;
static std::string tempstring2;
tempv3f1 = v3f();
tempv3f2 = v3f();
tempstring.clear();
tempstring2.clear();
{
infostream << "The following test should take around 20ms." << std::endl;
TimeTaker timer("Testing std::string speed");
const u32 jj = 10000;
for (u32 j = 0; j < jj; j++) {
tempstring.clear();
tempstring2.clear();
const u32 ii = 10;
for (u32 i = 0; i < ii; i++) {
tempstring2 += "asd";
}
for (u32 i = 0; i < ii+1; i++) {
tempstring += "asd";
if (tempstring == tempstring2)
break;
}
}
}
infostream << "All of the following tests should take around 100ms each."
<< std::endl;
{
TimeTaker timer("Testing floating-point conversion speed");
tempf = 0.001;
for (u32 i = 0; i < 4000000; i++) {
temp16 += tempf;
tempf += 0.001;
}
}
{
TimeTaker timer("Testing floating-point vector speed");
tempv3f1 = v3f(1, 2, 3);
tempv3f2 = v3f(4, 5, 6);
for (u32 i = 0; i < 10000000; i++) {
tempf += tempv3f1.dotProduct(tempv3f2);
tempv3f2 += v3f(7, 8, 9);
}
}
{
TimeTaker timer("Testing std::map speed");
std::map<v2s16, f32> map1;
tempf = -324;
const s16 ii = 300;
for (s16 y = 0; y < ii; y++) {
for (s16 x = 0; x < ii; x++) {
map1[v2s16(x, y)] = tempf;
tempf += 1;
}
}
for (s16 y = ii - 1; y >= 0; y--) {
for (s16 x = 0; x < ii; x++) {
tempf = map1[v2s16(x, y)];
}
}
}
{
infostream << "Around 5000/ms should do well here." << std::endl;
TimeTaker timer("Testing mutex speed");
std::mutex m;
u32 n = 0;
u32 i = 0;
do {
n += 10000;
for (; i < n; i++) {
m.lock();
m.unlock();
}
}
// Do at least 10ms
while(timer.getTimerTime() < 10);
u32 dtime = timer.stop();
u32 per_ms = n / dtime;
infostream << "Done. " << dtime << "ms, " << per_ms << "/ms" << std::endl;
}
}

@ -44,8 +44,6 @@ private:
void main_menu(MainMenuData *menudata); void main_menu(MainMenuData *menudata);
void speed_tests();
bool skip_main_menu = false; bool skip_main_menu = false;
bool random_input = false; bool random_input = false;
RenderingEngine *m_rendering_engine = nullptr; RenderingEngine *m_rendering_engine = nullptr;

@ -379,8 +379,6 @@ static void set_allowed_options(OptionList *allowed_options)
allowed_options->insert(std::make_pair("recompress", ValueSpec(VALUETYPE_FLAG, allowed_options->insert(std::make_pair("recompress", ValueSpec(VALUETYPE_FLAG,
_("Recompress the blocks of the given map database.")))); _("Recompress the blocks of the given map database."))));
#ifndef SERVER #ifndef SERVER
allowed_options->insert(std::make_pair("speedtests", ValueSpec(VALUETYPE_FLAG,
_("Run speed tests"))));
allowed_options->insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING, allowed_options->insert(std::make_pair("address", ValueSpec(VALUETYPE_STRING,
_("Address to connect to. ('' = local game)")))); _("Address to connect to. ('' = local game)"))));
allowed_options->insert(std::make_pair("random-input", ValueSpec(VALUETYPE_FLAG, allowed_options->insert(std::make_pair("random-input", ValueSpec(VALUETYPE_FLAG,