Mesa (main): turnip: Store the computed iova in the tu_image.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 1 16:03:02 UTC 2022
Module: Mesa
Branch: main
Commit: bf289e3123c5a751cc0ae6bc8ad9fb162907f320
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf289e3123c5a751cc0ae6bc8ad9fb162907f320
Author: Emma Anholt <emma at anholt.net>
Date: Mon Jan 31 21:32:30 2022 -0800
turnip: Store the computed iova in the tu_image.
Less of a big deal than for buffers, but let's be consistent in how we
handle our bindings.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14816>
---
src/freedreno/vulkan/tu_clear_blit.c | 4 ++--
src/freedreno/vulkan/tu_cmd_buffer.c | 3 +--
src/freedreno/vulkan/tu_device.c | 4 ++--
src/freedreno/vulkan/tu_image.c | 4 ++--
src/freedreno/vulkan/tu_private.h | 2 +-
5 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.c
index fc2fe87ac94..ebaefcd9c50 100644
--- a/src/freedreno/vulkan/tu_clear_blit.c
+++ b/src/freedreno/vulkan/tu_clear_blit.c
@@ -1224,7 +1224,7 @@ tu6_clear_lrz(struct tu_cmd_buffer *cmd,
VK_SAMPLE_COUNT_1_BIT);
ops->clear_value(cs, PIPE_FORMAT_Z16_UNORM, value);
ops->dst_buffer(cs, PIPE_FORMAT_Z16_UNORM,
- image->bo->iova + image->bo_offset + image->lrz_offset,
+ image->iova + image->lrz_offset,
image->lrz_pitch * 2);
ops->coords(cs, &(VkOffset2D) {}, NULL, &(VkExtent2D) {image->lrz_pitch, image->lrz_height});
ops->run(cmd, cs);
@@ -1252,7 +1252,7 @@ tu_image_view_copy_blit(struct fdl6_view *iview,
&image->layout[tu6_plane_index(image->vk_format, aspect_mask)];
fdl6_view_init(iview, &layout, &(struct fdl_view_args) {
- .iova = image->bo->iova + image->bo_offset,
+ .iova = image->iova,
.base_array_layer = subres->baseArrayLayer + layer,
.layer_count = 1,
.base_miplevel = subres->mipLevel,
diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index 92b6d83780a..3f1a7aec9a6 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -242,8 +242,7 @@ tu6_emit_zs(struct tu_cmd_buffer *cmd,
tu_cs_emit_pkt4(cs, REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE, 3);
tu_cs_image_flag_ref(cs, &iview->view, 0);
- tu_cs_emit_regs(cs, A6XX_GRAS_LRZ_BUFFER_BASE(.bo = iview->image->bo,
- .bo_offset = iview->image->bo_offset + iview->image->lrz_offset),
+ tu_cs_emit_regs(cs, A6XX_GRAS_LRZ_BUFFER_BASE(.qword = iview->image->iova + iview->image->lrz_offset),
A6XX_GRAS_LRZ_BUFFER_PITCH(.pitch = iview->image->lrz_pitch),
A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE());
diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index 7fe30f362df..d87f6d9fd26 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -2287,10 +2287,10 @@ tu_BindImageMemory2(VkDevice device,
if (mem) {
image->bo = &mem->bo;
- image->bo_offset = pBindInfos[i].memoryOffset;
+ image->iova = mem->bo.iova + pBindInfos[i].memoryOffset;
} else {
image->bo = NULL;
- image->bo_offset = 0;
+ image->iova = 0;
}
}
diff --git a/src/freedreno/vulkan/tu_image.c b/src/freedreno/vulkan/tu_image.c
index a1c09fa303e..4c43e5cb03d 100644
--- a/src/freedreno/vulkan/tu_image.c
+++ b/src/freedreno/vulkan/tu_image.c
@@ -184,7 +184,7 @@ tu_image_view_init(struct tu_image_view *iview,
}
struct fdl_view_args args = {};
- args.iova = image->bo->iova + image->bo_offset;
+ args.iova = image->iova;
args.base_array_layer = range->baseArrayLayer;
args.base_miplevel = range->baseMipLevel;
args.layer_count = tu_get_layerCount(image, range);
@@ -230,7 +230,7 @@ tu_image_view_init(struct tu_image_view *iview,
if (image->vk_format == VK_FORMAT_D32_SFLOAT_S8_UINT) {
struct fdl_layout *layout = &image->layout[1];
- iview->stencil_base_addr = image->bo->iova + image->bo_offset +
+ iview->stencil_base_addr = image->iova +
fdl_surface_offset(layout, range->baseMipLevel, range->baseArrayLayer);
iview->stencil_layer_size = fdl_layer_stride(layout, range->baseMipLevel);
iview->stencil_PITCH = A6XX_RB_STENCIL_BUFFER_PITCH(fdl_pitch(layout, range->baseMipLevel)).value;
diff --git a/src/freedreno/vulkan/tu_private.h b/src/freedreno/vulkan/tu_private.h
index 5655a72509b..48b83467773 100644
--- a/src/freedreno/vulkan/tu_private.h
+++ b/src/freedreno/vulkan/tu_private.h
@@ -1483,7 +1483,7 @@ struct tu_image
/* Set when bound */
struct tu_bo *bo;
- VkDeviceSize bo_offset;
+ uint64_t iova;
uint32_t lrz_height;
uint32_t lrz_pitch;
More information about the mesa-commit
mailing list