Mesa (master): i965: Create a BRW_NEW_META_IN_PROGRESS state flag.
Kenneth Graunke
kwg at kemper.freedesktop.org
Mon May 20 20:03:43 UTC 2013
Module: Mesa
Branch: master
Commit: b96f93c4536674d6cce99ffa191d49f0df238f9b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b96f93c4536674d6cce99ffa191d49f0df238f9b
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri May 17 21:17:56 2013 -0700
i965: Create a BRW_NEW_META_IN_PROGRESS state flag.
This will allow us to disable statistics during meta operations.
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>
---
src/mesa/drivers/dri/i965/brw_context.h | 7 ++++++-
src/mesa/drivers/dri/i965/brw_state_upload.c | 6 ++++++
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 4b43878..fbff10b 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -153,7 +153,8 @@ enum brw_state_id {
BRW_STATE_TRANSFORM_FEEDBACK,
BRW_STATE_RASTERIZER_DISCARD,
BRW_STATE_STATS_WM,
- BRW_STATE_UNIFORM_BUFFER
+ BRW_STATE_UNIFORM_BUFFER,
+ BRW_STATE_META_IN_PROGRESS,
};
#define BRW_NEW_URB_FENCE (1 << BRW_STATE_URB_FENCE)
@@ -186,6 +187,7 @@ enum brw_state_id {
#define BRW_NEW_RASTERIZER_DISCARD (1 << BRW_STATE_RASTERIZER_DISCARD)
#define BRW_NEW_STATS_WM (1 << BRW_STATE_STATS_WM)
#define BRW_NEW_UNIFORM_BUFFER (1 << BRW_STATE_UNIFORM_BUFFER)
+#define BRW_NEW_META_IN_PROGRESS (1 << BRW_STATE_META_IN_PROGRESS)
struct brw_state_flags {
/** State update flags signalled by mesa internals */
@@ -795,6 +797,9 @@ struct brw_context
struct brw_cache cache;
struct brw_cached_batch_item *cached_batch_items;
+ /* Whether a meta-operation is in progress. */
+ bool meta_in_progress;
+
struct {
struct brw_vertex_element inputs[VERT_ATTRIB_MAX];
struct brw_vertex_buffer buffers[VERT_ATTRIB_MAX];
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index cdc2657..5549f59 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -373,6 +373,7 @@ static struct dirty_bit_map brw_bits[] = {
DEFINE_BIT(BRW_NEW_TRANSFORM_FEEDBACK),
DEFINE_BIT(BRW_NEW_RASTERIZER_DISCARD),
DEFINE_BIT(BRW_NEW_UNIFORM_BUFFER),
+ DEFINE_BIT(BRW_NEW_META_IN_PROGRESS),
{0, 0, 0}
};
@@ -460,6 +461,11 @@ void brw_upload_state(struct brw_context *brw)
brw->state.dirty.brw |= BRW_NEW_VERTEX_PROGRAM;
}
+ if (brw->meta_in_progress != _mesa_meta_in_progress(ctx)) {
+ brw->meta_in_progress = _mesa_meta_in_progress(ctx);
+ brw->state.dirty.brw |= BRW_NEW_META_IN_PROGRESS;
+ }
+
if ((state->mesa | state->cache | state->brw) == 0)
return;
More information about the mesa-commit
mailing list