diff --git a/src/gl/imgui_hud.cpp b/src/gl/imgui_hud.cpp index cc18477..7ec8051 100644 --- a/src/gl/imgui_hud.cpp +++ b/src/gl/imgui_hud.cpp @@ -182,7 +182,7 @@ void imgui_render(unsigned int width, unsigned int height) { std::lock_guard lk(notifier.mutex); position_layer(sw_stats, params, window_size); - render_imgui(sw_stats, params, window_size, false); + render_imgui(sw_stats, params, window_size, "OpenGL"); } ImGui::PopStyleVar(3); diff --git a/src/kiero/d3d11_impl.cpp b/src/kiero/d3d11_impl.cpp index fe0420a..3172bd8 100644 --- a/src/kiero/d3d11_impl.cpp +++ b/src/kiero/d3d11_impl.cpp @@ -115,8 +115,8 @@ long __stdcall hkPresent11(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT F ImGui_ImplDX11_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); - position_layer(params, window_size); - render_imgui(sw_stats, params, window_size, false); + position_layer(sw_stats, params, window_size); + render_imgui(sw_stats, params, window_size, "D3D11"); ImGui::EndFrame(); ImGui::Render(); diff --git a/src/nvml.cpp b/src/nvml.cpp index e420a75..252193b 100644 --- a/src/nvml.cpp +++ b/src/nvml.cpp @@ -29,13 +29,12 @@ bool checkNVML(const char* pciBusId){ std::cerr << "MANGOHUD: Getting device handle by PCI bus ID failed: " << nvml.nvmlErrorString(ret) << "\n"; std::cerr << " Using index 0.\n"; } - if (ret != NVML_SUCCESS) ret = nvml.nvmlDeviceGetHandleByIndex(0, &nvidiaDevice); - + if (ret != NVML_SUCCESS) std::cerr << "MANGOHUD: Getting device handle failed: " << nvml.nvmlErrorString(ret) << "\n"; - + nvmlSuccess = (ret == NVML_SUCCESS); return nvmlSuccess; } @@ -53,7 +52,9 @@ bool getNVMLInfo(){ nvml.nvmlDeviceGetClockInfo(nvidiaDevice, NVML_CLOCK_GRAPHICS, &nvidiaCoreClock); nvml.nvmlDeviceGetClockInfo(nvidiaDevice, NVML_CLOCK_MEM, &nvidiaMemClock); nvml.nvmlDeviceGetPciInfo_v3(nvidiaDevice, &nvidiaPciInfo); +#ifdef __gnu_linux__ nvml.nvmlDeviceGetPowerUsage(nvidiaDevice, &nvidiaPowerUsage); +#endif deviceID = nvidiaPciInfo.pciDeviceId >> 16; if (response == NVML_ERROR_NOT_SUPPORTED) diff --git a/src/overlay.cpp b/src/overlay.cpp index 732ed3c..9ee8ad5 100644 --- a/src/overlay.cpp +++ b/src/overlay.cpp @@ -1289,7 +1289,7 @@ void render_benchmark(swapchain_stats& data, struct overlay_params& params, ImVe ImGui::End(); } -void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& window_size, bool is_vulkan) +void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& window_size, const char* renderName) { uint32_t f_idx = (data.n_frames - 1) % ARRAY_SIZE(data.frames_stats); uint64_t frame_timing = data.frames_stats[f_idx].stats[OVERLAY_PLOTS_frame_timing]; @@ -1460,7 +1460,7 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& #endif if (params.enabled[OVERLAY_PARAM_ENABLED_fps]){ ImGui::TableNextRow(); - ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color), "%s", is_vulkan ? data.engineName.c_str() : "OpenGL"); + ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color), "%s", renderName); ImGui::TableNextCell(); right_aligned_text(char_width * 4, "%.0f", data.fps); ImGui::SameLine(0, 1.0f); @@ -1480,7 +1480,8 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& if (params.enabled[OVERLAY_PARAM_ENABLED_fps] && params.enabled[OVERLAY_PARAM_ENABLED_engine_version]){ ImGui::PushFont(data.font1); ImGui::Dummy(ImVec2(0, 8.0f)); - if (is_vulkan) { + auto engine_color = ImGui::ColorConvertU32ToFloat4(params.engine_color); + if (renderName == "VULKAN") { if ((data.engineName == "DXVK" || data.engineName == "VKD3D")){ ImGui::TextColored(engine_color, "%s/%d.%d.%d", data.engineVersion.c_str(), @@ -1494,7 +1495,8 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& data.version_vk.minor, data.version_vk.patch); } - } else { + } + if (renderName == "OpenGL") { ImGui::TextColored(engine_color, "%d.%d%s", data.version_gl.major, data.version_gl.minor, data.version_gl.is_gles ? " ES" : ""); @@ -1601,7 +1603,7 @@ static void compute_swapchain_display(struct swapchain_data *data) { scoped_lock lk(instance_data->notifier.mutex); position_layer(data->sw_stats, instance_data->params, data->window_size); - render_imgui(data->sw_stats, instance_data->params, data->window_size, true); + render_imgui(data->sw_stats, instance_data->params, data->window_size, "VULKAN"); } ImGui::PopStyleVar(3); diff --git a/src/overlay.h b/src/overlay.h index 94a44c6..220cc7b 100644 --- a/src/overlay.h +++ b/src/overlay.h @@ -65,7 +65,7 @@ extern int32_t deviceID; extern struct benchmark_stats benchmark; void position_layer(struct swapchain_stats& data, struct overlay_params& params, ImVec2 window_size); -void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& window_size, bool is_vulkan); +void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2& window_size, const char* renderName); void update_hud_info(struct swapchain_stats& sw_stats, struct overlay_params& params, uint32_t vendorID); void init_gpu_stats(uint32_t& vendorID, overlay_params& params); void init_cpu_stats(overlay_params& params);