Mesa (main): anv: Put first few push constants directly into Task/Mesh InlineData
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Feb 2 18:36:14 UTC 2022
Module: Mesa
Branch: main
Commit: da273b2b7b4ceb46dc10a8f746aa74a8c502d2d6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=da273b2b7b4ceb46dc10a8f746aa74a8c502d2d6
Author: Marcin Ślusarz <marcin.slusarz at intel.com>
Date: Mon Dec 13 14:14:04 2021 +0100
anv: Put first few push constants directly into Task/Mesh InlineData
Reviewed-by: Caio Oliveira <caio.oliveira at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13662>
---
src/intel/vulkan/genX_cmd_buffer.c | 8 ++++++++
src/intel/vulkan/genX_pipeline.c | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index 24ea3cf1781..4ceaa2efc76 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -3554,6 +3554,10 @@ cmd_buffer_flush_mesh_inline_data(struct anv_cmd_buffer *cmd_buffer,
uint64_t addr = anv_address_physical(buffer);
data.InlineData[0] = addr & 0xffffffff;
data.InlineData[1] = addr >> 32;
+
+ memcpy(&data.InlineData[BRW_TASK_MESH_PUSH_CONSTANTS_START_DW],
+ cmd_buffer->state.gfx.base.push_constants.client_data,
+ BRW_TASK_MESH_PUSH_CONSTANTS_SIZE_DW * 4);
}
}
}
@@ -3573,6 +3577,10 @@ cmd_buffer_flush_mesh_inline_data(struct anv_cmd_buffer *cmd_buffer,
uint64_t addr = anv_address_physical(buffer);
data.InlineData[0] = addr & 0xffffffff;
data.InlineData[1] = addr >> 32;
+
+ memcpy(&data.InlineData[BRW_TASK_MESH_PUSH_CONSTANTS_START_DW],
+ cmd_buffer->state.gfx.base.push_constants.client_data,
+ BRW_TASK_MESH_PUSH_CONSTANTS_SIZE_DW * 4);
}
}
}
diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
index b4b80d8ad89..598b2093b29 100644
--- a/src/intel/vulkan/genX_pipeline.c
+++ b/src/intel/vulkan/genX_pipeline.c
@@ -2652,7 +2652,8 @@ emit_task_state(struct anv_graphics_pipeline *pipeline)
/*
* 3DSTATE_TASK_SHADER_DATA.InlineData[0:1] will be used for an address
- * of a buffer with push constants and descriptor set table.
+ * of a buffer with push constants and descriptor set table and
+ * InlineData[2:7] will be used for first few push constants.
*/
task.EmitInlineParameter = true;
@@ -2725,7 +2726,8 @@ emit_mesh_state(struct anv_graphics_pipeline *pipeline)
/*
* 3DSTATE_MESH_SHADER_DATA.InlineData[0:1] will be used for an address
- * of a buffer with push constants and descriptor set table.
+ * of a buffer with push constants and descriptor set table and
+ * InlineData[2:7] will be used for first few push constants.
*/
mesh.EmitInlineParameter = true;
More information about the mesa-commit
mailing list