From d574b0a51e8af26037a3df21981d4535b4d6117c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 13 May 2021 08:54:51 -0400 Subject: [PATCH] zink: apply zink_resource_object::offset for memory flush/invalidates Acked-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_resource.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 7e20a79c1f0..9a5b7fad404 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -935,7 +935,7 @@ buffer_transfer_map(struct zink_context *ctx, struct zink_resource *res, unsigne #endif ) { VkDeviceSize size = box->width; - VkDeviceSize offset = trans->offset + box->x; + VkDeviceSize offset = res->obj->offset + trans->offset + box->x; VkMappedMemoryRange range = init_mem_range(screen, res, offset, size); if (vkInvalidateMappedMemoryRanges(screen->dev, 1, &range) != VK_SUCCESS) { vkUnmapMemory(screen->dev, res->obj->mem); @@ -1059,7 +1059,7 @@ zink_transfer_map(struct pipe_context *pctx, (box->x / desc->block.width) * (desc->block.bits / 8); if (!res->obj->coherent) { VkDeviceSize size = box->width * box->height * desc->block.bits / 8; - VkMappedMemoryRange range = init_mem_range(screen, res, offset, size); + VkMappedMemoryRange range = init_mem_range(screen, res, res->obj->offset + offset, size); vkFlushMappedMemoryRanges(screen->dev, 1, &range); } ptr = ((uint8_t *)base) + offset;