[Libva] [libva][libva-intel-driver PATCH] Use VMask instead of DMask in 3DSTATE_PS on GEN8+

Sean V Kelley sean.v.kelley at intel.com
Mon Feb 2 10:22:54 PST 2015


ltgm

Reviewed-by: Sean V Kelley <sean.v.kelley at intel.com>

On Mon, Feb 2, 2015 at 12:16 AM, Xiang, Haihao <haihao.xiang at intel.com> wrote:
> Mesa uses VMask instead of DMask in 3DSTATE_PS.
>   "Initialize the execution mask with VMask.  Otherwise, derivatives are
>   incorrect for subspans where some of the pixels are unlit.  We believe
>   the bit just didn't take effect in previous generations."
>
> To avoid potential issue, use VMask in libva too.
>
> Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>
> ---
>  src/gen8_render.c | 3 ++-
>  src/gen9_render.c | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gen8_render.c b/src/gen8_render.c
> index c01d269..45d55ea 100644
> --- a/src/gen8_render.c
> +++ b/src/gen8_render.c
> @@ -1451,7 +1451,8 @@ gen8_emit_wm_state(VADriverContextP ctx, int kernel)
>      /* DW3. PS shader flag .Binding table cnt/sample cnt */
>      OUT_BATCH(batch,
>                (1 << GEN7_PS_SAMPLER_COUNT_SHIFT) |
> -              (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
> +              (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) |
> +              GEN7_PS_VECTOR_MASK_ENABLE);
>      /* DW4-5. Scatch space */
>      OUT_BATCH(batch, 0); /* scratch space base offset */
>      OUT_BATCH(batch, 0);
> diff --git a/src/gen9_render.c b/src/gen9_render.c
> index ee7a4db..fa48243 100644
> --- a/src/gen9_render.c
> +++ b/src/gen9_render.c
> @@ -1460,7 +1460,8 @@ gen9_emit_wm_state(VADriverContextP ctx, int kernel)
>      /* DW3. PS shader flag .Binding table cnt/sample cnt */
>      OUT_BATCH(batch,
>                (1 << GEN7_PS_SAMPLER_COUNT_SHIFT) |
> -              (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
> +              (5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT) |
> +              GEN7_PS_VECTOR_MASK_ENABLE);
>      /* DW4-5. Scatch space */
>      OUT_BATCH(batch, 0); /* scratch space base offset */
>      OUT_BATCH(batch, 0);
> --
> 1.9.1
>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva



-- 
Sean V. Kelley <sean.v.kelley at intel.com>
Open Source Technology Center / SSG
Intel Corp.


More information about the Libva mailing list