use vulkan to determine if zink

control
FlightlessMango 3 years ago
parent 92282bcec2
commit 2e5fc31711

@ -12,6 +12,7 @@
#include "imgui_hud.h"
#include "notify.h"
#include "blacklist.h"
#include "overlay.h"
#ifdef HAVE_DBUS
#include "dbus_info.h"
@ -77,16 +78,13 @@ void imgui_init()
}
auto pid = getpid();
string find_wined3d = "lsof -w -lnPX -L -p " + to_string(pid) + " | grep -oh wined3d";
string find_zink= "lsof -w -lnPX -L -p " + to_string(pid) + " | grep -oh zink";
string ret_wined3d = exec(find_wined3d);
string ret_zink = exec(find_zink);
if (ret_wined3d == "wined3d\n" )
sw_stats.engineName = "WineD3D";
else if (ret_zink.find("zink") != std::string::npos)
sw_stats.engineName = "ZINK";
else
sw_stats.engineName = "OpenGL";
if (engineName == "ZINK")
sw_stats.engineName = engineName;
is_blacklisted(true);
notifier.params = &params;
start_notifier(notifier);

@ -85,6 +85,7 @@ extern struct benchmark_stats benchmark;
extern ImVec2 real_font_size;
extern std::string wineVersion;
extern std::vector<logData> graph_data;
extern string engineName;
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);

@ -66,7 +66,7 @@
#include "pci_ids.h"
#include "timing.hpp"
string gpuString,wineVersion,wineProcess;
string gpuString,wineVersion,wineProcess,engineName;
float offset_x, offset_y, hudSpacing;
int hudFirstRow, hudSecondRow;
VkPhysicalDeviceDriverProperties driverProps = {};
@ -2137,7 +2137,7 @@ static VkResult overlay_CreateInstance(
VkLayerInstanceCreateInfo *chain_info =
get_instance_chain_info(pCreateInfo, VK_LAYER_LINK_INFO);
std::string engineName, engineVersion;
std::string engineVersion;
if (!is_blacklisted(true)) {
const char* pEngineName = nullptr;
if (pCreateInfo->pApplicationInfo)
@ -2148,12 +2148,15 @@ static VkResult overlay_CreateInstance(
int engineVer = pCreateInfo->pApplicationInfo->engineVersion;
engineVersion = to_string(VK_VERSION_MAJOR(engineVer)) + "." + to_string(VK_VERSION_MINOR(engineVer)) + "." + to_string(VK_VERSION_PATCH(engineVer));
}
if (engineName != "DXVK" && engineName != "vkd3d" && engineName != "Feral3D" && engineName != "Damavand")
if (engineName != "DXVK" && engineName != "vkd3d" && engineName != "Feral3D" && engineName != "Damavand" && engineName != "mesa zink")
engineName = "VULKAN";
if (engineName == "vkd3d")
engineName = "VKD3D";
if (engineName == "mesa zink")
engineName = "ZINK";
}
assert(chain_info->u.pLayerInfo);

Loading…
Cancel
Save