summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2014-04-22 12:46:08 -0400
committerEmil Velikov <emil.l.velikov@gmail.com>2014-09-02 13:35:03 +0100
commit0c739aa1d213ecd50d378f71c662cec3d2f841d6 (patch)
tree655689a85bb23678ac808eebd2e3154ab622b5c1
parent55d28925e6109a4afd61f109e845a8a51bd17652 (diff)
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 <marek.olsak@amd.com> Signed-off-by: Adam Jackson <ajax@redhat.com> (cherry picked from commit 74388dd24bc7fdb9e62ec18096163f5426e03fbf) Nominated-by: Jonathan Gray <jsg@jsg.id.au> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76789
-rw-r--r--src/gallium/drivers/radeonsi/si_descriptors.c6
-rw-r--r--src/gallium/drivers/radeonsi/si_hw_context.c2
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.c6
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h2
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c2
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c2
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 77bc03432cc..38ad0778cf0 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 383157b7dd3..d2a1dbe4217 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 ca8cea3e519..7b905d69729 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 4a5f29177ff..de424778a8d 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 9bfa0951b0f..7f65c4726a9 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 e2d3f990d87..5e42356a93f 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);