return true;
}
-static VkFormatFeatureFlags
-get_resource_features(struct zink_screen *screen, struct zink_resource *res)
-{
- VkFormatProperties props = screen->format_props[res->base.b.format];
- return res->optimal_tiling ? props.optimalTilingFeatures :
- props.linearTilingFeatures;
-}
-
static bool
blit_native(struct zink_context *ctx, const struct pipe_blit_info *info, bool *needs_present_readback)
{
dst->format != zink_get_format(screen, info->dst.format))
return false;
- if (!(get_resource_features(screen, src) & VK_FORMAT_FEATURE_BLIT_SRC_BIT) ||
- !(get_resource_features(screen, dst) & VK_FORMAT_FEATURE_BLIT_DST_BIT))
+ if (!(src->obj->vkfeats & VK_FORMAT_FEATURE_BLIT_SRC_BIT) ||
+ !(dst->obj->vkfeats & VK_FORMAT_FEATURE_BLIT_DST_BIT))
return false;
if ((util_format_is_pure_sint(info->src.format) !=
return false;
if (info->filter == PIPE_TEX_FILTER_LINEAR &&
- !(get_resource_features(screen, src) &
- VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT))
+ !(src->obj->vkfeats & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT))
return false;
apply_dst_clears(ctx, info, false);