Show vulkan/opengl version

OpenGL glGetIntegerv(GL_[MAJOR|MINOR]_VERSION) don't work on versions < 3.0 though
pull/93/head
jackun 4 years ago
parent 70bcb2b23d
commit 8aa0783b4a
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

@ -102,7 +102,7 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version)
#if !defined(IMGUI_IMPL_OPENGL_ES2)
glsl_version = "#version 130";
GLint major, minor;
GLint major = -1, minor = -1;
glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor);
g_GlVersion = major * 1000 + minor;

@ -77,6 +77,9 @@ void imgui_create(void *ctx)
gl3wInit();
std::cerr << "GL version: " << glGetString(GL_VERSION) << std::endl;
glGetIntegerv(GL_MAJOR_VERSION, &sw_stats.version_gl.major);
glGetIntegerv(GL_MINOR_VERSION, &sw_stats.version_gl.minor);
deviceName = (char*)glGetString(GL_RENDERER);
if (deviceName.find("Radeon") != std::string::npos
|| deviceName.find("AMD") != std::string::npos){

@ -1194,6 +1194,13 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2&
if (params.enabled[OVERLAY_PARAM_ENABLED_fps]){
ImGui::TableNextRow();
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color), "%s", is_vulkan ? engineName.c_str() : "OpenGL");
if (!is_vulkan) {
ImGui::SameLine(0, 1.0f);
ImGui::PushFont(data.font1);
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color),
"%d.%d", data.version_gl.major, data.version_gl.minor);
ImGui::PopFont();
}
ImGui::TableNextCell();
right_aligned_text(char_width * 4, "%.0f", data.fps);
ImGui::SameLine(0, 1.0f);
@ -1206,10 +1213,22 @@ void render_imgui(swapchain_stats& data, struct overlay_params& params, ImVec2&
ImGui::PushFont(data.font1);
ImGui::Text("ms");
ImGui::PopFont();
if ((engineName == "DXVK" || engineName == "VKD3D") && is_vulkan){
if (is_vulkan) {
ImGui::TableNextRow();
ImGui::PushFont(data.font1);
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color), "%s", engineVersion.c_str());
if ((engineName == "DXVK" || engineName == "VKD3D")){
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color),
"%s/%d.%d.%d", engineVersion.c_str(),
data.version_vk.major,
data.version_vk.minor,
data.version_vk.patch);
} else {
ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(params.engine_color),
"%d.%d.%d",
data.version_vk.major,
data.version_vk.minor,
data.version_vk.patch);
}
ImGui::PopFont();
}
}
@ -2162,7 +2181,11 @@ static VkResult overlay_CreateSwapchainKHR(
if (result != VK_SUCCESS) return result;
struct swapchain_data *swapchain_data = new_swapchain_data(*pSwapchain, device_data);
setup_swapchain_data(swapchain_data, pCreateInfo, device_data->instance->params);
swapchain_data->sw_stats.version_vk.major = VK_VERSION_MAJOR(device_data->properties.apiVersion);
swapchain_data->sw_stats.version_vk.minor = VK_VERSION_MINOR(device_data->properties.apiVersion);
swapchain_data->sw_stats.version_vk.patch = VK_VERSION_PATCH(device_data->properties.apiVersion);
return result;
}

@ -24,6 +24,15 @@ struct swapchain_stats {
uint64_t last_present_time;
unsigned n_frames_since_update;
uint64_t last_fps_update;
struct {
int32_t major;
int32_t minor;
} version_gl;
struct {
int32_t major;
int32_t minor;
int32_t patch;
} version_vk;
};
struct fps_limit {

Loading…
Cancel
Save