anv: Allow blitting to/from any supported format
Now that blorp handles all the cases, why not? The only real change we have to make is to stop using anv_swizzle_for_render() in blorp_blit because it doesn't work for B4G4R4A4 and blorp now natively handles that. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
@@ -602,8 +602,7 @@ void anv_CmdBlitImage(
|
||||
blorp_blit(&batch, &src, src_res->mipLevel, src_z,
|
||||
src_format.isl_format, src_format.swizzle,
|
||||
&dst, dst_res->mipLevel, dst_z,
|
||||
dst_format.isl_format,
|
||||
anv_swizzle_for_render(dst_format.swizzle),
|
||||
dst_format.isl_format, dst_format.swizzle,
|
||||
src_x0, src_y0, src_x1, src_y1,
|
||||
dst_x0, dst_y0, dst_x1, dst_y1,
|
||||
gl_filter, flip_x, flip_y);
|
||||
|
||||
@@ -519,8 +519,7 @@ get_image_format_features(const struct gen_device_info *devinfo,
|
||||
return 0;
|
||||
|
||||
if (isl_format_supports_sampling(devinfo, plane_format.isl_format)) {
|
||||
flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
|
||||
VK_FORMAT_FEATURE_BLIT_SRC_BIT;
|
||||
flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
|
||||
|
||||
if (isl_format_supports_filtering(devinfo, plane_format.isl_format))
|
||||
flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
|
||||
@@ -532,8 +531,7 @@ get_image_format_features(const struct gen_device_info *devinfo,
|
||||
*/
|
||||
if (isl_format_supports_rendering(devinfo, plane_format.isl_format) &&
|
||||
plane_format.swizzle.a == ISL_CHANNEL_SELECT_ALPHA) {
|
||||
flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
|
||||
VK_FORMAT_FEATURE_BLIT_DST_BIT;
|
||||
flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
|
||||
|
||||
if (isl_format_supports_alpha_blending(devinfo, plane_format.isl_format))
|
||||
flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
|
||||
@@ -550,7 +548,9 @@ get_image_format_features(const struct gen_device_info *devinfo,
|
||||
flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
|
||||
|
||||
if (flags) {
|
||||
flags |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
|
||||
flags |= VK_FORMAT_FEATURE_BLIT_SRC_BIT |
|
||||
VK_FORMAT_FEATURE_BLIT_DST_BIT |
|
||||
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
|
||||
VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user