Logging options (#234)

* Added config options for logging

* Documentation

* Log everything

* Add RAM/VRAM usage to the log

* add loggingOn-check for memory usage

* Always init GPU stats

* Move functions from logging.h to logging.cpp, remove params from writeFile
pull/253/head
larskraemer 4 years ago committed by GitHub
parent 99cefe96a5
commit ecd84c8cc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,9 +11,9 @@ std::vector<std::string> logFiles;
double fps;
std::vector<logData> logArray;
ofstream out;
int num;
bool loggingOn;
uint64_t log_start, log_end;
logData currentLogData = {};
string exec(string command) {
char buffer[128];
@ -62,8 +62,18 @@ void writeFile(string filename){
out << "os," << "cpu," << "gpu," << "ram," << "kernel," << "driver" << endl;
out << os << "," << cpu << "," << gpu << "," << ram << "," << kernel << "," << driver << endl;
for (size_t i = 0; i < logArray.size(); i++)
out << logArray[i].fps << "," << logArray[i].cpu << "," << logArray[i].gpu << "," << logArray[i].previous << endl;
for (size_t i = 0; i < logArray.size(); i++){
out << logArray[i].fps << ",";
out << logArray[i].cpu_load << ",";
out << logArray[i].gpu_load << ",";
out << logArray[i].cpu_temp << ",";
out << logArray[i].gpu_temp << ",";
out << logArray[i].gpu_core_clock << ",";
out << logArray[i].gpu_mem_clock << ",";
out << logArray[i].gpu_vram_used << ",";
out << logArray[i].ram_used << ",";
out << logArray[i].previous << "\n";
}
out.close();
logArray.clear();
@ -83,7 +93,10 @@ void logging(void *params_void){
while (loggingOn){
uint64_t now = os_time_get();
elapsedLog = now - log_start;
logArray.push_back({fps, cpuLoadLog, gpuLoadLog, elapsedLog});
currentLogData.fps = fps;
currentLogData.previous = elapsedLog;
logArray.push_back(currentLogData);
if (params->log_duration && (elapsedLog) >= params->log_duration * 1000000)
loggingOn = false;

@ -9,26 +9,31 @@
using namespace std;
struct logData{
double fps;
int cpu;
int gpu;
int cpu_load;
int gpu_load;
int cpu_temp;
int gpu_temp;
int gpu_core_clock;
int gpu_mem_clock;
float gpu_vram_used;
float ram_used;
uint64_t previous;
};
extern string os, cpu, gpu, ram, kernel, driver;
extern bool sysInfoFetched;
extern int gpuLoadLog, cpuLoadLog;
extern uint64_t elapsedLog;
extern std::vector<std::string> logFiles;
extern double fps;
extern std::vector<logData> logArray;
extern ofstream out;
extern int num;
extern bool loggingOn;
extern uint64_t log_start, log_end;
extern logData currentLogData;
void logging(void *params_void);
void writeFile(string filename);
string exec(string command);
string get_current_time(void);
void upload_file(void);
void upload_files(void);
void upload_files(void);

@ -538,8 +538,8 @@ struct PCI_BUS {
void init_gpu_stats(uint32_t& vendorID, overlay_params& params)
{
if (!params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats])
return;
//if (!params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats])
// return;
PCI_BUS pci;
bool pci_bus_parsed = false;
@ -585,7 +585,10 @@ void init_gpu_stats(uint32_t& vendorID, overlay_params& params)
nvSuccess = checkXNVCtrl();
#endif
if ((params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats] = nvSuccess)) {
if(not nvSuccess) {
params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats] = false;
}
else {
vendorID = 0x10de;
}
}
@ -645,7 +648,6 @@ void init_gpu_stats(uint32_t& vendorID, overlay_params& params)
if (!amdgpu.power_usage)
amdgpu.power_usage = fopen((path + tempFolder + "/power1_average").c_str(), "r");
params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats] = true;
vendorID = 0x1002;
break;
}
@ -802,17 +804,17 @@ void update_hud_info(struct swapchain_stats& sw_stats, struct overlay_params& pa
if (sw_stats.last_fps_update) {
if (elapsed >= params.fps_sampling_period) {
if (params.enabled[OVERLAY_PARAM_ENABLED_cpu_stats]) {
if (params.enabled[OVERLAY_PARAM_ENABLED_cpu_stats] || loggingOn) {
cpuStats.UpdateCPUData();
sw_stats.total_cpu = cpuStats.GetCPUDataTotal().percent;
if (params.enabled[OVERLAY_PARAM_ENABLED_core_load])
cpuStats.UpdateCoreMhz();
if (params.enabled[OVERLAY_PARAM_ENABLED_cpu_temp])
if (params.enabled[OVERLAY_PARAM_ENABLED_cpu_temp] || loggingOn)
cpuStats.UpdateCpuTemp();
}
if (params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats]) {
if (params.enabled[OVERLAY_PARAM_ENABLED_gpu_stats] || loggingOn) {
if (vendorID == 0x1002)
std::thread(getAmdGpuInfo).detach();
@ -821,13 +823,21 @@ void update_hud_info(struct swapchain_stats& sw_stats, struct overlay_params& pa
}
// get ram usage/max
if (params.enabled[OVERLAY_PARAM_ENABLED_ram])
if (params.enabled[OVERLAY_PARAM_ENABLED_ram] || loggingOn)
std::thread(update_meminfo).detach();
if (params.enabled[OVERLAY_PARAM_ENABLED_io_read] || params.enabled[OVERLAY_PARAM_ENABLED_io_write])
std::thread(getIoStats, &sw_stats.io).detach();
gpuLoadLog = gpu_info.load;
cpuLoadLog = sw_stats.total_cpu;
currentLogData.gpu_load = gpu_info.load;
currentLogData.gpu_temp = gpu_info.temp;
currentLogData.gpu_core_clock = gpu_info.CoreClock;
currentLogData.gpu_mem_clock = gpu_info.MemClock;
currentLogData.gpu_vram_used = gpu_info.memoryUsed;
currentLogData.ram_used = memused;
currentLogData.cpu_load = cpuStats.GetCPUDataTotal().percent;
currentLogData.cpu_temp = cpuStats.GetCPUDataTotal().temp;
sw_stats.fps = fps;
if (params.enabled[OVERLAY_PARAM_ENABLED_time]) {
@ -1325,7 +1335,9 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2&
if (params.log_duration && (elapsedLog) >= params.log_duration * 1000000)
loggingOn = false;
logArray.push_back({fps, cpuLoadLog, gpuLoadLog, elapsedLog});
currentLogData.fps = fps;
currentLogData.previous = elapsedLog;
logArray.push_back(currentLogData);
}
if (params.enabled[OVERLAY_PARAM_ENABLED_frame_timing]){

Loading…
Cancel
Save