[Mesa-dev] [PATCH] i965: Upload 3DSTATE_BINDING_TABLE_POINTERS_HS when !TCS on Gen9+.

Jordan Justen jordan.l.justen at intel.com
Sun Jan 10 15:48:13 PST 2016


Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

On 2016-01-10 15:38:58, Kenneth Graunke wrote:
> Gen9+ requires us to emit 3DSTATE_BINDING_TABLE_POINTERS_HS for the
> hull shader push constants to take effect.  The passthrough TCS uses
> push constants for the default tessellation levels.  So, when those
> change, we need to re-upload the binding table as well.
> 
> Fixes five Piglit tests on Skylake:
> - spec/arb_tessellation_shader/vs-tes-vertex
> - spec/arb_tessellation_shader/vs-tes-tessinner-tessouter-inputs-quads
> - spec/arb_tessellation_shader/vs-tes-tessinner-tessouter-inputs-tris
> - spec/arb_tessellation_shader/tes-read-texture
> - spec/arb_tessellation_shader/tess_with_geometry
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_binding_tables.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_binding_tables.c b/src/mesa/drivers/dri/i965/brw_binding_tables.c
> index 80935cf..7fa5d60 100644
> --- a/src/mesa/drivers/dri/i965/brw_binding_tables.c
> +++ b/src/mesa/drivers/dri/i965/brw_binding_tables.c
> @@ -196,12 +196,12 @@ const struct brw_tracked_state brw_wm_binding_table = {
>     .emit = brw_upload_wm_binding_table,
>  };
>  
> -/** Upload the TCS binding table (if TCS is active). */
> +/** Upload the TCS binding table (if tessellation stages are active). */
>  static void
>  brw_tcs_upload_binding_table(struct brw_context *brw)
>  {
> -   /* If there's no TCS, skip changing anything. */
> -   if (brw->tess_ctrl_program == NULL)
> +   /* Skip if the tessellation stages are disabled. */
> +   if (brw->tess_eval_program == NULL)
>        return;
>  
>     /* BRW_NEW_TCS_PROG_DATA */
> @@ -216,6 +216,7 @@ const struct brw_tracked_state brw_tcs_binding_table = {
>     .dirty = {
>        .mesa = 0,
>        .brw = BRW_NEW_BATCH |
> +             BRW_NEW_DEFAULT_TESS_LEVELS |
>               BRW_NEW_SURFACES |
>               BRW_NEW_TCS_CONSTBUF |
>               BRW_NEW_TCS_PROG_DATA,
> -- 
> 2.7.0
> 
> _______________________________________________
> 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