Re: [Mesa-dev] [PATCH 1/5] r600g: unify vgt states

2013-03-04 Thread Jerome Glisse
On Wed, Feb 27, 2013 at 6:11 PM, Marek Olšák mar...@gmail.com wrote:
 The states were split because we thought it caused a hardlock. Now we know
 the hardlock was caused by something else and has since been fixed.

For the serie:
Reviewed-by: Jerome Glisse jgli...@redhat.com

 ---
  src/gallium/drivers/r600/evergreen_state.c   |3 +--
  src/gallium/drivers/r600/r600_hw_context.c   |1 -
  src/gallium/drivers/r600/r600_pipe.h |6 --
  src/gallium/drivers/r600/r600_state.c|3 +--
  src/gallium/drivers/r600/r600_state_common.c |   22 +++---
  5 files changed, 9 insertions(+), 26 deletions(-)

 diff --git a/src/gallium/drivers/r600/evergreen_state.c 
 b/src/gallium/drivers/r600/evergreen_state.c
 index 205bbc5..244989d 100644
 --- a/src/gallium/drivers/r600/evergreen_state.c
 +++ b/src/gallium/drivers/r600/evergreen_state.c
 @@ -2615,8 +2615,7 @@ void evergreen_init_state_functions(struct r600_context 
 *rctx)
 r600_init_atom(rctx, 
 rctx-samplers[PIPE_SHADER_GEOMETRY].views.atom, id++, 
 evergreen_emit_gs_sampler_views, 0);
 r600_init_atom(rctx, 
 rctx-samplers[PIPE_SHADER_FRAGMENT].views.atom, id++, 
 evergreen_emit_ps_sampler_views, 0);

 -   r600_init_atom(rctx, rctx-vgt_state.atom, id++, 
 r600_emit_vgt_state, 6);
 -   r600_init_atom(rctx, rctx-vgt2_state.atom, id++, 
 r600_emit_vgt2_state, 3);
 +   r600_init_atom(rctx, rctx-vgt_state.atom, id++, 
 r600_emit_vgt_state, 7);

 if (rctx-chip_class == EVERGREEN) {
 r600_init_atom(rctx, rctx-sample_mask.atom, id++, 
 evergreen_emit_sample_mask, 3);
 diff --git a/src/gallium/drivers/r600/r600_hw_context.c 
 b/src/gallium/drivers/r600/r600_hw_context.c
 index 91af6b8..b78b004 100644
 --- a/src/gallium/drivers/r600/r600_hw_context.c
 +++ b/src/gallium/drivers/r600/r600_hw_context.c
 @@ -827,7 +827,6 @@ void r600_begin_new_cs(struct r600_context *ctx)
 ctx-framebuffer.atom.dirty = true;
 ctx-poly_offset_state.atom.dirty = true;
 ctx-vgt_state.atom.dirty = true;
 -   ctx-vgt2_state.atom.dirty = true;
 ctx-sample_mask.atom.dirty = true;
 ctx-scissor.atom.dirty = true;
 ctx-config_state.atom.dirty = true;
 diff --git a/src/gallium/drivers/r600/r600_pipe.h 
 b/src/gallium/drivers/r600/r600_pipe.h
 index 570a284..4cfade1 100644
 --- a/src/gallium/drivers/r600/r600_pipe.h
 +++ b/src/gallium/drivers/r600/r600_pipe.h
 @@ -127,10 +127,6 @@ struct r600_vgt_state {
 struct r600_atom atom;
 uint32_t vgt_multi_prim_ib_reset_en;
 uint32_t vgt_multi_prim_ib_reset_indx;
 -};
 -
 -struct r600_vgt2_state {
 -   struct r600_atom atom;
 uint32_t vgt_indx_offset;
  };

 @@ -506,7 +502,6 @@ struct r600_context {
 struct r600_config_stateconfig_state;
 struct r600_stencil_ref_state   stencil_ref;
 struct r600_vgt_state   vgt_state;
 -   struct r600_vgt2_state  vgt2_state;
 struct r600_viewport_state  viewport;
 /* Shaders and shader resources. */
 struct r600_cso_state   vertex_fetch_shader;
 @@ -733,7 +728,6 @@ void r600_emit_cso_state(struct r600_context *rctx, 
 struct r600_atom *atom);
  void r600_emit_alphatest_state(struct r600_context *rctx, struct r600_atom 
 *atom);
  void r600_emit_blend_color(struct r600_context *rctx, struct r600_atom 
 *atom);
  void r600_emit_vgt_state(struct r600_context *rctx, struct r600_atom *atom);
 -void r600_emit_vgt2_state(struct r600_context *rctx, struct r600_atom *atom);
  void r600_emit_clip_misc_state(struct r600_context *rctx, struct r600_atom 
 *atom);
  void r600_emit_stencil_ref(struct r600_context *rctx, struct r600_atom 
 *atom);
  void r600_emit_viewport_state(struct r600_context *rctx, struct r600_atom 
 *atom);
 diff --git a/src/gallium/drivers/r600/r600_state.c 
 b/src/gallium/drivers/r600/r600_state.c
 index bbff6bd..fd3b14e 100644
 --- a/src/gallium/drivers/r600/r600_state.c
 +++ b/src/gallium/drivers/r600/r600_state.c
 @@ -2312,8 +2312,7 @@ void r600_init_state_functions(struct r600_context 
 *rctx)
 r600_init_atom(rctx, 
 rctx-samplers[PIPE_SHADER_FRAGMENT].views.atom, id++, 
 r600_emit_ps_sampler_views, 0);
 r600_init_atom(rctx, rctx-vertex_buffer_state.atom, id++, 
 r600_emit_vertex_buffers, 0);

 -   r600_init_atom(rctx, rctx-vgt_state.atom, id++, 
 r600_emit_vgt_state, 6);
 -   r600_init_atom(rctx, rctx-vgt2_state.atom, id++, 
 r600_emit_vgt2_state, 3);
 +   r600_init_atom(rctx, rctx-vgt_state.atom, id++, 
 r600_emit_vgt_state, 7);

 r600_init_atom(rctx, rctx-seamless_cube_map.atom, id++, 
 r600_emit_seamless_cube_map, 3);
 r600_init_atom(rctx, rctx-sample_mask.atom, id++, 
 r600_emit_sample_mask, 3);
 diff --git a/src/gallium/drivers/r600/r600_state_common.c 
 b/src/gallium/drivers/r600/r600_state_common.c
 index 4c68506..8906695 100644
 --- a/src/gallium/drivers/r600/r600_state_common.c
 +++ 

[Mesa-dev] [PATCH 1/5] r600g: unify vgt states

2013-02-27 Thread Marek Olšák
The states were split because we thought it caused a hardlock. Now we know
the hardlock was caused by something else and has since been fixed.
---
 src/gallium/drivers/r600/evergreen_state.c   |3 +--
 src/gallium/drivers/r600/r600_hw_context.c   |1 -
 src/gallium/drivers/r600/r600_pipe.h |6 --
 src/gallium/drivers/r600/r600_state.c|3 +--
 src/gallium/drivers/r600/r600_state_common.c |   22 +++---
 5 files changed, 9 insertions(+), 26 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 205bbc5..244989d 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -2615,8 +2615,7 @@ void evergreen_init_state_functions(struct r600_context 
*rctx)
r600_init_atom(rctx, rctx-samplers[PIPE_SHADER_GEOMETRY].views.atom, 
id++, evergreen_emit_gs_sampler_views, 0);
r600_init_atom(rctx, rctx-samplers[PIPE_SHADER_FRAGMENT].views.atom, 
id++, evergreen_emit_ps_sampler_views, 0);
 
-   r600_init_atom(rctx, rctx-vgt_state.atom, id++, r600_emit_vgt_state, 
6);
-   r600_init_atom(rctx, rctx-vgt2_state.atom, id++, 
r600_emit_vgt2_state, 3);
+   r600_init_atom(rctx, rctx-vgt_state.atom, id++, r600_emit_vgt_state, 
7);
 
if (rctx-chip_class == EVERGREEN) {
r600_init_atom(rctx, rctx-sample_mask.atom, id++, 
evergreen_emit_sample_mask, 3);
diff --git a/src/gallium/drivers/r600/r600_hw_context.c 
b/src/gallium/drivers/r600/r600_hw_context.c
index 91af6b8..b78b004 100644
--- a/src/gallium/drivers/r600/r600_hw_context.c
+++ b/src/gallium/drivers/r600/r600_hw_context.c
@@ -827,7 +827,6 @@ void r600_begin_new_cs(struct r600_context *ctx)
ctx-framebuffer.atom.dirty = true;
ctx-poly_offset_state.atom.dirty = true;
ctx-vgt_state.atom.dirty = true;
-   ctx-vgt2_state.atom.dirty = true;
ctx-sample_mask.atom.dirty = true;
ctx-scissor.atom.dirty = true;
ctx-config_state.atom.dirty = true;
diff --git a/src/gallium/drivers/r600/r600_pipe.h 
b/src/gallium/drivers/r600/r600_pipe.h
index 570a284..4cfade1 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -127,10 +127,6 @@ struct r600_vgt_state {
struct r600_atom atom;
uint32_t vgt_multi_prim_ib_reset_en;
uint32_t vgt_multi_prim_ib_reset_indx;
-};
-
-struct r600_vgt2_state {
-   struct r600_atom atom;
uint32_t vgt_indx_offset;
 };
 
@@ -506,7 +502,6 @@ struct r600_context {
struct r600_config_stateconfig_state;
struct r600_stencil_ref_state   stencil_ref;
struct r600_vgt_state   vgt_state;
-   struct r600_vgt2_state  vgt2_state;
struct r600_viewport_state  viewport;
/* Shaders and shader resources. */
struct r600_cso_state   vertex_fetch_shader;
@@ -733,7 +728,6 @@ void r600_emit_cso_state(struct r600_context *rctx, struct 
r600_atom *atom);
 void r600_emit_alphatest_state(struct r600_context *rctx, struct r600_atom 
*atom);
 void r600_emit_blend_color(struct r600_context *rctx, struct r600_atom *atom);
 void r600_emit_vgt_state(struct r600_context *rctx, struct r600_atom *atom);
-void r600_emit_vgt2_state(struct r600_context *rctx, struct r600_atom *atom);
 void r600_emit_clip_misc_state(struct r600_context *rctx, struct r600_atom 
*atom);
 void r600_emit_stencil_ref(struct r600_context *rctx, struct r600_atom *atom);
 void r600_emit_viewport_state(struct r600_context *rctx, struct r600_atom 
*atom);
diff --git a/src/gallium/drivers/r600/r600_state.c 
b/src/gallium/drivers/r600/r600_state.c
index bbff6bd..fd3b14e 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -2312,8 +2312,7 @@ void r600_init_state_functions(struct r600_context *rctx)
r600_init_atom(rctx, rctx-samplers[PIPE_SHADER_FRAGMENT].views.atom, 
id++, r600_emit_ps_sampler_views, 0);
r600_init_atom(rctx, rctx-vertex_buffer_state.atom, id++, 
r600_emit_vertex_buffers, 0);
 
-   r600_init_atom(rctx, rctx-vgt_state.atom, id++, r600_emit_vgt_state, 
6);
-   r600_init_atom(rctx, rctx-vgt2_state.atom, id++, 
r600_emit_vgt2_state, 3);
+   r600_init_atom(rctx, rctx-vgt_state.atom, id++, r600_emit_vgt_state, 
7);
 
r600_init_atom(rctx, rctx-seamless_cube_map.atom, id++, 
r600_emit_seamless_cube_map, 3);
r600_init_atom(rctx, rctx-sample_mask.atom, id++, 
r600_emit_sample_mask, 3);
diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index 4c68506..8906695 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -192,15 +192,9 @@ void r600_emit_vgt_state(struct r600_context *rctx, struct 
r600_atom *atom)
struct r600_vgt_state *a = (struct r600_vgt_state *)atom;
 
r600_write_context_reg(cs,