diff options
author | Michel Dänzer <[email protected]> | 2013-11-21 16:45:28 +0900 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2014-01-29 11:06:28 +0900 |
commit | 404b29d765e2fe4d2bf80d17063e5672d2d59ca1 (patch) | |
tree | db18b59b6517c6dde9fb92f6a6e26a636e9176fd /src/gallium/drivers/radeonsi/si_pipe.h | |
parent | 51f89a03e1f8cee7de46735bb1ee6af388409b6d (diff) |
radeonsi: Initial geometry shader support
Partly based on the corresponding r600g work by Vadim Girlin and Dave
Airlie.
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 3c27e670303..45a8f67d67d 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -75,7 +75,9 @@ struct si_surface { }; #define SI_NUM_ATOMS(sctx) (sizeof((sctx)->atoms)/sizeof((sctx)->atoms.array[0])) -#define SI_NUM_SHADERS (PIPE_SHADER_FRAGMENT+1) + +#define SI_SHADER_EXPORT (PIPE_SHADER_GEOMETRY+1) +#define SI_NUM_SHADERS (SI_SHADER_EXPORT+1) struct si_context { struct r600_common_context b; @@ -112,6 +114,7 @@ struct si_context { /* for saving when using blitter */ struct pipe_stencil_ref stencil_ref; struct si_pipe_shader_selector *ps_shader; + struct si_pipe_shader_selector *gs_shader; struct si_pipe_shader_selector *vs_shader; struct si_cs_shader_state cs_shader_state; /* shader information */ @@ -138,8 +141,13 @@ struct si_context { /* With rasterizer discard, there doesn't have to be a pixel shader. * In that case, we bind this one: */ void *dummy_pixel_shader; + struct si_pm4_state *gs_on; + struct si_pm4_state *gs_off; + struct si_pm4_state *gs_rings; struct r600_atom cache_flush; struct pipe_constant_buffer null_const_buf; /* used for set_constant_buffer(NULL) on CIK */ + struct pipe_constant_buffer esgs_ring; + struct pipe_constant_buffer gsvs_ring; /* SI state handling */ union si_state queued; |