[Mesa-dev] [PATCH 05/27] i965: add new field for storing program size

Jason Ekstrand jason at jlekstrand.net
Sat Aug 19 15:23:27 UTC 2017


On August 19, 2017 12:46:02 AM Jordan Justen <jordan.l.justen at intel.com> wrote:

> From: Carl Worth <cworth at cworth.org>
>
> This will be used by the on disk shader cache.
>
> Signed-off-by: Timothy Arceri <timothy.arceri at collabora.com>
> [jordan.l.justen at intel.com: Only add to brw_stage_prog_data]
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
>  src/intel/compiler/brw_compiler.h   | 2 ++
>  src/mesa/drivers/dri/i965/brw_cs.c  | 2 ++
>  src/mesa/drivers/dri/i965/brw_gs.c  | 2 ++
>  src/mesa/drivers/dri/i965/brw_tcs.c | 2 ++
>  src/mesa/drivers/dri/i965/brw_tes.c | 2 ++
>  src/mesa/drivers/dri/i965/brw_vs.c  | 3 +++
>  src/mesa/drivers/dri/i965/brw_wm.c  | 2 ++
>  7 files changed, 15 insertions(+)
>
> diff --git a/src/intel/compiler/brw_compiler.h 
> b/src/intel/compiler/brw_compiler.h
> index 66d6a6f5ee..9d29172577 100644
> --- a/src/intel/compiler/brw_compiler.h
> +++ b/src/intel/compiler/brw_compiler.h
> @@ -521,6 +521,8 @@ struct brw_stage_prog_data {
>     unsigned total_scratch;
>     unsigned total_shared;
>
> +   unsigned program_size;
> +
>     /**
>      * Register where the thread expects to find input data from the URB
>      * (typically uniforms, followed by vertex or fragment attributes).
> diff --git a/src/mesa/drivers/dri/i965/brw_cs.c 
> b/src/mesa/drivers/dri/i965/brw_cs.c
> index cc564a012b..f8aee239a8 100644
> --- a/src/mesa/drivers/dri/i965/brw_cs.c
> +++ b/src/mesa/drivers/dri/i965/brw_cs.c
> @@ -168,6 +168,8 @@ brw_codegen_cs_prog(struct brw_context *brw,
>                      &brw->cs.base.prog_offset, &brw->cs.base.prog_data);
>     ralloc_free(mem_ctx);
>
> +   brw->cs.base.prog_data->program_size = program_size;

Please fill these out on brw_compile_* rather than brw_codegen_*.

> +
>     return true;
>  }
>
> diff --git a/src/mesa/drivers/dri/i965/brw_gs.c 
> b/src/mesa/drivers/dri/i965/brw_gs.c
> index bd8f993d11..a3c058fe9c 100644
> --- a/src/mesa/drivers/dri/i965/brw_gs.c
> +++ b/src/mesa/drivers/dri/i965/brw_gs.c
> @@ -168,6 +168,8 @@ brw_codegen_gs_prog(struct brw_context *brw,
>                      &stage_state->prog_offset, &brw->gs.base.prog_data);
>     ralloc_free(mem_ctx);
>
> +   brw->gs.base.prog_data->program_size = program_size;
> +
>     return true;
>  }
>
> diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c 
> b/src/mesa/drivers/dri/i965/brw_tcs.c
> index 1ed622eebb..cf613a261b 100644
> --- a/src/mesa/drivers/dri/i965/brw_tcs.c
> +++ b/src/mesa/drivers/dri/i965/brw_tcs.c
> @@ -287,6 +287,8 @@ brw_codegen_tcs_prog(struct brw_context *brw, struct 
> brw_program *tcp,
>                      &stage_state->prog_offset, &brw->tcs.base.prog_data);
>     ralloc_free(mem_ctx);
>
> +   brw->tcs.base.prog_data->program_size = program_size;
> +
>     return true;
>  }
>
> diff --git a/src/mesa/drivers/dri/i965/brw_tes.c 
> b/src/mesa/drivers/dri/i965/brw_tes.c
> index 20ce1f4c15..8b16a26408 100644
> --- a/src/mesa/drivers/dri/i965/brw_tes.c
> +++ b/src/mesa/drivers/dri/i965/brw_tes.c
> @@ -158,6 +158,8 @@ brw_codegen_tes_prog(struct brw_context *brw,
>                      &stage_state->prog_offset, &brw->tes.base.prog_data);
>     ralloc_free(mem_ctx);
>
> +   brw->tes.base.prog_data->program_size = program_size;
> +
>     return true;
>  }
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.c 
> b/src/mesa/drivers/dri/i965/brw_vs.c
> index c0a0a13f23..055ea9d742 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs.c
> @@ -279,6 +279,9 @@ brw_codegen_vs_prog(struct brw_context *brw,
>  		    program, program_size,
>  		    &prog_data, sizeof(prog_data),
>  		    &brw->vs.base.prog_offset, &brw->vs.base.prog_data);
> +
> +   brw->vs.base.prog_data->program_size = program_size;
> +
>     ralloc_free(mem_ctx);
>
>     return true;
> diff --git a/src/mesa/drivers/dri/i965/brw_wm.c 
> b/src/mesa/drivers/dri/i965/brw_wm.c
> index 2ff1c1e877..40b23fc0e6 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm.c
> @@ -232,6 +232,8 @@ brw_codegen_wm_prog(struct brw_context *brw,
>                      &prog_data, sizeof(prog_data),
>                      &brw->wm.base.prog_offset, &brw->wm.base.prog_data);
>
> +   brw->wm.base.prog_data->program_size = program_size;
> +
>     ralloc_free(mem_ctx);
>
>     return true;
> --
> 2.14.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev




More information about the mesa-dev mailing list