aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_context.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2010-04-12 04:12:27 +0200
committerMarek Olšák <[email protected]>2010-04-12 04:16:08 +0200
commit136bd184a29945ab7ae0636ecef65e9db97f8e4d (patch)
treeff8b67d6c48b20d598b406a3a07ddb19e462d140 /src/gallium/drivers/r300/r300_context.c
parent5633392966f56a75cb2a675ef9594e987c4591b9 (diff)
r300g: atomize FS constant buffer
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.c')
-rw-r--r--src/gallium/drivers/r300/r300_context.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index 061322b75fd..bdc1ebedcc0 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -66,6 +66,7 @@ static void r300_destroy_context(struct pipe_context* context)
FREE(r300->vap_output_state.state);
FREE(r300->viewport_state.state);
FREE(r300->ztop_state.state);
+ FREE(r300->fs_constants.state);
FREE(r300);
}
@@ -117,11 +118,13 @@ static void r300_setup_atoms(struct r300_context* r300)
R300_INIT_ATOM(textures_state, 0);
R300_INIT_ATOM(fs, 0);
R300_INIT_ATOM(fs_rc_constant_state, 0);
+ R300_INIT_ATOM(fs_constants, 0);
/* Replace emission functions for r500. */
if (r300->screen->caps.is_r500) {
r300->fs.emit = r500_emit_fs;
r300->fs_rc_constant_state.emit = r500_emit_fs_rc_constant_state;
+ r300->fs_constants.emit = r500_emit_fs_constants;
}
/* Some non-CSO atoms need explicit space to store the state locally. */
@@ -134,6 +137,7 @@ static void r300_setup_atoms(struct r300_context* r300)
r300->vap_output_state.state = CALLOC_STRUCT(r300_vap_output_state);
r300->viewport_state.state = CALLOC_STRUCT(r300_viewport_state);
r300->ztop_state.state = CALLOC_STRUCT(r300_ztop_state);
+ r300->fs_constants.state = CALLOC_STRUCT(r300_constant_buffer);
}
struct pipe_context* r300_create_context(struct pipe_screen* screen,