Lines Matching refs:screen
66 struct zink_screen *screen = zink_screen(pscreen); in zink_get_device_vendor() local
68 snprintf(buf, sizeof(buf), "Unknown (vendor-id: 0x%04x)", screen->info.props.vendorID); in zink_get_device_vendor()
75 struct zink_screen *screen = zink_screen(pscreen); in zink_get_name() local
77 snprintf(buf, sizeof(buf), "zink (%s)", screen->info.props.deviceName); in zink_get_name()
82 get_video_mem(struct zink_screen *screen) in get_video_mem() argument
85 for (uint32_t i = 0; i < screen->info.mem_props.memoryHeapCount; ++i) { in get_video_mem()
86 if (screen->info.mem_props.memoryHeaps[i].flags & in get_video_mem()
88 size += screen->info.mem_props.memoryHeaps[i].size; in get_video_mem()
96 struct zink_screen *screen = zink_screen(pscreen); in zink_get_param() local
106 return screen->info.have_EXT_vertex_attribute_divisor; in zink_get_param()
109 if (!screen->info.feats.features.dualSrcBlend) in zink_get_param()
111 return screen->info.props.limits.maxFragmentDualSrcAttachments; in zink_get_param()
117 return screen->info.props.limits.maxColorAttachments; in zink_get_param()
123 return screen->timestamp_valid_bits > 0; in zink_get_param()
129 return screen->info.feats.features.sampleRateShading; in zink_get_param()
135 return screen->info.props.limits.maxImageDimension2D; in zink_get_param()
137 return 1 + util_logbase2(screen->info.props.limits.maxImageDimension3D); in zink_get_param()
139 return 1 + util_logbase2(screen->info.props.limits.maxImageDimensionCube); in zink_get_param()
149 return screen->info.feats.features.independentBlend; in zink_get_param()
152 …return screen->info.have_EXT_transform_feedback ? screen->info.tf_props.maxTransformFeedbackBuffer… in zink_get_param()
155 return screen->info.have_EXT_transform_feedback; in zink_get_param()
158 return screen->info.props.limits.maxImageArrayLayers; in zink_get_param()
161 return screen->info.feats.features.depthClamp; in zink_get_param()
169 return screen->info.props.limits.minTexelOffset; in zink_get_param()
171 return screen->info.props.limits.maxTexelOffset; in zink_get_param()
177 return screen->info.have_EXT_conditional_rendering; in zink_get_param()
190 return screen->info.props.limits.minUniformBufferOffsetAlignment; in zink_get_param()
193 return screen->info.have_EXT_calibrated_timestamps && in zink_get_param()
194 screen->timestamp_valid_bits > 0; in zink_get_param()
197 return screen->info.props.limits.minMemoryMapAlignment; in zink_get_param()
200 return screen->info.feats.features.imageCubeArray; in zink_get_param()
207 return screen->info.props.limits.minTexelBufferOffsetAlignment; in zink_get_param()
213 return screen->info.props.limits.maxTexelBufferElements; in zink_get_param()
225 return screen->info.props.limits.maxGeometryOutputVertices; in zink_get_param()
227 return screen->info.props.limits.maxGeometryTotalOutputComponents; in zink_get_param()
235 return screen->info.props.limits.minTexelGatherOffset; in zink_get_param()
237 return screen->info.props.limits.maxTexelGatherOffset; in zink_get_param()
243 return screen->info.props.vendorID; in zink_get_param()
245 return screen->info.props.deviceID; in zink_get_param()
250 return get_video_mem(screen); in zink_get_param()
252 return screen->info.props.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU; in zink_get_param()
255 return screen->info.props.limits.maxVertexInputBindingStride; in zink_get_param()
278 return screen->info.props.limits.minStorageBufferOffsetAlignment; in zink_get_param()
288 return screen->info.feats.features.shaderCullDistance; in zink_get_param()
291 return screen->info.props.limits.viewportSubPixelBits; in zink_get_param()
297 return screen->info.props.limits.maxGeometryShaderInvocations; in zink_get_param()
300 return screen->info.props.limits.maxDescriptorSetStorageBuffers; in zink_get_param()
333 return screen->info.props.limits.maxTessellationControlPerVertexOutputComponents / 4; in zink_get_param()
336 return MIN2(screen->info.props.limits.maxVertexOutputComponents / 4 / 2, 16); in zink_get_param()
339 return screen->info.have_KHR_external_memory_fd; in zink_get_param()
349 struct zink_screen *screen = zink_screen(pscreen); in zink_get_paramf() local
354 return screen->info.props.limits.lineWidthRange[1]; in zink_get_paramf()
358 return screen->info.props.limits.pointSizeRange[1]; in zink_get_paramf()
361 return screen->info.props.limits.maxSamplerAnisotropy; in zink_get_paramf()
364 return screen->info.props.limits.maxSamplerLodBias; in zink_get_paramf()
381 struct zink_screen *screen = zink_screen(pscreen); in zink_get_shader_param() local
391 if (screen->info.feats.features.geometryShader) in zink_get_shader_param()
411 return MIN2(screen->info.props.limits.maxVertexInputAttributes, in zink_get_shader_param()
414 return MIN2(screen->info.props.limits.maxGeometryInputComponents, in zink_get_shader_param()
417 return MIN2(screen->info.props.limits.maxFragmentInputComponents / 4, in zink_get_shader_param()
426 return MIN2(screen->info.props.limits.maxVertexOutputComponents / 4, in zink_get_shader_param()
429 return MIN2(screen->info.props.limits.maxGeometryOutputComponents / 4, in zink_get_shader_param()
432 return MIN2(screen->info.props.limits.maxColorAttachments, in zink_get_shader_param()
444 return MIN2(screen->info.props.limits.maxPerStageDescriptorSamplers, in zink_get_shader_param()
454 return MIN2(screen->info.props.limits.maxPerStageDescriptorUniformBuffers, in zink_get_shader_param()
484 return MIN2(screen->info.props.limits.maxPerStageDescriptorSampledImages, in zink_get_shader_param()
506 return MIN2(screen->info.props.limits.maxPerStageDescriptorStorageImages, in zink_get_shader_param()
551 struct zink_screen *screen = zink_screen(pscreen); in zink_is_format_supported() local
554 return screen->info.props.limits.framebufferNoAttachmentsSampleCounts & in zink_is_format_supported()
557 VkFormat vkformat = zink_get_format(screen, format); in zink_is_format_supported()
569 … (screen->info.props.limits.framebufferDepthSampleCounts & sample_mask) != sample_mask) in zink_is_format_supported()
572 … (screen->info.props.limits.sampledImageDepthSampleCounts & sample_mask) != sample_mask) in zink_is_format_supported()
577 … (screen->info.props.limits.framebufferStencilSampleCounts & sample_mask) != sample_mask) in zink_is_format_supported()
580 … (screen->info.props.limits.sampledImageStencilSampleCounts & sample_mask) != sample_mask) in zink_is_format_supported()
585 !(screen->info.props.limits.framebufferColorSampleCounts & sample_mask)) in zink_is_format_supported()
588 !(screen->info.props.limits.sampledImageIntegerSampleCounts & sample_mask)) in zink_is_format_supported()
592 !(screen->info.props.limits.framebufferColorSampleCounts & sample_mask)) in zink_is_format_supported()
595 !(screen->info.props.limits.sampledImageColorSampleCounts & sample_mask)) in zink_is_format_supported()
601 vkGetPhysicalDeviceFormatProperties(screen->pdev, vkformat, &props); in zink_is_format_supported()
629 !screen->info.feats.features.textureCompressionBC) in zink_is_format_supported()
639 struct zink_screen *screen = zink_screen(pscreen); in zink_destroy_screen() local
641 if (VK_NULL_HANDLE != screen->debugUtilsCallbackHandle) { in zink_destroy_screen()
642 …screen->vk_DestroyDebugUtilsMessengerEXT(screen->instance, screen->debugUtilsCallbackHandle, NULL); in zink_destroy_screen()
645 slab_destroy_parent(&screen->transfer_pool); in zink_destroy_screen()
646 FREE(screen); in zink_destroy_screen()
650 create_instance(struct zink_screen *screen) in create_instance() argument
678 screen->have_physical_device_prop2_ext = true; in create_instance()
738 screen->have_debug_utils_ext = have_debug_utils_ext; in create_instance()
743 screen->have_moltenvk = true; in create_instance()
801 update_queue_props(struct zink_screen *screen) in update_queue_props() argument
804 vkGetPhysicalDeviceQueueFamilyProperties(screen->pdev, &num_queues, NULL); in update_queue_props()
808 vkGetPhysicalDeviceQueueFamilyProperties(screen->pdev, &num_queues, props); in update_queue_props()
812 screen->gfx_queue = i; in update_queue_props()
813 screen->timestamp_valid_bits = props[i].timestampValidBits; in update_queue_props()
827 struct zink_screen *screen = zink_screen(pscreen); in zink_flush_frontbuffer() local
828 struct sw_winsys *winsys = screen->winsys; in zink_flush_frontbuffer()
841 vkGetImageSubresourceLayout(screen->dev, res->image, &isr, &layout); in zink_flush_frontbuffer()
844 VkResult result = vkMapMemory(screen->dev, res->mem, res->offset, res->size, 0, &ptr); in zink_flush_frontbuffer()
854 vkUnmapMemory(screen->dev, res->mem); in zink_flush_frontbuffer()
865 screen->vk_##x = (PFN_vk##x)vkGetDeviceProcAddr(screen->dev, "vk"#x); \
866 if (!screen->vk_##x) { \
873 screen->vk_##x = (PFN_vk##x)vkGetInstanceProcAddr(screen->instance, "vk"#x); \
874 if (!screen->vk_##x) { \
883 load_instance_extensions(struct zink_screen *screen) in load_instance_extensions() argument
885 screen->loader_version = VK_API_VERSION_1_0; in load_instance_extensions()
892 screen->loader_version = loader_version_temp; in load_instance_extensions()
897 …%d.%d.%d \n", VK_VERSION_MAJOR(screen->loader_version), VK_VERSION_MINOR(screen->loader_version), … in load_instance_extensions()
900 if (VK_MAKE_VERSION(1,1,0) <= screen->loader_version) { in load_instance_extensions()
905 if (screen->have_physical_device_prop2_ext) { in load_instance_extensions()
907 GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, GetPhysicalDeviceFeatures2KHR); in load_instance_extensions()
908 GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, GetPhysicalDeviceProperties2KHR); in load_instance_extensions()
909 screen->vk_GetPhysicalDeviceFeatures2 = vk_GetPhysicalDeviceFeatures2KHR; in load_instance_extensions()
910 screen->vk_GetPhysicalDeviceProperties2 = vk_GetPhysicalDeviceProperties2KHR; in load_instance_extensions()
917 load_device_extensions(struct zink_screen *screen) in load_device_extensions() argument
919 if (screen->info.have_EXT_transform_feedback) { in load_device_extensions()
927 if (screen->info.have_KHR_external_memory_fd) in load_device_extensions()
930 if (screen->info.have_EXT_conditional_rendering) { in load_device_extensions()
935 if (screen->info.have_EXT_calibrated_timestamps) { in load_device_extensions()
940 screen->vk_GetPhysicalDeviceCalibrateableTimeDomainsEXT(screen->pdev, &num_domains, NULL); in load_device_extensions()
944 screen->vk_GetPhysicalDeviceCalibrateableTimeDomainsEXT(screen->pdev, &num_domains, domains); in load_device_extensions()
957 if (screen->info.have_EXT_extended_dynamic_state) { in load_device_extensions()
962 screen->have_triangle_fans = true; in load_device_extensions()
964 if (screen->info.have_EXTX_portability_subset) { in load_device_extensions()
965 … screen->have_triangle_fans = (VK_TRUE == screen->info.portability_subset_extx_feats.triangleFans); in load_device_extensions()
996 create_debug(struct zink_screen *screen) in create_debug() argument
1001 if (!screen->vk_CreateDebugUtilsMessengerEXT || !screen->vk_DestroyDebugUtilsMessengerEXT) in create_debug()
1021 screen->vk_CreateDebugUtilsMessengerEXT( in create_debug()
1022 screen->instance, in create_debug()
1028 screen->debugUtilsCallbackHandle = vkDebugUtilsCallbackEXT; in create_debug()
1035 zink_internal_setup_moltenvk(struct zink_screen *screen) in zink_internal_setup_moltenvk() argument
1037 if (!screen->have_moltenvk) in zink_internal_setup_moltenvk()
1048 if (screen->vk_GetVersionStringsMVK) { in zink_internal_setup_moltenvk()
1052 …(*screen->vk_GetVersionStringsMVK)(molten_version, sizeof(molten_version) - 1, vulkan_version, siz… in zink_internal_setup_moltenvk()
1057 if (screen->vk_GetMoltenVKConfigurationMVK && screen->vk_SetMoltenVKConfigurationMVK) { in zink_internal_setup_moltenvk()
1061 …VkResult res = (*screen->vk_GetMoltenVKConfigurationMVK)(screen->instance, &molten_config, &molten… in zink_internal_setup_moltenvk()
1066 … (*screen->vk_SetMoltenVKConfigurationMVK)(screen->instance, &molten_config, &molten_config_size); in zink_internal_setup_moltenvk()
1077 struct zink_screen *screen = CALLOC_STRUCT(zink_screen); in zink_internal_create_screen() local
1078 if (!screen) in zink_internal_create_screen()
1083 screen->instance = create_instance(screen); in zink_internal_create_screen()
1084 if (!screen->instance) in zink_internal_create_screen()
1087 if (!load_instance_extensions(screen)) in zink_internal_create_screen()
1090 if (screen->have_debug_utils_ext && !create_debug(screen)) in zink_internal_create_screen()
1093 screen->pdev = choose_pdev(screen->instance); in zink_internal_create_screen()
1094 update_queue_props(screen); in zink_internal_create_screen()
1096 screen->have_X8_D24_UNORM_PACK32 = zink_is_depth_format_supported(screen, in zink_internal_create_screen()
1098 screen->have_D24_UNORM_S8_UINT = zink_is_depth_format_supported(screen, in zink_internal_create_screen()
1101 if (!zink_get_physical_device_info(screen)) { in zink_internal_create_screen()
1107 zink_internal_setup_moltenvk(screen); in zink_internal_create_screen()
1110 if (fd >= 0 && !screen->info.have_KHR_external_memory_fd) { in zink_internal_create_screen()
1118 qci.queueFamilyIndex = screen->gfx_queue; in zink_internal_create_screen()
1123 … screen->info.have_EXT_blend_operation_advanced = screen->info.have_EXT_blend_operation_advanced && in zink_internal_create_screen()
1124 … screen->info.blend_props.advancedBlendNonPremultipliedSrcColor && in zink_internal_create_screen()
1125 … screen->info.blend_props.advancedBlendNonPremultipliedDstColor; in zink_internal_create_screen()
1134 if (screen->info.feats.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2) { in zink_internal_create_screen()
1135 dci.pNext = &screen->info.feats; in zink_internal_create_screen()
1137 dci.pEnabledFeatures = &screen->info.feats.features; in zink_internal_create_screen()
1140 dci.ppEnabledExtensionNames = screen->info.extensions; in zink_internal_create_screen()
1141 dci.enabledExtensionCount = screen->info.num_extensions; in zink_internal_create_screen()
1143 if (vkCreateDevice(screen->pdev, &dci, NULL, &screen->dev) != VK_SUCCESS) in zink_internal_create_screen()
1146 if (!load_device_extensions(screen)) in zink_internal_create_screen()
1149 screen->winsys = winsys; in zink_internal_create_screen()
1151 screen->base.get_name = zink_get_name; in zink_internal_create_screen()
1152 screen->base.get_vendor = zink_get_vendor; in zink_internal_create_screen()
1153 screen->base.get_device_vendor = zink_get_device_vendor; in zink_internal_create_screen()
1154 screen->base.get_param = zink_get_param; in zink_internal_create_screen()
1155 screen->base.get_paramf = zink_get_paramf; in zink_internal_create_screen()
1156 screen->base.get_shader_param = zink_get_shader_param; in zink_internal_create_screen()
1157 screen->base.get_compiler_options = zink_get_compiler_options; in zink_internal_create_screen()
1158 screen->base.is_format_supported = zink_is_format_supported; in zink_internal_create_screen()
1159 screen->base.context_create = zink_context_create; in zink_internal_create_screen()
1160 screen->base.flush_frontbuffer = zink_flush_frontbuffer; in zink_internal_create_screen()
1161 screen->base.destroy = zink_destroy_screen; in zink_internal_create_screen()
1163 zink_screen_resource_init(&screen->base); in zink_internal_create_screen()
1164 zink_screen_fence_init(&screen->base); in zink_internal_create_screen()
1166 slab_create_parent(&screen->transfer_pool, sizeof(struct zink_transfer), 16); in zink_internal_create_screen()
1168 return &screen->base; in zink_internal_create_screen()
1171 FREE(screen); in zink_internal_create_screen()