Mesa (master): r600g: add eg db count control register.

Dave Airlie airlied at kemper.freedesktop.org
Sat Sep 25 12:18:56 UTC 2010


Module: Mesa
Branch: master
Commit: b6469a8dc712f550bafef624f854f265c5c8360f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6469a8dc712f550bafef624f854f265c5c8360f

Author: Dave Airlie <airlied at redhat.com>
Date:   Sat Sep 25 20:23:44 2010 +1000

r600g: add eg db count control register.

---

 src/gallium/drivers/r600/eg_hw_states.c  |    5 +++--
 src/gallium/drivers/r600/eg_states_inc.h |   15 ++++++++-------
 src/gallium/winsys/r600/drm/eg_states.h  |    1 +
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/r600/eg_hw_states.c b/src/gallium/drivers/r600/eg_hw_states.c
index 272972d..889eeda 100644
--- a/src/gallium/drivers/r600/eg_hw_states.c
+++ b/src/gallium/drivers/r600/eg_hw_states.c
@@ -364,6 +364,7 @@ static void eg_dsa(struct r600_context *rctx, struct radeon_state *rstate)
 	struct r600_screen *rscreen = rctx->screen;
 	unsigned db_depth_control, alpha_test_control, alpha_ref, db_shader_control;
 	unsigned stencil_ref_mask, stencil_ref_mask_bf, db_render_override, db_render_control;
+	unsigned db_count_control = 0;
 	struct r600_shader *rshader;
 	struct r600_query *rquery = NULL;
 	boolean query_running;
@@ -439,7 +440,7 @@ static void eg_dsa(struct r600_context *rctx, struct radeon_state *rstate)
 
 	if (query_running) {
 		db_render_override |= S_02800C_NOOP_CULL_DISABLE(1);
-//		db_render_control |= S_028000_PERFECT_ZPASS_COUNTS(1);
+		db_count_control |= S_028004_PERFECT_ZPASS_COUNTS(1);
 	}
 
 	rstate->states[EG_DSA__DB_STENCIL_CLEAR] = 0x00000000;
@@ -455,7 +456,7 @@ static void eg_dsa(struct r600_context *rctx, struct radeon_state *rstate)
 	rstate->states[EG_DSA__DB_SHADER_CONTROL] = db_shader_control;
 	rstate->states[EG_DSA__DB_RENDER_CONTROL] = db_render_control;
 	rstate->states[EG_DSA__DB_RENDER_OVERRIDE] = db_render_override;
-	  
+	rstate->states[EG_DSA__DB_COUNT_CONTROL] = db_count_control;
 	rstate->states[EG_DSA__DB_SRESULTS_COMPARE_STATE1] = 0x00000000;
 	rstate->states[EG_DSA__DB_PRELOAD_CONTROL] = 0x00000000;
 	rstate->states[EG_DSA__DB_ALPHA_TO_MASK] = 0x0000AA00;
diff --git a/src/gallium/drivers/r600/eg_states_inc.h b/src/gallium/drivers/r600/eg_states_inc.h
index 9f8007c..1379c11 100644
--- a/src/gallium/drivers/r600/eg_states_inc.h
+++ b/src/gallium/drivers/r600/eg_states_inc.h
@@ -150,13 +150,14 @@
 #define EG_DSA__DB_DEPTH_CONTROL		7
 #define EG_DSA__DB_SHADER_CONTROL		8
 #define EG_DSA__DB_RENDER_CONTROL		9
-#define EG_DSA__DB_RENDER_OVERRIDE		10
-#define EG_DSA__DB_RENDER_OVERRIDE2		11
-#define EG_DSA__DB_SRESULTS_COMPARE_STATE0		12
-#define EG_DSA__DB_SRESULTS_COMPARE_STATE1		13
-#define EG_DSA__DB_PRELOAD_CONTROL		14
-#define EG_DSA__DB_ALPHA_TO_MASK		15
-#define EG_DSA_SIZE		16
+#define EG_DSA__DB_COUNT_CONTROL		10
+#define EG_DSA__DB_RENDER_OVERRIDE		11
+#define EG_DSA__DB_RENDER_OVERRIDE2		12
+#define EG_DSA__DB_SRESULTS_COMPARE_STATE0		13
+#define EG_DSA__DB_SRESULTS_COMPARE_STATE1		14
+#define EG_DSA__DB_PRELOAD_CONTROL		15
+#define EG_DSA__DB_ALPHA_TO_MASK		16
+#define EG_DSA_SIZE		17
 #define EG_DSA_PM4 128		
 
 /* EG_VS_SHADER */
diff --git a/src/gallium/winsys/r600/drm/eg_states.h b/src/gallium/winsys/r600/drm/eg_states.h
index d87109f..ced7f14 100644
--- a/src/gallium/winsys/r600/drm/eg_states.h
+++ b/src/gallium/winsys/r600/drm/eg_states.h
@@ -164,6 +164,7 @@ static const struct radeon_register EG_names_DSA[] = {
 	{0x00028800, 0, 0, "DB_DEPTH_CONTROL"},
 	{0x0002880C, 0, 0, "DB_SHADER_CONTROL"},
 	{0x00028000, 0, 0, "DB_RENDER_CONTROL"},
+	{0x00028004, 0, 0, "DB_COUNT_CONTROL"},
 	{0x0002800C, 0, 0, "DB_RENDER_OVERRIDE"},
 	{0x00028010, 0, 0, "DB_RENDER_OVERRIDE2"},
 	{0x00028AC0, 0, 0, "DB_SRESULTS_COMPARE_STATE0"},




More information about the mesa-commit mailing list