Mesa (main): anv: Fast-path surface relocs when we have softpin
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 8 23:09:30 UTC 2021
Module: Mesa
Branch: main
Commit: 921bd2d1c76394aa987d6da5db03fc6b63883e9d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=921bd2d1c76394aa987d6da5db03fc6b63883e9d
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Tue Jun 8 09:15:09 2021 -0500
anv: Fast-path surface relocs when we have softpin
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11236>
---
src/intel/vulkan/genX_cmd_buffer.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index 0af322c199c..ed92852a612 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -243,13 +243,21 @@ static void
add_surface_reloc(struct anv_cmd_buffer *cmd_buffer,
struct anv_state state, struct anv_address addr)
{
- const struct isl_device *isl_dev = &cmd_buffer->device->isl_dev;
+ VkResult result;
- VkResult result =
- anv_reloc_list_add(&cmd_buffer->surface_relocs, &cmd_buffer->pool->alloc,
- state.offset + isl_dev->ss.addr_offset,
- addr.bo, addr.offset, NULL);
- if (result != VK_SUCCESS)
+ if (anv_use_softpin(cmd_buffer->device->physical)) {
+ result = anv_reloc_list_add_bo(&cmd_buffer->surface_relocs,
+ &cmd_buffer->pool->alloc,
+ addr.bo);
+ } else {
+ const struct isl_device *isl_dev = &cmd_buffer->device->isl_dev;
+ result = anv_reloc_list_add(&cmd_buffer->surface_relocs,
+ &cmd_buffer->pool->alloc,
+ state.offset + isl_dev->ss.addr_offset,
+ addr.bo, addr.offset, NULL);
+ }
+
+ if (unlikely(result != VK_SUCCESS))
anv_batch_set_error(&cmd_buffer->batch, result);
}
More information about the mesa-commit
mailing list