diff --git a/vulkaninfo/vulkaninfo.c b/vulkaninfo/vulkaninfo.c index 03d2bc522..e3011a98f 100644 --- a/vulkaninfo/vulkaninfo.c +++ b/vulkaninfo/vulkaninfo.c @@ -1842,7 +1842,7 @@ static void AppDumpSurfaceExtension(struct AppInstance *inst, struct AppGpu *gpu *format_count += AppDumpSurfaceFormats(inst, &gpus[i], out); *present_mode_count += AppDumpSurfacePresentModes(inst, &gpus[i], out); AppDumpSurfaceCapabilities(inst, &gpus[i], out); - AppDestroySurface(inst); + if (html_output) { fprintf(out, "\t\t\t\t\n"); } else if (human_readable_output) { @@ -3296,6 +3296,11 @@ static void AppGpuDumpQueueProps(const struct AppGpu *gpu, uint32_t id, FILE *ou props = *props_const; } + VkBool32 supports_present = VK_FALSE; + if (gpu->inst->surface) { + VkResult err = vkGetPhysicalDeviceSurfaceSupportKHR(gpu->obj, id, gpu->inst->surface, &supports_present); + } + if (html_output) { fprintf(out, "\t\t\t\t\t
VkQueueFamilyProperties[
%d
]
\n", id); fprintf(out, "\t\t\t\t\t\t
queueFlags = "); @@ -3329,6 +3334,8 @@ static void AppGpuDumpQueueProps(const struct AppGpu *gpu, uint32_t id, FILE *ou fprintf(out, "\t\t\t\t\t\t
timestampValidBits =
%u
\n", props.timestampValidBits); fprintf(out, "\t\t\t\t\t\t
minImageTransferGranularity = (
%d
,
%d
,
%d
)
\n", props.minImageTransferGranularity.width, props.minImageTransferGranularity.height, props.minImageTransferGranularity.depth); + fprintf(out, "\t\t\t\t\t\t
present support =
%s
\n", + supports_present ? "true" : "false"); fprintf(out, "\t\t\t\t\t
\n"); } else if (human_readable_output) { printf("\n"); @@ -3336,6 +3343,7 @@ static void AppGpuDumpQueueProps(const struct AppGpu *gpu, uint32_t id, FILE *ou printf("\ttimestampValidBits = %u\n", props.timestampValidBits); printf("\tminImageTransferGranularity = (%d, %d, %d)\n", props.minImageTransferGranularity.width, props.minImageTransferGranularity.height, props.minImageTransferGranularity.depth); + printf("\tpresent support = %s\n", supports_present ? "true" : "false"); } if (json_output) { printf("\t\t{\n"); @@ -3346,7 +3354,8 @@ static void AppGpuDumpQueueProps(const struct AppGpu *gpu, uint32_t id, FILE *ou printf("\t\t\t},\n"); printf("\t\t\t\"queueCount\": %u,\n", props.queueCount); printf("\t\t\t\"queueFlags\": %u,\n", props.queueFlags); - printf("\t\t\t\"timestampValidBits\": %u\n", props.timestampValidBits); + printf("\t\t\t\"timestampValidBits\": %u,\n", props.timestampValidBits); + printf("\t\t\t\"present_support\": %s\n", supports_present ? "\"true\"" : "\"false\""); printf("\t\t}"); } @@ -3788,7 +3797,7 @@ void print_usage(char *argv0) { int main(int argc, char **argv) { uint32_t gpu_count; VkResult err; - struct AppInstance inst; + struct AppInstance inst = {0}; FILE *out = stdout; #ifdef _WIN32 @@ -4142,6 +4151,7 @@ int main(int argc, char **argv) { free(gpus); free(objs); + AppDestroySurface(&inst); AppDestroyInstance(&inst); if (html_output) {