aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2009-12-21 16:57:37 +0000
committerKeith Whitwell <[email protected]>2009-12-21 16:57:37 +0000
commit061411b2611634960f0ba36e42916c67918bb53d (patch)
tree456176c5be87b1d3352231b9c8c6d9839e8339c8
parent1ec7e058f50882b27c0a2abd961bd49848386ff7 (diff)
i965g: hook vertex state emit up to PIPE_NEW_VERTEX_BUFFER
-rw-r--r--src/gallium/drivers/i965/brw_context.h2
-rw-r--r--src/gallium/drivers/i965/brw_draw.c7
-rw-r--r--src/gallium/drivers/i965/brw_draw_upload.c5
-rw-r--r--src/gallium/drivers/i965/brw_state_debug.c1
4 files changed, 10 insertions, 5 deletions
diff --git a/src/gallium/drivers/i965/brw_context.h b/src/gallium/drivers/i965/brw_context.h
index b7330f00f49..143e068987c 100644
--- a/src/gallium/drivers/i965/brw_context.h
+++ b/src/gallium/drivers/i965/brw_context.h
@@ -257,7 +257,7 @@ struct brw_sampler {
#define BRW_NEW_WM_SURFACES 0x1000
#define BRW_NEW_xxx 0x2000 /* was FENCE */
#define BRW_NEW_INDICES 0x4000
-#define BRW_NEW_VERTICES 0x8000
+
/**
* Used for any batch entry with a relocated pointer that will be used
* by any 3D rendering. Need to re-emit these fresh in each
diff --git a/src/gallium/drivers/i965/brw_draw.c b/src/gallium/drivers/i965/brw_draw.c
index 45d5ade1fc7..4498773dd86 100644
--- a/src/gallium/drivers/i965/brw_draw.c
+++ b/src/gallium/drivers/i965/brw_draw.c
@@ -92,6 +92,10 @@ static int brw_emit_prim(struct brw_context *brw,
struct brw_3d_primitive prim_packet;
int ret;
+ if (BRW_DEBUG & DEBUG_PRIMS)
+ debug_printf("%s start %d count %d indexed %d hw_prim %d\n",
+ __FUNCTION__, start, count, indexed, hw_prim);
+
prim_packet.header.opcode = CMD_3D_PRIM;
prim_packet.header.length = sizeof(prim_packet)/4 - 2;
prim_packet.header.pad = 0;
@@ -187,7 +191,8 @@ brw_draw_range_elements(struct pipe_context *pipe,
hw_prim = brw_set_prim(brw, mode);
if (BRW_DEBUG & DEBUG_PRIMS)
- debug_printf("PRIM: %s %d %d\n", u_prim_name(mode), start, count);
+ debug_printf("PRIM: %s start %d count %d index_buffer %p\n",
+ u_prim_name(mode), start, count, (void *)index_buffer);
/* Potentially trigger upload of new index buffer.
*
diff --git a/src/gallium/drivers/i965/brw_draw_upload.c b/src/gallium/drivers/i965/brw_draw_upload.c
index f50ce3005da..a27da5f1c17 100644
--- a/src/gallium/drivers/i965/brw_draw_upload.c
+++ b/src/gallium/drivers/i965/brw_draw_upload.c
@@ -405,8 +405,9 @@ static int brw_emit_vertices( struct brw_context *brw )
const struct brw_tracked_state brw_vertices = {
.dirty = {
- .mesa = PIPE_NEW_INDEX_RANGE,
- .brw = BRW_NEW_BATCH | BRW_NEW_VERTICES,
+ .mesa = (PIPE_NEW_INDEX_RANGE |
+ PIPE_NEW_VERTEX_BUFFER),
+ .brw = BRW_NEW_BATCH,
.cache = 0,
},
.prepare = brw_prepare_vertices,
diff --git a/src/gallium/drivers/i965/brw_state_debug.c b/src/gallium/drivers/i965/brw_state_debug.c
index 050f74761cf..049c278c93e 100644
--- a/src/gallium/drivers/i965/brw_state_debug.c
+++ b/src/gallium/drivers/i965/brw_state_debug.c
@@ -80,7 +80,6 @@ static struct dirty_bit_map brw_bits[] = {
DEFINE_BIT(BRW_NEW_WM_SURFACES),
DEFINE_BIT(BRW_NEW_xxx),
DEFINE_BIT(BRW_NEW_INDICES),
- DEFINE_BIT(BRW_NEW_VERTICES),
{0, 0, 0}
};