aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_gs.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-11-23 23:26:00 -0800
committerKenneth Graunke <[email protected]>2014-11-24 15:30:09 -0800
commit62b425448ca92f568a571e656133e6d234434b4c (patch)
tree4221eaee3a761689b9f96a2322429a9a131544f3 /src/mesa/drivers/dri/i965/brw_gs.c
parentd54925df9c9c024c06b7d54334d5e7a1035bcaf8 (diff)
i965: Pass gl_program pointers into precompile functions.
We'd like to do precompiling for ARB vertex and fragment programs, which only have gl_program structures - gl_shader_program is NULL. This patch makes the various precompile functions take a gl_program parameter directly, rather than accessing it via gl_shader_program. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_gs.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index f44ac26d580..d51500effba 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -374,7 +374,9 @@ const struct brw_tracked_state brw_gs_prog = {
bool
-brw_gs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
+brw_gs_precompile(struct gl_context *ctx,
+ struct gl_shader_program *shader_prog,
+ struct gl_program *prog)
{
struct brw_context *brw = brw_context(ctx);
struct brw_gs_prog_key key;
@@ -382,11 +384,7 @@ brw_gs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
struct brw_gs_prog_data *old_prog_data = brw->gs.prog_data;
bool success;
- if (!prog->_LinkedShaders[MESA_SHADER_GEOMETRY])
- return true;
-
- struct gl_geometry_program *gp = (struct gl_geometry_program *)
- prog->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program;
+ struct gl_geometry_program *gp = (struct gl_geometry_program *) prog;
struct brw_geometry_program *bgp = brw_geometry_program(gp);
memset(&key, 0, sizeof(key));
@@ -398,7 +396,7 @@ brw_gs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
*/
key.input_varyings = gp->Base.InputsRead;
- success = do_gs_prog(brw, prog, bgp, &key);
+ success = do_gs_prog(brw, shader_prog, bgp, &key);
brw->gs.base.prog_offset = old_prog_offset;
brw->gs.prog_data = old_prog_data;