Home | History | Annotate | Download | only in demos

Lines Matching refs:gpu

108     struct AppGpu *gpu; /* point back to the GPU */
488 vkGetPhysicalDeviceFormatProperties(dev->gpu->obj, fmt, &dev->format_props[f]);
490 if (CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, dev->gpu->inst->inst_extensions,
491 dev->gpu->inst->inst_extensions_count)) {
494 dev->gpu->inst->vkGetPhysicalDeviceFormatProperties2KHR(dev->gpu->obj, fmt, &dev->format_props2[f]);
505 static void AppGetPhysicalDeviceLayerExtensions(struct AppGpu *gpu, char *layer_name, uint32_t *extension_count,
513 err = vkEnumerateDeviceExtensionProperties(gpu->obj, layer_name, &ext_count, NULL);
520 err = vkEnumerateDeviceExtensionProperties(gpu->obj, layer_name, &ext_count, ext_ptr);
528 static void AppDevInit(struct AppDev *dev, struct AppGpu *gpu) {
543 AppGetPhysicalDeviceLayerExtensions(gpu, NULL, &gpu->device_extension_count, &gpu->device_extensions);
548 info.queueCreateInfoCount = gpu->queue_count;
549 info.pQueueCreateInfos = gpu->queue_reqs;
555 dev->gpu = gpu;
556 err = vkCreateDevice(gpu->obj, &info, NULL, &dev->obj);
849 static void AppGpuInit(struct AppGpu *gpu, struct AppInstance *inst, uint32_t id, VkPhysicalDevice obj) {
852 memset(gpu, 0, sizeof(*gpu));
854 gpu->id = id;
855 gpu->obj = obj;
856 gpu->inst = inst;
858 vkGetPhysicalDeviceProperties(gpu->obj, &gpu->props);
860 if (CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, gpu->inst->inst_extensions,
861 gpu->inst->inst_extensions_count)) {
862 gpu->props2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
863 gpu->props2.pNext = NULL;
865 inst->vkGetPhysicalDeviceProperties2KHR(gpu->obj, &gpu->props2);
869 vkGetPhysicalDeviceQueueFamilyProperties(gpu->obj, &gpu->queue_count, NULL);
871 gpu->queue_props = malloc(sizeof(gpu->queue_props[0]) * gpu->queue_count);
873 if (!gpu->queue_props) ERR_EXIT(VK_ERROR_OUT_OF_HOST_MEMORY);
874 vkGetPhysicalDeviceQueueFamilyProperties(gpu->obj, &gpu->queue_count, gpu->queue_props);
876 if (CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, gpu->inst->inst_extensions,
877 gpu->inst->inst_extensions_count)) {
878 gpu->queue_props2 = malloc(sizeof(gpu->queue_props2[0]) * gpu->queue_count);
880 if (!gpu->queue_props2) ERR_EXIT(VK_ERROR_OUT_OF_HOST_MEMORY);
882 for (i = 0; i < gpu->queue_count; i++) {
883 gpu->queue_props2[i].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR;
884 gpu->queue_props2[i].pNext = NULL;
887 inst->vkGetPhysicalDeviceQueueFamilyProperties2KHR(gpu->obj, &gpu->queue_count, gpu->queue_props2);
891 gpu->queue_reqs = malloc(sizeof(*gpu->queue_reqs) * gpu->queue_count);
892 if (!gpu->queue_reqs) ERR_EXIT(VK_ERROR_OUT_OF_HOST_MEMORY);
893 for (i = 0; i < gpu->queue_count; i++) {
894 float *queue_priorities = malloc(gpu->queue_props[i].queueCount * sizeof(float));
896 memset(queue_priorities, 0, gpu->queue_props[i].queueCount * sizeof(float));
898 gpu->queue_reqs[i].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
899 gpu->queue_reqs[i].pNext = NULL;
900 gpu->queue_reqs[i].flags = 0;
901 gpu->queue_reqs[i].queueFamilyIndex = i;
902 gpu->queue_reqs[i].queueCount = gpu->queue_props[i].queueCount;
903 gpu->queue_reqs[i].pQueuePriorities = queue_priorities;
906 vkGetPhysicalDeviceMemoryProperties(gpu->obj, &gpu->memory_props);
908 vkGetPhysicalDeviceFeatures(gpu->obj, &gpu->features);
910 if (CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, gpu->inst->inst_extensions,
911 gpu->inst->inst_extensions_count)) {
912 gpu->memory_props2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR;
913 gpu->memory_props2.pNext = NULL;
915 inst->vkGetPhysicalDeviceMemoryProperties2KHR(gpu->obj, &gpu->memory_props2);
917 gpu->features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
918 gpu->features2.pNext = NULL;
920 inst->vkGetPhysicalDeviceFeatures2KHR(gpu->obj, &gpu->features2);
923 AppDevInit(&gpu->dev, gpu);
924 AppDevInitFormats(&gpu->dev);
927 static void AppGpuDestroy(struct AppGpu *gpu) {
928 AppDevDestroy(&gpu->dev);
929 free(gpu->device_extensions);
931 for (uint32_t i = 0; i < gpu->queue_count; i++) {
932 free((void *)gpu->queue_reqs[i].pQueuePriorities);
934 free(gpu->queue_reqs);
936 free(gpu->queue_props);
937 if (CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, gpu->inst->inst_extensions,
938 gpu->inst->inst_extensions_count)) {
939 free(gpu->queue_props2);
1142 static int AppDumpSurfaceFormats(struct AppInstance *inst, struct AppGpu *gpu, FILE *out){
1146 err = inst->vkGetPhysicalDeviceSurfaceFormatsKHR(gpu->obj, inst->surface, &format_count, NULL);
1152 err = inst->vkGetPhysicalDeviceSurfaceFormatsKHR(gpu->obj, inst->surface, &format_count, surf_formats);
1181 static int AppDumpSurfacePresentModes(struct AppInstance *inst, struct AppGpu *gpu, FILE *out) {
1185 err = inst->vkGetPhysicalDeviceSurfacePresentModesKHR(gpu->obj, inst->surface, &present_mode_count, NULL);
1191 err = inst->vkGetPhysicalDeviceSurfacePresentModesKHR(gpu->obj, inst->surface, &present_mode_count, surf_present_modes);
1220 static void AppDumpSurfaceCapabilities(struct AppInstance *inst, struct AppGpu *gpu, FILE *out) {
1221 if (CheckExtensionEnabled(VK_KHR_SURFACE_EXTENSION_NAME, gpu->inst->inst_extensions, gpu->inst->inst_extensions_count)) {
1222 inst->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(gpu->obj, inst->surface, &inst->surface_capabilities);
1399 if (CheckExtensionEnabled(VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME, gpu->inst->inst_extensions, gpu->inst->inst_extensions_count)) {
1404 inst->vkGetPhysicalDeviceSurfaceCapabilities2EXT(gpu->obj, inst->surface, &inst->surface_capabilities2_ext);
1425 gpu->inst->inst_extensions, gpu->inst->inst_extensions_count)) {
1426 if (CheckExtensionEnabled(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, gpu->inst->inst_extensions, gpu->inst->inst_extensions_count)) {
1441 inst->vkGetPhysicalDeviceSurfaceCapabilities2KHR(gpu->obj, &surface_info, &inst->surface_capabilities2);
1601 static void AppGpuDumpFeatures(const struct AppGpu *gpu, FILE *out) {
1602 const VkPhysicalDeviceFeatures *features = &gpu->features;
1981 static void AppGpuDumpProps(const struct AppGpu *gpu, FILE *out) {
1982 const VkPhysicalDeviceProperties *props = &gpu->props;
2008 AppDumpLimits(&gpu->props.limits, out);
2009 AppDumpSparseProps(&gpu->props.sparseProperties, out);
2059 static void AppGpuDumpQueueProps(const struct AppGpu *gpu, uint32_t id, FILE *out) {
2060 const VkQueueFamilyProperties *props = &gpu->queue_props[id];
2128 static void AppGpuDumpMemoryProps(const struct AppGpu *gpu, FILE *out) {
2129 const VkPhysicalDeviceMemoryProperties *props = &gpu->memory_props;
2227 static void AppGpuDump(const struct AppGpu *gpu, FILE *out) {
2232 fprintf(out, "\t\t\t\t<details><summary>GPU%u</summary>\n", gpu->id);
2236 printf("GPU%u\n", gpu->id);
2239 AppGpuDumpProps(gpu, out);
2241 AppDumpExtensions("\t\t", "Device", gpu->device_extension_count, gpu->device_extensions, out);
2244 AppDumpExtensions("", "Device", gpu->device_extension_count, gpu->device_extensions, out);
2248 for (i = 0; i < gpu->queue_count; i++) {
2249 AppGpuDumpQueueProps(gpu, i, out);
2252 AppGpuDumpMemoryProps(gpu, out);
2254 AppGpuDumpFeatures(gpu, out);
2256 AppDevDump(&gpu->dev, out);
2394 fprintf(out, "GPU id: <div class='val'>%u</div> (%s)</summary></details>\n", j, gpus[j].props.deviceName);
2453 fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i,
2458 printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName);
2475 fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i,
2480 printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName);
2497 fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i,
2502 printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName);