mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-30 19:23:20 +08:00
Removed redundant stress-testing code
This commit is contained in:
parent
7c7f89385e
commit
24e1ddc210
@ -3932,24 +3932,24 @@
|
||||
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450",
|
||||
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
|
||||
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/7e/ef/160b7c29aecf8594ce1aa3bb4d9f",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/88/29/515b5c5def018fac0176b966bd93",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e2/4e/146ae464fad04c9a41ae0d7e01f3",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7a/14/febc99c12dabf2c09cf7969bd82f",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ed/78/7f2d157baabca2fb67b29d95c730",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e4/0e/05afd617a3333be2cebc6e7937f9",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/47/49/9aef6c1fc8986c36740ae8ae5c83",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/de/0c/e9bedd01292d103d92b8be7e9076",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/29/02/166905a0cfcb78acccd082a5d77e",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7a/76/df87e67aef1847f9cc4f6d8bc43b",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/d1/3d/431f9304a0c9eeb87d93af764bb6",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/da/02/41c7bbfefbae5518f2faa2631a01",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ce/ff/e8e6e21f17613013e2f9913c14b2",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ce/7f/0b7ed6b14d89aee166a1ddf11fa7",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/32/28/ffd1e357804e1d04661b3ae003e4",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c6/53/148ab447516b331f61f7a8198e93",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/45/e4/6682f99b25aea143469fbd65df64",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/82/1b/ceda2fa0e2af6f635e5e4d0fbe08",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/37/47/3e2a0923c4c24919f10407ae5918",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/71/a6/d3a856747ed2bdf69092bb5fb8c9",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b6/04/c8f17b9768a9369c905ab4d34714",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/9e/3f/f951c9da358f124f727924fc7d5d",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/a3/7b/b640eee424317a21f87353fe7eb7",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/78/de/bffe8a4f2fdac497302adf69f6ef",
|
||||
"build/prefab/lib/linux_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/8a/aaeb70e76d31ce2686bee5cc4c14",
|
||||
"build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fd/cd/3397d744c7405740df4d4ae567f0",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c2/5b/ad020af2e062e5caff25e7d0aec4",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/40/8e0cc564f49f8963803834ec7995",
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bd/15/6ddf0c20288b9f72e5dd2c16a62a",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b1/d0/fe3646d8225126baafec16641a93",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/23/b6/ada9721f37bc2a090fde0d0a1d83",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/99/4c/d5dd9bc0b501dcb0d817f8166243"
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/79/ef/70da9bfe3198a8ef252fdac9985c",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/2c/3b/3a38efe86d7659542cb11ae28595",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/42/fd/ae04337fbde55e248f13c05c2488",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/87/13/13038835d3b912db1f02f0a2aa67"
|
||||
}
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
#include "ballistica/app/app.h"
|
||||
|
||||
#include "ballistica/app/stress_test.h"
|
||||
#include "ballistica/core/thread.h"
|
||||
#include "ballistica/game/game.h"
|
||||
#include "ballistica/graphics/graphics_server.h"
|
||||
@ -15,7 +16,8 @@
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
App::App(Thread* thread) : Module("app", thread) {
|
||||
App::App(Thread* thread)
|
||||
: Module("app", thread), stress_test_(std::make_unique<StressTest>()) {
|
||||
assert(g_app == nullptr);
|
||||
g_app = this;
|
||||
|
||||
@ -128,7 +130,8 @@ void App::ShutdownComplete() {
|
||||
void App::RunEvents() {
|
||||
if (!HeadlessMode()) {
|
||||
// there's probably a better place for this...
|
||||
UpdateStressTesting();
|
||||
// UpdateStressTesting();
|
||||
stress_test_->Update();
|
||||
}
|
||||
|
||||
// Give platforms a chance to pump/handle their own events.
|
||||
@ -365,23 +368,7 @@ void App::PushStringEditCall(const std::string& name, const std::string& value,
|
||||
|
||||
void App::PushSetStressTestingCall(bool enable, int player_count) {
|
||||
PushCall([this, enable, player_count] {
|
||||
bool was_stress_testing = stress_testing_;
|
||||
stress_testing_ = enable;
|
||||
stress_test_player_count_ = player_count;
|
||||
|
||||
// If we're turning on, reset our intervals and things.
|
||||
if (!was_stress_testing && stress_testing_) {
|
||||
// So our first sample is 1 interval from now...
|
||||
last_stress_test_update_time_ = GetRealTime();
|
||||
// Reset our frames-rendered tally.
|
||||
if (g_graphics && g_graphics_server->renderer()) {
|
||||
last_total_frames_rendered_ =
|
||||
g_graphics_server->renderer()->total_frames_rendered();
|
||||
} else {
|
||||
// Assume zero if there's no graphics yet.
|
||||
last_total_frames_rendered_ = 0;
|
||||
}
|
||||
}
|
||||
stress_test_->SetStressTesting(enable, player_count);
|
||||
});
|
||||
}
|
||||
|
||||
@ -415,69 +402,4 @@ void App::PushCursorUpdate(bool vis) {
|
||||
});
|
||||
}
|
||||
|
||||
void App::UpdateStressTesting() {
|
||||
// Handle a little misc stuff here.
|
||||
// If we're currently running stress-tests, update that stuff.
|
||||
if (stress_testing_ && g_input) {
|
||||
// Update our fake inputs to make our dudes run around.
|
||||
g_input->ProcessStressTesting(stress_test_player_count_);
|
||||
|
||||
// Every 10 seconds update our stress-test stats.
|
||||
millisecs_t t = GetRealTime();
|
||||
if (t - last_stress_test_update_time_ >= 10000) {
|
||||
if (stress_test_stats_file_ == nullptr) {
|
||||
assert(g_platform);
|
||||
std::string f_name =
|
||||
g_platform->GetUserPythonDirectory() + "/stress_test_stats.csv";
|
||||
stress_test_stats_file_ = g_platform->FOpen(f_name.c_str(), "wb");
|
||||
if (stress_test_stats_file_ != nullptr) {
|
||||
fprintf(stress_test_stats_file_,
|
||||
"time,averageFps,nodes,models,collideModels,textures,sounds,"
|
||||
"pssMem,sharedDirtyMem,privateDirtyMem\n");
|
||||
fflush(stress_test_stats_file_);
|
||||
if (g_buildconfig.ostype_android()) {
|
||||
// On android, let the OS know we've added or removed a file
|
||||
// (limit to android or we'll get an unimplemented warning)
|
||||
g_platform->AndroidRefreshFile(f_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stress_test_stats_file_ != nullptr) {
|
||||
// See how many frames we've rendered this past interval.
|
||||
int total_frames_rendered;
|
||||
if (g_graphics && g_graphics_server->renderer()) {
|
||||
total_frames_rendered =
|
||||
g_graphics_server->renderer()->total_frames_rendered();
|
||||
} else {
|
||||
total_frames_rendered = last_total_frames_rendered_;
|
||||
}
|
||||
float avg =
|
||||
static_cast<float>(total_frames_rendered
|
||||
- last_total_frames_rendered_)
|
||||
/ (static_cast<float>(t - last_stress_test_update_time_) / 1000.0f);
|
||||
last_total_frames_rendered_ = total_frames_rendered;
|
||||
uint32_t model_count = 0;
|
||||
uint32_t collide_model_count = 0;
|
||||
uint32_t texture_count = 0;
|
||||
uint32_t sound_count = 0;
|
||||
uint32_t node_count = 0;
|
||||
if (g_media) {
|
||||
model_count = g_media->total_model_count();
|
||||
collide_model_count = g_media->total_collide_model_count();
|
||||
texture_count = g_media->total_texture_count();
|
||||
sound_count = g_media->total_sound_count();
|
||||
}
|
||||
assert(g_game);
|
||||
std::string mem_usage = g_platform->GetMemUsageInfo();
|
||||
fprintf(stress_test_stats_file_, "%d,%.1f,%d,%d,%d,%d,%d,%s\n",
|
||||
static_cast<int>(GetRealTime()), avg, node_count, model_count,
|
||||
collide_model_count, texture_count, sound_count,
|
||||
mem_usage.c_str());
|
||||
fflush(stress_test_stats_file_);
|
||||
}
|
||||
last_stress_test_update_time_ = t;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ballistica
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
#define BALLISTICA_APP_APP_H_
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
@ -132,15 +133,11 @@ class App : public Module {
|
||||
bool sys_paused_app_{};
|
||||
bool user_paused_app_{};
|
||||
bool actually_paused_{};
|
||||
std::unique_ptr<StressTest> stress_test_;
|
||||
millisecs_t last_resize_draw_event_time_{};
|
||||
millisecs_t last_app_resume_time_{};
|
||||
std::map<std::string, std::string> product_prices_;
|
||||
std::mutex product_prices_mutex_;
|
||||
FILE* stress_test_stats_file_{};
|
||||
millisecs_t last_stress_test_update_time_{};
|
||||
int last_total_frames_rendered_{};
|
||||
bool stress_testing_{};
|
||||
int stress_test_player_count_{8};
|
||||
};
|
||||
|
||||
} // namespace ballistica
|
||||
|
||||
@ -10,6 +10,26 @@
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
void StressTest::SetStressTesting(bool enable, int player_count) {
|
||||
bool was_stress_testing = stress_testing_;
|
||||
stress_testing_ = enable;
|
||||
stress_test_player_count_ = player_count;
|
||||
|
||||
// If we're turning on, reset our intervals and things.
|
||||
if (!was_stress_testing && stress_testing_) {
|
||||
// So our first sample is 1 interval from now...
|
||||
last_stress_test_update_time_ = GetRealTime();
|
||||
// Reset our frames-rendered tally.
|
||||
if (g_graphics && g_graphics_server->renderer()) {
|
||||
last_total_frames_rendered_ =
|
||||
g_graphics_server->renderer()->total_frames_rendered();
|
||||
} else {
|
||||
// Assume zero if there's no graphics yet.
|
||||
last_total_frames_rendered_ = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StressTest::Update() {
|
||||
assert(InMainThread());
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ class StressTest {
|
||||
// This used to get run from RunEvents() in App.
|
||||
void Update();
|
||||
|
||||
void SetStressTesting(bool enable, int player_count);
|
||||
|
||||
private:
|
||||
FILE* stress_test_stats_file_{};
|
||||
millisecs_t last_stress_test_update_time_{};
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't change here.
|
||||
const int kAppBuildNumber = 20219;
|
||||
const int kAppBuildNumber = 20220;
|
||||
const char* kAppVersion = "1.5.27";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -174,6 +174,7 @@ class Sound;
|
||||
class SoundData;
|
||||
class SpriteMesh;
|
||||
class StackWidget;
|
||||
class StressTest;
|
||||
class StdInputModule;
|
||||
class Module;
|
||||
class TelnetServer;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user