Mesa (main): panvk: Don't use UBOs for meta_clear
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Feb 18 15:50:25 UTC 2022
Module: Mesa
Branch: main
Commit: 239d59ecddda919702e4faa64beba2465355ff7f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=239d59ecddda919702e4faa64beba2465355ff7f
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Mon Feb 7 14:40:14 2022 -0500
panvk: Don't use UBOs for meta_clear
It must always be pushed, so constructing a uniform remap table is
useless.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14913>
---
src/panfrost/vulkan/panvk_vX_meta_clear.c | 33 +++++--------------------------
1 file changed, 5 insertions(+), 28 deletions(-)
diff --git a/src/panfrost/vulkan/panvk_vX_meta_clear.c b/src/panfrost/vulkan/panvk_vX_meta_clear.c
index 218c966664b..e596bf4a5cf 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_clear.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_clear.c
@@ -165,6 +165,7 @@ panvk_meta_clear_attachments_emit_rsd(struct panfrost_device *pdev,
pan_pack(rsd_ptr.cpu, RENDERER_STATE, cfg) {
pan_shader_prepare_rsd(shader_info, shader, &cfg);
+ cfg.properties.uniform_buffer_count = 0;
cfg.properties.depth_source =
z ?
MALI_DEPTH_SOURCE_SHADER :
@@ -276,26 +277,9 @@ panvk_meta_clear_attachment_emit_push_constants(struct panfrost_device *pdev,
return pan_pool_upload_aligned(pool, pushvals, sizeof(pushvals), 16);
}
-static mali_ptr
-panvk_meta_clear_attachment_emit_ubo(struct panfrost_device *pdev,
- const struct panfrost_ubo_push *pushmap,
- struct pan_pool *pool,
- const VkClearValue *clear_value)
-{
- struct panfrost_ptr ubo = pan_pool_alloc_desc(pool, UNIFORM_BUFFER);
-
- pan_pack(ubo.cpu, UNIFORM_BUFFER, cfg) {
- cfg.entries = DIV_ROUND_UP(sizeof(*clear_value), 16);
- cfg.pointer = pan_pool_upload_aligned(pool, clear_value, sizeof(*clear_value), 16);
- }
-
- return ubo.gpu;
-}
-
static void
panvk_meta_clear_attachment_emit_dcd(struct pan_pool *pool,
- mali_ptr coords,
- mali_ptr ubo, mali_ptr push_constants,
+ mali_ptr coords, mali_ptr push_constants,
mali_ptr vpd, mali_ptr tsd, mali_ptr rsd,
void *out)
{
@@ -304,7 +288,6 @@ panvk_meta_clear_attachment_emit_dcd(struct pan_pool *pool,
cfg.draw_descriptor_is_64b = true;
cfg.thread_storage = tsd;
cfg.state = rsd;
- cfg.uniform_buffers = ubo;
cfg.push_uniforms = push_constants;
cfg.position = coords;
cfg.viewport = vpd;
@@ -315,7 +298,7 @@ static struct panfrost_ptr
panvk_meta_clear_attachment_emit_tiler_job(struct pan_pool *desc_pool,
struct pan_scoreboard *scoreboard,
mali_ptr coords,
- mali_ptr ubo, mali_ptr push_constants,
+ mali_ptr push_constants,
mali_ptr vpd, mali_ptr rsd,
mali_ptr tsd, mali_ptr tiler)
{
@@ -324,7 +307,7 @@ panvk_meta_clear_attachment_emit_tiler_job(struct pan_pool *desc_pool,
panvk_meta_clear_attachment_emit_dcd(desc_pool,
coords,
- ubo, push_constants,
+ push_constants,
vpd, tsd, rsd,
pan_section_ptr(job.cpu, TILER_JOB, DRAW));
@@ -460,11 +443,6 @@ panvk_meta_clear_attachment(struct panvk_cmd_buffer *cmdbuf,
panvk_meta_clear_attachment_emit_push_constants(pdev, &shader_info->push,
&cmdbuf->desc_pool.base,
clear_value);
- mali_ptr ubo =
- panvk_meta_clear_attachment_emit_ubo(pdev, &shader_info->push,
- &cmdbuf->desc_pool.base,
- clear_value);
-
mali_ptr tsd = PAN_ARCH >= 6 ? batch->tls.gpu : batch->fb.desc.gpu;
mali_ptr tiler = PAN_ARCH >= 6 ? batch->tiler.descs.gpu : 0;
@@ -472,8 +450,7 @@ panvk_meta_clear_attachment(struct panvk_cmd_buffer *cmdbuf,
job = panvk_meta_clear_attachment_emit_tiler_job(&cmdbuf->desc_pool.base,
&batch->scoreboard,
- coordinates,
- ubo, pushconsts,
+ coordinates, pushconsts,
vpd, rsd, tsd, tiler);
util_dynarray_append(&batch->jobs, void *, job.cpu);
More information about the mesa-commit
mailing list