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>
This commit is contained in:
parent
f460fb3f91
commit
bf289e3123
|
@ -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,
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue