[Intel-gfx] [PATCH] lib/rendercopy_gen9: WaBindlessSurfaceStateModifyEnable

Siluvery, Arun arun.siluvery at linux.intel.com
Wed Aug 12 02:47:30 PDT 2015


On 11/08/2015 13:25, Mika Kuoppala wrote:
> Don't set the size of bindless surface state on rendercopy.
> And as of doing so, take into account the workaround for setting
> the command size.
>
> This was tried during hunting for
> https://bugs.freedesktop.org/show_bug.cgi?id=89959. But no
> impact was found.
>
> Cc: Arun Siluvery <arun.siluvery at linux.intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
>   lib/rendercopy_gen9.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
> index 0766192..4a4a604 100644
> --- a/lib/rendercopy_gen9.c
> +++ b/lib/rendercopy_gen9.c
> @@ -511,7 +511,11 @@ gen7_emit_push_constants(struct intel_batchbuffer *batch) {
>
>   static void
>   gen9_emit_state_base_address(struct intel_batchbuffer *batch) {
> -	OUT_BATCH(GEN6_STATE_BASE_ADDRESS | (19 - 2));
> +
> +	/* WaBindlessSurfaceStateModifyEnable:skl,bxt */
> +	/* The length has to be one less if we dont modify
> +	   bindless state */
> +	OUT_BATCH(GEN6_STATE_BASE_ADDRESS | (19 - 1 - 2));
>
>   	/* general */
>   	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
> @@ -544,9 +548,9 @@ gen9_emit_state_base_address(struct intel_batchbuffer *batch) {
>   	OUT_BATCH(1 << 12 | 1);
>
>   	/* Bindless surface state base address */
> -	OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
>   	OUT_BATCH(0);
> -	OUT_BATCH(0xfffff000);
> +	OUT_BATCH(0);
> +	OUT_BATCH(0);
>   }
>
>   static void
>

Agrees with spec and looks good to me. No impact observed with 
gem_concurrent_blit subtests.

Reviewed-by: Arun Siluvery <arun.siluvery at linux.intel.com>

regards
Arun



More information about the Intel-gfx mailing list