Upstream-Status: Backport (from git://anongit.freedesktop.org/vaapi/intel-driver with commit id 4307780b648245aba4ff338dcfe0172dec2e12e9) Signed-off-by: Azril Ahmad From dff0614a65693bdfbcf8a46ccfb52f036647bb93 Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Tue, 27 Jan 2015 11:09:02 +0800 Subject: [PATCH 06/10] Use VMask instead of DMask in 3DSTATE_PS on GEN8+ 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 Reviewed-by: Sean V Kelley --- 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 8a8012d..65a66c5 100644 --- a/src/gen8_render.c +++ b/src/gen8_render.c @@ -1447,7 +1447,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 da8950e..89935f2 100644 --- a/src/gen9_render.c +++ b/src/gen9_render.c @@ -1449,7 +1449,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); -- 2.1.0