diff options
author | Marek Olšák <maraeo@gmail.com> | 2013-04-15 00:50:20 +0200 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2013-04-24 03:23:23 +0200 |
commit | b95cbe5e800e95d888d148e20e6a4e34c8857a9e (patch) | |
tree | ae6f5de49fd974c8ab83116a331b4325f623fe9b /src/mesa/drivers/dri/i965/gen7_sol_state.c | |
parent | ef39bc4f2ee09ee020b52fff9a9c8dc680fc252e (diff) | |
download | external_mesa3d-b95cbe5e800e95d888d148e20e6a4e34c8857a9e.zip external_mesa3d-b95cbe5e800e95d888d148e20e6a4e34c8857a9e.tar.gz external_mesa3d-b95cbe5e800e95d888d148e20e6a4e34c8857a9e.tar.bz2 |
mesa,i965: use NewDriverState to communicate TFB state changes with the driver
_NEW_TRANSFORM_FEEDBACK is not used by core Mesa, so it can be removed.
Instead, an new private flag is added to i965 to serve the same purpose.
If you're new to this:
* When creating a context. you can set private dirty flags
in gl_context::DriverFlags, eg.:
ctx->DriverFlags.NewStateX = BRW_NEW_STATE_X;
* When StateX is changed, core Mesa does:
ctx->NewDriverState |= ctx->DriverFlags.NewStateX;
* When you have to draw, read and clear ctx->NewDriverState.
* Pros: not touching NewState, the driver decides the mapping between
GL states and hw state groups, unlimited number of flags in core Mesa
(still limited number of flags in the driver though)
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen7_sol_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_sol_state.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_sol_state.c b/src/mesa/drivers/dri/i965/gen7_sol_state.c index 03709ea..a404e2b 100644 --- a/src/mesa/drivers/dri/i965/gen7_sol_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sol_state.c @@ -45,7 +45,7 @@ upload_3dstate_so_buffers(struct brw_context *brw) ctx->Shader.CurrentVertexProgram; const struct gl_transform_feedback_info *linked_xfb_info = &vs_prog->LinkedTransformFeedback; - /* _NEW_TRANSFORM_FEEDBACK */ + /* BRW_NEW_TRANSFORM_FEEDBACK */ struct gl_transform_feedback_object *xfb_obj = ctx->TransformFeedback.CurrentObject; int i; @@ -116,7 +116,7 @@ upload_3dstate_so_decl_list(struct brw_context *brw, /* BRW_NEW_VERTEX_PROGRAM */ const struct gl_shader_program *vs_prog = ctx->Shader.CurrentVertexProgram; - /* _NEW_TRANSFORM_FEEDBACK */ + /* BRW_NEW_TRANSFORM_FEEDBACK */ const struct gl_transform_feedback_info *linked_xfb_info = &vs_prog->LinkedTransformFeedback; int i; @@ -189,7 +189,7 @@ upload_3dstate_streamout(struct brw_context *brw, bool active, { struct intel_context *intel = &brw->intel; struct gl_context *ctx = &intel->ctx; - /* _NEW_TRANSFORM_FEEDBACK */ + /* BRW_NEW_TRANSFORM_FEEDBACK */ struct gl_transform_feedback_object *xfb_obj = ctx->TransformFeedback.CurrentObject; uint32_t dw1 = 0, dw2 = 0; @@ -238,7 +238,7 @@ upload_sol_state(struct brw_context *brw) { struct intel_context *intel = &brw->intel; struct gl_context *ctx = &intel->ctx; - /* _NEW_TRANSFORM_FEEDBACK */ + /* BRW_NEW_TRANSFORM_FEEDBACK */ bool active = _mesa_is_xfb_active_and_unpaused(ctx); if (active) { @@ -264,11 +264,11 @@ upload_sol_state(struct brw_context *brw) const struct brw_tracked_state gen7_sol_state = { .dirty = { .mesa = (_NEW_RASTERIZER_DISCARD | - _NEW_LIGHT | - _NEW_TRANSFORM_FEEDBACK), + _NEW_LIGHT), .brw = (BRW_NEW_BATCH | BRW_NEW_VERTEX_PROGRAM | - BRW_NEW_VUE_MAP_GEOM_OUT) + BRW_NEW_VUE_MAP_GEOM_OUT | + BRW_NEW_TRANSFORM_FEEDBACK) }, .emit = upload_sol_state, }; |