zink: verify that src and dst aspects are the same in resource_copy_region hook
this is required by spec Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6263>
This commit is contained in:

committed by
Marge Bot

parent
6feec2d40e
commit
0051551701
@@ -913,6 +913,17 @@ zink_resource_copy_region(struct pipe_context *pctx,
|
|||||||
struct zink_context *ctx = zink_context(pctx);
|
struct zink_context *ctx = zink_context(pctx);
|
||||||
if (dst->base.target != PIPE_BUFFER && src->base.target != PIPE_BUFFER) {
|
if (dst->base.target != PIPE_BUFFER && src->base.target != PIPE_BUFFER) {
|
||||||
VkImageCopy region = {};
|
VkImageCopy region = {};
|
||||||
|
if (util_format_get_num_planes(src->base.format) == 1 &&
|
||||||
|
util_format_get_num_planes(dst->base.format) == 1) {
|
||||||
|
/* If neither the calling command’s srcImage nor the calling command’s dstImage
|
||||||
|
* has a multi-planar image format then the aspectMask member of srcSubresource
|
||||||
|
* and dstSubresource must match
|
||||||
|
*
|
||||||
|
* -VkImageCopy spec
|
||||||
|
*/
|
||||||
|
assert(src->aspect == dst->aspect);
|
||||||
|
} else
|
||||||
|
unreachable("planar formats not yet handled");
|
||||||
|
|
||||||
region.srcSubresource.aspectMask = src->aspect;
|
region.srcSubresource.aspectMask = src->aspect;
|
||||||
region.srcSubresource.mipLevel = src_level;
|
region.srcSubresource.mipLevel = src_level;
|
||||||
|
Reference in New Issue
Block a user