mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 15:02:01 +00:00
- add vulkan info to startup log
This commit is contained in:
parent
7d56aa4b0b
commit
9d792f79f1
4 changed files with 44 additions and 3 deletions
|
@ -290,10 +290,7 @@ void VulkanDevice::selectPhysicalDevice()
|
|||
|
||||
for (const auto &device : devices)
|
||||
{
|
||||
VkPhysicalDeviceProperties deviceProperties;
|
||||
vkGetPhysicalDeviceProperties(device, &deviceProperties);
|
||||
|
||||
VkPhysicalDeviceFeatures deviceFeatures;
|
||||
vkGetPhysicalDeviceFeatures(device, &deviceFeatures);
|
||||
|
||||
bool isUsableDevice = deviceProperties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU && deviceFeatures.geometryShader && deviceFeatures.samplerAnisotropy;
|
||||
|
|
|
@ -44,6 +44,8 @@ public:
|
|||
std::vector<VkLayerProperties> availableLayers;
|
||||
std::vector<VkExtensionProperties> extensions;
|
||||
std::vector<VkExtensionProperties> availableDeviceExtensions;
|
||||
VkPhysicalDeviceProperties deviceProperties;
|
||||
VkPhysicalDeviceFeatures deviceFeatures;
|
||||
|
||||
uint32_t findMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties);
|
||||
|
||||
|
|
|
@ -88,6 +88,13 @@ VulkanFrameBuffer::~VulkanFrameBuffer()
|
|||
|
||||
void VulkanFrameBuffer::InitializeState()
|
||||
{
|
||||
static bool first = true;
|
||||
if (first)
|
||||
{
|
||||
PrintStartupLog();
|
||||
first = false;
|
||||
}
|
||||
|
||||
gl_vendorstring = "Vulkan";
|
||||
hwcaps = RFL_SHADER_STORAGE_BUFFER | RFL_BUFFER_STORAGE;
|
||||
|
||||
|
@ -573,3 +580,37 @@ VulkanCommandBuffer *VulkanFrameBuffer::GetDrawCommands()
|
|||
}
|
||||
return mDrawCommands.get();
|
||||
}
|
||||
|
||||
void VulkanFrameBuffer::PrintStartupLog()
|
||||
{
|
||||
FString deviceType;
|
||||
switch (device->deviceProperties.deviceType)
|
||||
{
|
||||
case VK_PHYSICAL_DEVICE_TYPE_OTHER: deviceType = "other"; break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: deviceType = "integrated gpu"; break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: deviceType = "discrete gpu"; break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: deviceType = "virtual gpu"; break;
|
||||
case VK_PHYSICAL_DEVICE_TYPE_CPU: deviceType = "cpu"; break;
|
||||
default: deviceType.Format("%d", (int)device->deviceProperties.deviceType); break;
|
||||
}
|
||||
|
||||
FString apiVersion, driverVersion;
|
||||
apiVersion.Format("%d.%d.%d", VK_VERSION_MAJOR(device->deviceProperties.apiVersion), VK_VERSION_MINOR(device->deviceProperties.apiVersion), VK_VERSION_PATCH(device->deviceProperties.apiVersion));
|
||||
driverVersion.Format("%d.%d.%d", VK_VERSION_MAJOR(device->deviceProperties.apiVersion), VK_VERSION_MINOR(device->deviceProperties.apiVersion), VK_VERSION_PATCH(device->deviceProperties.apiVersion));
|
||||
|
||||
Printf("Vulkan device: %s\n", device->deviceProperties.deviceName);
|
||||
Printf("Vulkan device type: %s\n", deviceType.GetChars());
|
||||
Printf("Vulkan version: %s (api) %s (driver)\n", apiVersion.GetChars(), driverVersion.GetChars());
|
||||
|
||||
Printf(PRINT_LOG, "Vulkan extensions:");
|
||||
for (const VkExtensionProperties &p : device->availableDeviceExtensions)
|
||||
{
|
||||
Printf(PRINT_LOG, " %s", p.extensionName);
|
||||
}
|
||||
Printf(PRINT_LOG, "\n");
|
||||
|
||||
const auto &limits = device->deviceProperties.limits;
|
||||
Printf("Max. texture size: %d\n", limits.maxImageDimension2D);
|
||||
Printf("Max. uniform buffer range: %d\n", limits.maxUniformBufferRange);
|
||||
Printf("Min. uniform buffer offset alignment: %d\n", limits.minUniformBufferOffsetAlignment);
|
||||
}
|
||||
|
|
|
@ -75,6 +75,7 @@ public:
|
|||
private:
|
||||
sector_t *RenderViewpoint(FRenderViewpoint &mainvp, AActor * camera, IntRect * bounds, float fov, float ratio, float fovratio, bool mainview, bool toscreen);
|
||||
void DrawScene(HWDrawInfo *di, int drawmode);
|
||||
void PrintStartupLog();
|
||||
|
||||
std::unique_ptr<VkShaderManager> mShaderManager;
|
||||
std::unique_ptr<VkSamplerManager> mSamplerManager;
|
||||
|
|
Loading…
Reference in a new issue