[Mesa-dev] [PATCH 3/4] i965: Make precompile functions accessible from C.
Kristian Høgsberg
krh at bitplanet.net
Mon Nov 24 08:19:20 PST 2014
On Mon, Nov 24, 2014 at 12:28 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> Previously, the prototypes for brw_vs/gs/fs_precompile were scattered
> between brw_vs.h (C), brw_gs.h (C), and brw_fs.h (C++ only). Also,
> brw_fs_precompile had C++ linkage, while the others were C.
>
> This patch moves all the prototypes to a central location (brw_shader.h)
> and makes brw_fs_precompile have C linkage.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
> ---
> src/mesa/drivers/dri/i965/brw_fs.cpp | 2 +-
> src/mesa/drivers/dri/i965/brw_fs.h | 3 ---
> src/mesa/drivers/dri/i965/brw_gs.h | 3 ---
> src/mesa/drivers/dri/i965/brw_shader.h | 18 ++++++++++++++++++
> src/mesa/drivers/dri/i965/brw_vs.h | 3 ---
> 5 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index f3f69c4..0ffb07f 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -3748,7 +3748,7 @@ brw_wm_fs_emit(struct brw_context *brw,
> return g.get_assembly(final_assembly_size);
> }
>
> -bool
> +extern "C" bool
> brw_fs_precompile(struct gl_context *ctx,
> struct gl_shader_program *shader_prog,
> struct gl_program *prog)
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
> index f558662..ee61207 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.h
> +++ b/src/mesa/drivers/dri/i965/brw_fs.h
> @@ -797,8 +797,5 @@ private:
>
> bool brw_do_channel_expressions(struct exec_list *instructions);
> bool brw_do_vector_splitting(struct exec_list *instructions);
> -bool brw_fs_precompile(struct gl_context *ctx,
> - struct gl_shader_program *shader_prog,
> - struct gl_program *prog);
>
> struct brw_reg brw_reg_from_fs_reg(fs_reg *reg);
> diff --git a/src/mesa/drivers/dri/i965/brw_gs.h b/src/mesa/drivers/dri/i965/brw_gs.h
> index 85228eb..5a15fa9 100644
> --- a/src/mesa/drivers/dri/i965/brw_gs.h
> +++ b/src/mesa/drivers/dri/i965/brw_gs.h
> @@ -34,9 +34,6 @@ struct gl_context;
> struct gl_shader_program;
> struct gl_program;
>
> -bool brw_gs_precompile(struct gl_context *ctx,
> - struct gl_shader_program *shader_prog,
> - struct gl_program *prog);
> bool brw_gs_prog_data_compare(const void *a, const void *b);
>
> #ifdef __cplusplus
> diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
> index cdf86ff..05434a7 100644
> --- a/src/mesa/drivers/dri/i965/brw_shader.h
> +++ b/src/mesa/drivers/dri/i965/brw_shader.h
> @@ -192,3 +192,21 @@ enum brw_reg_type brw_type_for_base_type(const struct glsl_type *type);
> enum brw_conditional_mod brw_conditional_for_comparison(unsigned int op);
> uint32_t brw_math_function(enum opcode op);
> const char *brw_instruction_name(enum opcode op);
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +bool brw_vs_precompile(struct gl_context *ctx,
> + struct gl_shader_program *shader_prog,
> + struct gl_program *prog);
> +bool brw_gs_precompile(struct gl_context *ctx,
> + struct gl_shader_program *shader_prog,
> + struct gl_program *prog);
> +bool brw_fs_precompile(struct gl_context *ctx,
> + struct gl_shader_program *shader_prog,
> + struct gl_program *prog);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> diff --git a/src/mesa/drivers/dri/i965/brw_vs.h b/src/mesa/drivers/dri/i965/brw_vs.h
> index 77792d9..f6e6b31 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs.h
> +++ b/src/mesa/drivers/dri/i965/brw_vs.h
> @@ -89,9 +89,6 @@ const unsigned *brw_vs_emit(struct brw_context *brw,
> struct brw_vs_prog_data *prog_data,
> void *mem_ctx,
> unsigned *program_size);
> -bool brw_vs_precompile(struct gl_context *ctx,
> - struct gl_shader_program *shader_prog,
> - struct gl_program *prog);
> void brw_vs_debug_recompile(struct brw_context *brw,
> struct gl_shader_program *prog,
> const struct brw_vs_prog_key *key);
> --
> 2.1.3
>
> _______________________________________________
> 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