• Home
  • Raw
  • Download

Lines Matching refs:ici

174 check_ici(struct zink_screen *screen, VkImageCreateInfo *ici, uint64_t modifier)  in check_ici()  argument
186 info.format = ici->format; in check_ici()
187 info.type = ici->imageType; in check_ici()
188 info.tiling = ici->tiling; in check_ici()
189 info.usage = ici->usage; in check_ici()
190 info.flags = ici->flags; in check_ici()
206 ret = VKSCR(GetPhysicalDeviceImageFormatProperties)(screen->pdev, ici->format, ici->imageType, in check_ici()
207ici->tiling, ici->usage, ici->flags, &image_props); in check_ici()
276 get_image_usage(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe_resource *tem… in get_image_usage() argument
278 VkImageTiling tiling = ici->tiling; in get_image_usage()
293 ici->usage = usage; in get_image_usage()
294 if (check_ici(screen, ici, *mod)) in get_image_usage()
305 ici->usage = usage; in get_image_usage()
306 if (check_ici(screen, ici, *mod)) in get_image_usage()
317 ici->usage = usage; in get_image_usage()
318 if (check_ici(screen, ici, *mod)) in get_image_usage()
327 create_ici(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe_resource *templ, b… in create_ici() argument
329 ici->sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; in create_ici()
330 ici->pNext = NULL; in create_ici()
331ici->flags = modifiers_count || dmabuf || bind & (PIPE_BIND_SCANOUT | PIPE_BIND_DEPTH_STENCIL) ? 0… in create_ici()
332 ici->usage = 0; in create_ici()
333 ici->queueFamilyIndexCount = 0; in create_ici()
338 ici->imageType = VK_IMAGE_TYPE_1D; in create_ici()
346 ici->imageType = VK_IMAGE_TYPE_2D; in create_ici()
350 ici->imageType = VK_IMAGE_TYPE_3D; in create_ici()
351 ici->flags |= VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT; in create_ici()
364 ici->flags |= VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT; in create_ici()
366 ici->format = zink_get_format(screen, templ->format); in create_ici()
367 ici->extent.width = templ->width0; in create_ici()
368 ici->extent.height = templ->height0; in create_ici()
369 ici->extent.depth = templ->depth0; in create_ici()
370 ici->mipLevels = templ->last_level + 1; in create_ici()
371 ici->arrayLayers = MAX2(templ->array_size, 1); in create_ici()
372 ici->samples = templ->nr_samples ? templ->nr_samples : VK_SAMPLE_COUNT_1_BIT; in create_ici()
373ici->tiling = modifiers_count ? VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT : bind & PIPE_BIND_LINEAR … in create_ici()
374 ici->sharingMode = VK_SHARING_MODE_EXCLUSIVE; in create_ici()
375 ici->initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; in create_ici()
382 bool want_cube = ici->samples == 1 && in create_ici()
385 …(templ->target == PIPE_TEXTURE_2D_ARRAY && ici->extent.width == ici->extent.height && ici->arrayLa… in create_ici()
388 ici->arrayLayers *= 6; in create_ici()
393 ici->tiling = VK_IMAGE_TILING_LINEAR; in create_ici()
398 while (!ici->usage) { in create_ici()
400 switch (ici->tiling) { in create_ici()
402 ici->tiling = VK_IMAGE_TILING_OPTIMAL; in create_ici()
406 ici->tiling = VK_IMAGE_TILING_LINEAR; in create_ici()
413 ici->tiling = VK_IMAGE_TILING_OPTIMAL; in create_ici()
418 if (tried[ici->tiling]) { in create_ici()
423 ici->usage = get_image_usage(screen, ici, templ, bind, modifiers_count, modifiers, &mod); in create_ici()
425 if (ici->tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) in create_ici()
426 tried[ici->tiling] = true; in create_ici()
429 ici->flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT; in create_ici()
430 if (get_image_usage(screen, ici, templ, bind, modifiers_count, modifiers, &mod) != ici->usage) in create_ici()
431 ici->flags &= ~VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT; in create_ici()
491 VkImageCreateInfo ici; in resource_object_create() local
492 …uint64_t mod = create_ici(screen, &ici, templ, !!external, templ->bind, ici_modifier_count, ici_mo… in resource_object_create()
503 ici.pNext = &emici; in resource_object_create()
505 … assert(ici.tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT || mod != DRM_FORMAT_MOD_INVALID); in resource_object_create()
506 if (winsys_modifier && ici.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) { in resource_object_create()
509 idfmeci.pNext = ici.pNext; in resource_object_create()
527 ici.pNext = &idfmeci; in resource_object_create()
528 } else if (ici.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) { in resource_object_create()
530 idfmlci.pNext = ici.pNext; in resource_object_create()
533 ici.pNext = &idfmlci; in resource_object_create()
534 } else if (ici.tiling == VK_IMAGE_TILING_OPTIMAL) { in resource_object_create()
537 ici.pNext = NULL; in resource_object_create()
544 *optimal_tiling = ici.tiling == VK_IMAGE_TILING_OPTIMAL; in resource_object_create()
546 if (ici.usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT) in resource_object_create()
549 if (ici.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) in resource_object_create()
559 ici.tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) { in resource_object_create()
560 image_wsi_info.pNext = ici.pNext; in resource_object_create()
561 ici.pNext = &image_wsi_info; in resource_object_create()
564 VkResult result = VKSCR(CreateImage)(screen->dev, &ici, NULL, &obj->image); in resource_object_create()
587 if (templ->usage == PIPE_USAGE_STAGING && ici.tiling == VK_IMAGE_TILING_LINEAR) in resource_object_create()
592 obj->vkflags = ici.flags; in resource_object_create()
593 obj->vkusage = ici.usage; in resource_object_create()