summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.h
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2013-11-21 16:45:28 +0900
committerMichel Dänzer <michel@daenzer.net>2014-01-29 11:06:28 +0900
commit404b29d765e2fe4d2bf80d17063e5672d2d59ca1 (patch)
treedb18b59b6517c6dde9fb92f6a6e26a636e9176fd /src/gallium/drivers/radeonsi/si_pipe.h
parent51f89a03e1f8cee7de46735bb1ee6af388409b6d (diff)
downloadexternal_mesa3d-404b29d765e2fe4d2bf80d17063e5672d2d59ca1.zip
external_mesa3d-404b29d765e2fe4d2bf80d17063e5672d2d59ca1.tar.gz
external_mesa3d-404b29d765e2fe4d2bf80d17063e5672d2d59ca1.tar.bz2
radeonsi: Initial geometry shader support
Partly based on the corresponding r600g work by Vadim Girlin and Dave Airlie. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h10
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 3c27e67..45a8f67 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;