From 5730772e368c7c7b805e05ac49bc85f08f4d265f Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 20 Dec 2021 16:00:43 +1000 Subject: [PATCH] mesa/st: move new ati fragment shader to mesa Reviewed-by: Kristian H. Kristensen Part-of: --- src/mesa/main/atifragshader.c | 15 +++++++++++++-- src/mesa/state_tracker/st_cb_program.c | 12 ------------ src/mesa/state_tracker/st_cb_program.h | 1 - 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c index aed8cce..d634097 100644 --- a/src/mesa/main/atifragshader.c +++ b/src/mesa/main/atifragshader.c @@ -56,6 +56,17 @@ _mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) return s; } +static struct gl_program * +new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg) +{ + struct gl_program *prog = rzalloc(NULL, struct gl_program); + if (!prog) + return NULL; + + _mesa_init_gl_program(prog, MESA_SHADER_FRAGMENT, curProg->Id, true); + prog->ati_fs = curProg; + return prog; +} /** * Delete the given ati fragment shader @@ -415,8 +426,8 @@ _mesa_EndFragmentShaderATI(void) } #endif - struct gl_program *prog = st_new_ati_fs(ctx, - ctx->ATIFragmentShader.Current); + struct gl_program *prog = new_ati_fs(ctx, + ctx->ATIFragmentShader.Current); _mesa_reference_program(ctx, &ctx->ATIFragmentShader.Current->Program, NULL); /* Don't use _mesa_reference_program(), just take ownership */ diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index 7fa0297..6dc8722 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -128,18 +128,6 @@ st_program_string_notify( struct gl_context *ctx, } /** - * Called in glEndFragmentShaderATI() - */ -struct gl_program * -st_new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg) -{ - struct gl_program *prog = st_new_program(ctx, MESA_SHADER_FRAGMENT, - curProg->Id, true); - prog->ati_fs = curProg; - return prog; -} - -/** * Plug in the program and shader-related device driver functions. */ void diff --git a/src/mesa/state_tracker/st_cb_program.h b/src/mesa/state_tracker/st_cb_program.h index c917f0a..fdeebaa 100644 --- a/src/mesa/state_tracker/st_cb_program.h +++ b/src/mesa/state_tracker/st_cb_program.h @@ -40,7 +40,6 @@ void st_delete_program(struct gl_context *ctx, struct gl_program *prog); GLboolean st_program_string_notify(struct gl_context *ctx, GLenum target, struct gl_program *prog); -struct gl_program *st_new_ati_fs(struct gl_context *ctx, struct ati_fragment_shader *curProg); #ifdef __cplusplus } -- 2.7.4