diff --git a/src/amd/vulkan/meta/radv_meta_buffer.c b/src/amd/vulkan/meta/radv_meta_buffer.c index 49293a1483b..e9edef6693a 100644 --- a/src/amd/vulkan/meta/radv_meta_buffer.c +++ b/src/amd/vulkan/meta/radv_meta_buffer.c @@ -301,8 +301,7 @@ radv_CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSi fillSize = vk_buffer_range(&dst_buffer->vk, dstOffset, fillSize) & ~3ull; - radv_fill_buffer(cmd_buffer, NULL, dst_buffer->bo, - radv_buffer_get_va(dst_buffer->bo) + dst_buffer->offset + dstOffset, fillSize, data); + radv_fill_buffer(cmd_buffer, NULL, dst_buffer->bo, dst_buffer->addr + dstOffset, fillSize, data); } static void @@ -317,8 +316,8 @@ copy_buffer(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *src_buffer, old_predicating = cmd_buffer->state.predicating; cmd_buffer->state.predicating = false; - const uint64_t src_va = radv_buffer_get_va(src_buffer->bo) + src_buffer->offset + region->srcOffset; - const uint64_t dst_va = radv_buffer_get_va(dst_buffer->bo) + dst_buffer->offset + region->dstOffset; + const uint64_t src_va = src_buffer->addr + region->srcOffset; + const uint64_t dst_va = dst_buffer->addr + region->dstOffset; radv_copy_buffer(cmd_buffer, src_buffer->bo, dst_buffer->bo, src_va, dst_va, region->size); @@ -368,24 +367,23 @@ radv_CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDevice VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); VK_FROM_HANDLE(radv_buffer, dst_buffer, dstBuffer); struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); - uint64_t va = radv_buffer_get_va(dst_buffer->bo); - va += dstOffset + dst_buffer->offset; + const uint64_t dst_va = dst_buffer->addr + dstOffset; assert(!(dataSize & 3)); - assert(!(va & 3)); + assert(!(dst_va & 3)); if (!dataSize) return; if (dataSize < RADV_BUFFER_UPDATE_THRESHOLD && cmd_buffer->qf != RADV_QUEUE_TRANSFER) { radv_cs_add_buffer(device->ws, cmd_buffer->cs, dst_buffer->bo); - radv_update_buffer_cp(cmd_buffer, va, pData, dataSize); + radv_update_buffer_cp(cmd_buffer, dst_va, pData, dataSize); } else { uint32_t buf_offset; radv_cmd_buffer_upload_data(cmd_buffer, dataSize, pData, &buf_offset); const uint64_t src_va = radv_buffer_get_va(cmd_buffer->upload.upload_bo) + buf_offset; - radv_copy_buffer(cmd_buffer, cmd_buffer->upload.upload_bo, dst_buffer->bo, src_va, va, dataSize); + radv_copy_buffer(cmd_buffer, cmd_buffer->upload.upload_bo, dst_buffer->bo, src_va, dst_va, dataSize); } } diff --git a/src/amd/vulkan/meta/radv_meta_bufimage.c b/src/amd/vulkan/meta/radv_meta_bufimage.c index 0f2b0e5ceea..2a572fc8703 100644 --- a/src/amd/vulkan/meta/radv_meta_bufimage.c +++ b/src/amd/vulkan/meta/radv_meta_bufimage.c @@ -1003,8 +1003,8 @@ fixup_gfx9_cs_copy(struct radv_cmd_buffer *cmd_buffer, const struct radv_meta_bl struct radeon_winsys_bo *mem_bo = buf_bsurf->buffer->bo; const uint64_t img_va = radv_buffer_get_va(img_bo) + image->bindings[0].offset + addr; /* buf_bsurf->offset already includes the layer offset */ - const uint64_t mem_va = radv_buffer_get_va(mem_bo) + buf_bsurf->buffer->offset + buf_bsurf->offset + - y * buf_bsurf->pitch * surf->bpe + x * surf->bpe; + const uint64_t mem_va = + buf_bsurf->buffer->addr + buf_bsurf->offset + y * buf_bsurf->pitch * surf->bpe + x * surf->bpe; if (to_image) { radv_copy_buffer(cmd_buffer, mem_bo, img_bo, mem_va, img_va, surf->bpe); } else { diff --git a/src/amd/vulkan/radv_acceleration_structure.c b/src/amd/vulkan/radv_acceleration_structure.c index cebb52a9257..f71f4f4bd7c 100644 --- a/src/amd/vulkan/radv_acceleration_structure.c +++ b/src/amd/vulkan/radv_acceleration_structure.c @@ -588,8 +588,8 @@ radv_update_as(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuild radv_get_acceleration_structure_layout(device, leaf_count, build_info, &layout); /* Copy header/metadata */ - const uint64_t src_va = radv_buffer_get_va(src_as_buffer->bo) + src_as_buffer->offset + src->offset; - const uint64_t dst_va = radv_buffer_get_va(dst_as_buffer->bo) + dst_as_buffer->offset + dst->offset; + const uint64_t src_va = src_as_buffer->addr + src->offset; + const uint64_t dst_va = dst_as_buffer->addr + dst->offset; radv_copy_buffer(cmd_buffer, src_as_buffer->bo, dst_as_buffer->bo, src_va, dst_va, layout.bvh_offset); } diff --git a/src/amd/vulkan/radv_buffer.c b/src/amd/vulkan/radv_buffer.c index 4f993089504..bf721abceb5 100644 --- a/src/amd/vulkan/radv_buffer.c +++ b/src/amd/vulkan/radv_buffer.c @@ -33,7 +33,6 @@ radv_buffer_init(struct radv_buffer *buffer, struct radv_device *device, struct vk_buffer_init(&device->vk, &buffer->vk, &createInfo); buffer->bo = bo; - buffer->offset = offset; buffer->addr = radv_buffer_get_va(bo) + offset; } @@ -83,7 +82,6 @@ radv_create_buffer(struct radv_device *device, const VkBufferCreateInfo *pCreate vk_buffer_init(&device->vk, &buffer->vk, pCreateInfo); buffer->bo = NULL; - buffer->offset = 0; buffer->addr = 0; buffer->range = 0; @@ -175,7 +173,6 @@ radv_BindBufferMemory2(VkDevice _device, uint32_t bindInfoCount, const VkBindBuf } buffer->bo = mem->bo; - buffer->offset = pBindInfos[i].memoryOffset; buffer->addr = radv_buffer_get_va(mem->bo) + pBindInfos[i].memoryOffset; buffer->range = reqs.memoryRequirements.size; diff --git a/src/amd/vulkan/radv_buffer.h b/src/amd/vulkan/radv_buffer.h index aace657dff3..4c726db78a6 100644 --- a/src/amd/vulkan/radv_buffer.h +++ b/src/amd/vulkan/radv_buffer.h @@ -23,7 +23,6 @@ struct radv_buffer { /* Set when bound */ struct radeon_winsys_bo *bo; - VkDeviceSize offset; uint64_t addr; uint64_t range; }; diff --git a/src/amd/vulkan/radv_buffer_view.c b/src/amd/vulkan/radv_buffer_view.c index d0503c24a44..7653203e7d0 100644 --- a/src/amd/vulkan/radv_buffer_view.c +++ b/src/amd/vulkan/radv_buffer_view.c @@ -62,13 +62,13 @@ radv_buffer_view_init(struct radv_buffer_view *view, struct radv_device *device, const VkBufferViewCreateInfo *pCreateInfo) { VK_FROM_HANDLE(radv_buffer, buffer, pCreateInfo->buffer); - uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset; vk_buffer_view_init(&device->vk, &view->vk, pCreateInfo); view->bo = buffer->bo; - radv_make_texel_buffer_descriptor(device, va, view->vk.format, view->vk.offset, view->vk.range, view->state); + radv_make_texel_buffer_descriptor(device, buffer->addr, view->vk.format, view->vk.offset, view->vk.range, + view->state); } void diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index c1fd8f6e861..37793b40041 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -5832,7 +5832,7 @@ radv_get_vbo_info(const struct radv_cmd_buffer *cmd_buffer, uint32_t idx, struct const uint32_t offset = cmd_buffer->vertex_bindings[binding].offset; - vbo_info->va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + vbo_info->va = buffer->addr + offset; if (cmd_buffer->vertex_bindings[binding].size) { vbo_info->size = cmd_buffer->vertex_bindings[binding].size; @@ -7067,8 +7067,7 @@ radv_CmdBindIndexBuffer2(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDevic cmd_buffer->state.index_type = vk_to_index_type(indexType); if (index_buffer) { - cmd_buffer->state.index_va = radv_buffer_get_va(index_buffer->bo); - cmd_buffer->state.index_va += index_buffer->offset + offset; + cmd_buffer->state.index_va = index_buffer->addr + offset; int index_size = radv_get_vgt_index_size(vk_to_index_type(indexType)); cmd_buffer->state.max_index_count = (vk_buffer_range(&index_buffer->vk, offset, size)) / index_size; @@ -11308,7 +11307,7 @@ radv_CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer _buffer, VkDeviceSi struct radv_draw_info info; info.count = drawCount; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + info.indirect_va = buffer->addr + offset; info.stride = stride; info.strmout_va = 0; info.count_va = 0; @@ -11334,7 +11333,7 @@ radv_CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer _buffer, VkD info.indexed = true; info.count = drawCount; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + info.indirect_va = buffer->addr + offset; info.stride = stride; info.count_va = 0; info.strmout_va = 0; @@ -11359,8 +11358,8 @@ radv_CmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer _buffer, VkDev struct radv_draw_info info; info.count = maxDrawCount; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; - info.count_va = radv_buffer_get_va(count_buffer->bo) + count_buffer->offset + countBufferOffset; + info.indirect_va = buffer->addr + offset; + info.count_va = count_buffer->addr + countBufferOffset; info.stride = stride; info.strmout_va = 0; info.indexed = false; @@ -11388,8 +11387,8 @@ radv_CmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer _buffer info.indexed = true; info.count = maxDrawCount; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; - info.count_va = radv_buffer_get_va(count_buffer->bo) + count_buffer->offset + countBufferOffset; + info.indirect_va = buffer->addr + offset; + info.count_va = count_buffer->addr + countBufferOffset; info.stride = stride; info.strmout_va = 0; info.instance_count = 0; @@ -11440,7 +11439,7 @@ radv_CmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer, VkBuffer _buffer struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); struct radv_draw_info info; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + info.indirect_va = buffer->addr + offset; info.stride = stride; info.count = drawCount; info.strmout_va = 0; @@ -11476,11 +11475,11 @@ radv_CmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer, VkBuffer _b const struct radv_physical_device *pdev = radv_device_physical(device); struct radv_draw_info info; - info.indirect_va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + info.indirect_va = buffer->addr + offset; info.stride = stride; info.count = maxDrawCount; info.strmout_va = 0; - info.count_va = radv_buffer_get_va(count_buffer->bo) + count_buffer->offset + countBufferOffset; + info.count_va = count_buffer->addr + countBufferOffset; info.indexed = false; info.instance_count = 0; @@ -12137,7 +12136,7 @@ radv_CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer _buffer, VkDevi { VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); VK_FROM_HANDLE(radv_buffer, buffer, _buffer); - const uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + const uint64_t va = buffer->addr + offset; radv_indirect_dispatch(cmd_buffer, buffer->bo, va); } @@ -13218,7 +13217,7 @@ radv_CmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer, bool draw_visible = true; uint64_t va; - va = radv_buffer_get_va(buffer->bo) + buffer->offset + pConditionalRenderingBegin->offset; + va = buffer->addr + pConditionalRenderingBegin->offset; radv_cs_add_buffer(device->ws, cmd_buffer->cs, buffer->bo); @@ -13258,7 +13257,7 @@ radv_CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer, uint32_t VK_FROM_HANDLE(radv_buffer, buffer, pBuffers[i]); uint32_t idx = firstBinding + i; - sb[idx].va = radv_buffer_get_va(buffer->bo) + buffer->offset + pOffsets[i]; + sb[idx].va = buffer->addr + pOffsets[i]; if (!pSizes || pSizes[i] == VK_WHOLE_SIZE) { sb[idx].size = buffer->vk.size - pOffsets[i]; @@ -13418,8 +13417,7 @@ radv_CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstC if (pCounterBufferOffsets) counter_buffer_offset = pCounterBufferOffsets[counter_buffer_idx]; - va += radv_buffer_get_va(buffer->bo); - va += buffer->offset + counter_buffer_offset; + va += buffer->addr + counter_buffer_offset; radv_cs_add_buffer(device->ws, cs, buffer->bo); } @@ -13528,8 +13526,7 @@ radv_CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCou if (pCounterBufferOffsets) counter_buffer_offset = pCounterBufferOffsets[counter_buffer_idx]; - va += radv_buffer_get_va(buffer->bo); - va += buffer->offset + counter_buffer_offset; + va += buffer->addr + counter_buffer_offset; radv_cs_add_buffer(device->ws, cs, buffer->bo); } @@ -13631,7 +13628,7 @@ radv_CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanc info.count = 0; info.instance_count = instanceCount; info.first_instance = firstInstance; - info.strmout_va = radv_buffer_get_va(counterBuffer->bo) + counterBuffer->offset + counterBufferOffset; + info.strmout_va = counterBuffer->addr + counterBufferOffset; info.stride = vertexStride; info.indexed = false; info.indirect_va = 0; @@ -13665,7 +13662,7 @@ radv_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer, VkPipelineStageFlag struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const struct radv_physical_device *pdev = radv_device_physical(device); struct radeon_cmdbuf *cs = cmd_buffer->cs; - const uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset + dstOffset; + const uint64_t va = buffer->addr + dstOffset; radv_cs_add_buffer(device->ws, cs, buffer->bo); diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c index 9209fd6c10b..d734ad75660 100644 --- a/src/amd/vulkan/radv_descriptor_set.c +++ b/src/amd/vulkan/radv_descriptor_set.c @@ -1090,7 +1090,7 @@ write_buffer_descriptor_impl(struct radv_device *device, struct radv_cmd_buffer uint64_t va = 0, range = 0; if (buffer) { - va = radv_buffer_get_va(buffer->bo) + buffer_info->offset + buffer->offset; + va = buffer->addr + buffer_info->offset; range = vk_buffer_range(&buffer->vk, buffer_info->offset, buffer_info->range); assert(buffer->vk.size > 0 && range > 0); @@ -1128,7 +1128,6 @@ write_dynamic_buffer_descriptor(struct radv_device *device, struct radv_descript struct radeon_winsys_bo **buffer_list, const VkDescriptorBufferInfo *buffer_info) { VK_FROM_HANDLE(radv_buffer, buffer, buffer_info->buffer); - uint64_t va; unsigned size; if (!buffer) { @@ -1137,8 +1136,6 @@ write_dynamic_buffer_descriptor(struct radv_device *device, struct radv_descript return; } - va = radv_buffer_get_va(buffer->bo); - size = vk_buffer_range(&buffer->vk, buffer_info->offset, buffer_info->range); assert(buffer->vk.size > 0 && size > 0); @@ -1148,8 +1145,7 @@ write_dynamic_buffer_descriptor(struct radv_device *device, struct radv_descript * buffer accesses. */ size = align(size, 4); - va += buffer_info->offset + buffer->offset; - range->va = va; + range->va = buffer->addr + buffer_info->offset; range->size = size; *buffer_list = buffer->bo; diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index e6ceb0a1310..2417bcdbcaa 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -2453,7 +2453,7 @@ radv_CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPoo struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const struct radv_physical_device *pdev = radv_device_physical(device); const struct radv_instance *instance = radv_physical_device_instance(pdev); - const uint64_t dst_va = radv_buffer_get_va(dst_buffer->bo) + dst_buffer->offset + dstOffset; + const uint64_t dst_va = dst_buffer->addr + dstOffset; if (!queryCount) return; diff --git a/src/amd/vulkan/radv_rmv.c b/src/amd/vulkan/radv_rmv.c index eb7f70b0e5f..22ec9ffeff4 100644 --- a/src/amd/vulkan/radv_rmv.c +++ b/src/amd/vulkan/radv_rmv.c @@ -554,8 +554,7 @@ radv_rmv_log_buffer_bind(struct radv_device *device, VkBuffer _buffer) VK_FROM_HANDLE(radv_buffer, buffer, _buffer); simple_mtx_lock(&device->vk.memory_trace_data.token_mtx); - log_resource_bind_locked(device, (uint64_t)_buffer, buffer->bo->initial_domain, - radv_buffer_get_va(buffer->bo) + buffer->offset, buffer->vk.size); + log_resource_bind_locked(device, (uint64_t)_buffer, buffer->bo->initial_domain, buffer->addr, buffer->vk.size); simple_mtx_unlock(&device->vk.memory_trace_data.token_mtx); } diff --git a/src/amd/vulkan/radv_sdma.c b/src/amd/vulkan/radv_sdma.c index d1efdc2e68a..9dfb76f91c4 100644 --- a/src/amd/vulkan/radv_sdma.c +++ b/src/amd/vulkan/radv_sdma.c @@ -179,7 +179,7 @@ radv_sdma_get_buf_surf(const struct radv_buffer *const buffer, const struct radv const uint32_t bpe = radv_sdma_get_bpe(image, region->imageSubresource.aspectMask); const struct radv_sdma_surf info = { - .va = radv_buffer_get_va(buffer->bo) + buffer->offset + region->bufferOffset, + .va = buffer->addr + region->bufferOffset, .pitch = pitch, .slice_pitch = slice_pitch, .bpp = bpe, diff --git a/src/amd/vulkan/radv_video.c b/src/amd/vulkan/radv_video.c index 3dcaf003ce7..d77fcdc437f 100644 --- a/src/amd/vulkan/radv_video.c +++ b/src/amd/vulkan/radv_video.c @@ -2682,7 +2682,7 @@ radv_uvd_decode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoDecodeInf radv_buffer_get_va(vid->ctx.mem->bo) + vid->ctx.offset); send_cmd(cmd_buffer, RDECODE_CMD_BITSTREAM_BUFFER, src_buffer->bo, - radv_buffer_get_va(src_buffer->bo) + src_buffer->offset + frame_info->srcBufferOffset + slice_offset); + src_buffer->addr + frame_info->srcBufferOffset + slice_offset); struct radv_image_view *dst_iv = radv_image_view_from_handle(frame_info->dstPictureResource.imageViewBinding); struct radv_image *img = dst_iv->image; @@ -2767,7 +2767,7 @@ radv_vcn_decode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoDecodeInf radv_buffer_get_va(vid->ctx.mem->bo) + vid->ctx.offset); send_cmd(cmd_buffer, RDECODE_CMD_BITSTREAM_BUFFER, src_buffer->bo, - radv_buffer_get_va(src_buffer->bo) + src_buffer->offset + frame_info->srcBufferOffset + slice_offset); + src_buffer->addr + frame_info->srcBufferOffset + slice_offset); struct radv_image_view *dst_iv = radv_image_view_from_handle(frame_info->dstPictureResource.imageViewBinding); struct radv_image *img = dst_iv->image; diff --git a/src/amd/vulkan/radv_video_enc.c b/src/amd/vulkan/radv_video_enc.c index cf845fdfd4e..90313eaab3a 100644 --- a/src/amd/vulkan/radv_video_enc.c +++ b/src/amd/vulkan/radv_video_enc.c @@ -1327,7 +1327,7 @@ radv_enc_bitstream(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *buffe struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const struct radv_physical_device *pdev = radv_device_physical(device); struct radeon_cmdbuf *cs = cmd_buffer->cs; - uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset + offset; + uint64_t va = buffer->addr + offset; radv_cs_add_buffer(device->ws, cs, buffer->bo); ENC_BEGIN;