Module: Mesa
Branch: master
Commit: 9d23d7b7cb804fa554c483830685088f97c8877c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d23d7b7cb804fa554c483830685088f97c8877c

Author: Rob Clark <robcl...@freedesktop.org>
Date:   Sat Feb 13 18:29:28 2016 -0500

freedreno/query: align counter snapshot locations

Some hw queries need their sample memory locations to have certain
alignment.  At the moment that isn't an issue, since the only hw query
is occlusion, so all samples have the same size.  But when others are
added with different sample sizes, this starts to be a problem.

All current and immediately upcoming hw queries simply need their
sample address aligned to their size, so let's use that for now.

Signed-off-by: Rob Clark <robcl...@freedesktop.org>

---

 src/gallium/drivers/freedreno/freedreno_query_hw.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/drivers/freedreno/freedreno_query_hw.c 
b/src/gallium/drivers/freedreno/freedreno_query_hw.c
index 7e99c35..8e421b6 100644
--- a/src/gallium/drivers/freedreno/freedreno_query_hw.c
+++ b/src/gallium/drivers/freedreno/freedreno_query_hw.c
@@ -295,6 +295,8 @@ fd_hw_sample_init(struct fd_context *ctx, uint32_t size)
        struct fd_hw_sample *samp = util_slab_alloc(&ctx->sample_pool);
        pipe_reference_init(&samp->reference, 1);
        samp->size = size;
+       debug_assert(util_is_power_of_two(size));
+       ctx->next_sample_offset = align(ctx->next_sample_offset, size);
        samp->offset = ctx->next_sample_offset;
        /* NOTE: util_slab_alloc() does not zero out the buffer: */
        samp->bo = NULL;

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to