[Mesa-dev] [PATCH] i965: Fix brw_store_register_mem64 to stay within a single batch.
Chris Forbes
chrisf at ijw.co.nz
Thu Oct 31 00:56:33 CET 2013
That is indeed insane :)
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
On Thu, Oct 31, 2013 at 12:17 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> Previously, the write of each 32-bit half might land in separate batch
> buffers, which is insane.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/gen6_queryobj.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/gen6_queryobj.c b/src/mesa/drivers/dri/i965/gen6_queryobj.c
> index 56e9d5d..5b469b5 100644
> --- a/src/mesa/drivers/dri/i965/gen6_queryobj.c
> +++ b/src/mesa/drivers/dri/i965/gen6_queryobj.c
> @@ -112,14 +112,11 @@ brw_store_register_mem64(struct brw_context *brw,
> /* MI_STORE_REGISTER_MEM only stores a single 32-bit value, so to
> * read a full 64-bit register, we need to do two of them.
> */
> - BEGIN_BATCH(3);
> + BEGIN_BATCH(6);
> OUT_BATCH(MI_STORE_REGISTER_MEM | (3 - 2));
> OUT_BATCH(reg);
> OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION,
> idx * sizeof(uint64_t));
> - ADVANCE_BATCH();
> -
> - BEGIN_BATCH(3);
> OUT_BATCH(MI_STORE_REGISTER_MEM | (3 - 2));
> OUT_BATCH(reg + sizeof(uint32_t));
> OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION,
> --
> 1.8.3.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list