From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/radeonsi/si_pipe.c  |  4 ----
 src/gallium/drivers/radeonsi/si_state.c | 13 +++++++++++++
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index 03b0ee4..e95824a 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -142,10 +142,6 @@ static struct pipe_context *si_create_context(struct 
pipe_screen *screen,
        sctx->b.rings.gfx.flush = si_context_gfx_flush;
 
        si_init_all_descriptors(sctx);
-
-       sctx->atoms.s.streamout_begin = &sctx->b.streamout.begin_atom;
-       sctx->atoms.s.streamout_enable = &sctx->b.streamout.enable_atom;
-
        si_init_state_functions(sctx);
        si_init_shader_functions(sctx);
 
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index cc34f3b..88964e1 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -35,6 +35,16 @@
 #include "util/u_memory.h"
 #include "util/u_pstipple.h"
 
+/* Initialize an external atom (owned by ../radeon). */
+static void
+si_init_external_atom(struct si_context *sctx, struct r600_atom *atom,
+                     struct r600_atom **list_elem)
+{
+       atom->id = list_elem - sctx->atoms.array + 1;
+       *list_elem = atom;
+}
+
+/* Initialize an atom owned by radeonsi.  */
 void si_init_atom(struct si_context *sctx, struct r600_atom *atom,
                  struct r600_atom **list_elem,
                  void (*emit_func)(struct si_context *ctx, struct r600_atom 
*state),
@@ -3027,6 +3037,9 @@ static void si_init_config(struct si_context *sctx);
 
 void si_init_state_functions(struct si_context *sctx)
 {
+       si_init_external_atom(sctx, &sctx->b.streamout.begin_atom, 
&sctx->atoms.s.streamout_begin);
+       si_init_external_atom(sctx, &sctx->b.streamout.enable_atom, 
&sctx->atoms.s.streamout_enable);
+
        si_init_atom(sctx, &sctx->cache_flush, &sctx->atoms.s.cache_flush, 
si_emit_cache_flush, 24);
        si_init_atom(sctx, &sctx->framebuffer.atom, &sctx->atoms.s.framebuffer, 
si_emit_framebuffer_state, 0);
        si_init_atom(sctx, &sctx->msaa_sample_locs, 
&sctx->atoms.s.msaa_sample_locs, si_emit_msaa_sample_locs, 18);
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to