Module: Mesa
Branch: 10.2
Commit: 0c739aa1d213ecd50d378f71c662cec3d2f841d6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c739aa1d213ecd50d378f71c662cec3d2f841d6

Author: Adam Jackson <[email protected]>
Date:   Tue Apr 22 12:46:08 2014 -0400

radeonsi: Don't use anonymous struct trick in atom tracking

I'm somewhat impressed that current gccs will let you do this, but
sufficiently old ones (including 4.4.7 in RHEL6) won't.

Reviewed-by: Marek Olšák <[email protected]>
Signed-off-by: Adam Jackson <[email protected]>
(cherry picked from commit 74388dd24bc7fdb9e62ec18096163f5426e03fbf)
Nominated-by: Jonathan Gray <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76789

---

 src/gallium/drivers/radeonsi/si_descriptors.c |    6 +++---
 src/gallium/drivers/radeonsi/si_hw_context.c  |    2 +-
 src/gallium/drivers/radeonsi/si_pipe.c        |    6 +++---
 src/gallium/drivers/radeonsi/si_pipe.h        |    2 +-
 src/gallium/drivers/radeonsi/si_state.c       |    2 +-
 src/gallium/drivers/radeonsi/si_state_draw.c  |    2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c 
b/src/gallium/drivers/radeonsi/si_descriptors.c
index 77bc034..38ad077 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -987,9 +987,9 @@ void si_init_all_descriptors(struct si_context *sctx)
 
                si_init_sampler_views(sctx, &sctx->samplers[i].views, i);
 
-               sctx->atoms.const_buffers[i] = 
&sctx->const_buffers[i].desc.atom;
-               sctx->atoms.rw_buffers[i] = &sctx->rw_buffers[i].desc.atom;
-               sctx->atoms.sampler_views[i] = 
&sctx->samplers[i].views.desc.atom;
+               sctx->atoms.s.const_buffers[i] = 
&sctx->const_buffers[i].desc.atom;
+               sctx->atoms.s.rw_buffers[i] = &sctx->rw_buffers[i].desc.atom;
+               sctx->atoms.s.sampler_views[i] = 
&sctx->samplers[i].views.desc.atom;
        }
 
 
diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c 
b/src/gallium/drivers/radeonsi/si_hw_context.c
index 383157b..d2a1dbe 100644
--- a/src/gallium/drivers/radeonsi/si_hw_context.c
+++ b/src/gallium/drivers/radeonsi/si_hw_context.c
@@ -63,7 +63,7 @@ void si_need_cs_space(struct si_context *ctx, unsigned num_dw,
        }
 
        /* Count in framebuffer cache flushes at the end of CS. */
-       num_dw += ctx->atoms.cache_flush->num_dw;
+       num_dw += ctx->atoms.s.cache_flush->num_dw;
 
 #if SI_TRACE_CS
        if (ctx->screen->b.trace_bo) {
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index ca8cea3..7b905d6 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -106,10 +106,10 @@ static struct pipe_context *si_create_context(struct 
pipe_screen *screen, void *
 
        /* Initialize cache_flush. */
        sctx->cache_flush = si_atom_cache_flush;
-       sctx->atoms.cache_flush = &sctx->cache_flush;
+       sctx->atoms.s.cache_flush = &sctx->cache_flush;
 
-       sctx->atoms.streamout_begin = &sctx->b.streamout.begin_atom;
-       sctx->atoms.streamout_enable = &sctx->b.streamout.enable_atom;
+       sctx->atoms.s.streamout_begin = &sctx->b.streamout.begin_atom;
+       sctx->atoms.s.streamout_enable = &sctx->b.streamout.enable_atom;
 
        switch (sctx->b.chip_class) {
        case SI:
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h 
b/src/gallium/drivers/radeonsi/si_pipe.h
index 4a5f291..de42477 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -114,7 +114,7 @@ struct si_context {
                        struct r600_atom *streamout_begin;
                        struct r600_atom *streamout_enable; /* must be after 
streamout_begin */
                        struct r600_atom *framebuffer;
-               };
+               } s;
                struct r600_atom *array[0];
        } atoms;
 
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index 9bfa095..7f65c47 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2963,7 +2963,7 @@ void si_init_state_functions(struct si_context *sctx)
 {
        int i;
 
-       si_init_atom(&sctx->framebuffer.atom, &sctx->atoms.framebuffer, 
si_emit_framebuffer_state, 0);
+       si_init_atom(&sctx->framebuffer.atom, &sctx->atoms.s.framebuffer, 
si_emit_framebuffer_state, 0);
 
        sctx->b.b.create_blend_state = si_create_blend_state;
        sctx->b.b.bind_blend_state = si_bind_blend_state;
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c 
b/src/gallium/drivers/radeonsi/si_state_draw.c
index e2d3f99..5e42356 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -981,7 +981,7 @@ void si_draw_vbo(struct pipe_context *ctx, const struct 
pipe_draw_info *info)
 
        /* Check flush flags. */
        if (sctx->b.flags)
-               sctx->atoms.cache_flush->dirty = true;
+               sctx->atoms.s.cache_flush->dirty = true;
 
        si_need_cs_space(sctx, 0, TRUE);
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to