summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.h
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2016-10-02 17:40:49 +0200
committerMarek Olšák <marek.olsak@amd.com>2016-10-04 16:12:06 +0200
commit3388f27d8439e75a0f4e64fd12f0433ccb2b3698 (patch)
tree15e47fa995d65d4317e8fade5c806b06ea06052a /src/gallium/drivers/radeonsi/si_pipe.h
parent53d2c8f00f5422a872cedbea4674c004378d9999 (diff)
downloadexternal_mesa3d-3388f27d8439e75a0f4e64fd12f0433ccb2b3698.zip
external_mesa3d-3388f27d8439e75a0f4e64fd12f0433ccb2b3698.tar.gz
external_mesa3d-3388f27d8439e75a0f4e64fd12f0433ccb2b3698.tar.bz2
radeonsi: clean up lucky #include dependencies
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index 55e4ca7..558e185 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -26,10 +26,7 @@
#ifndef SI_PIPE_H
#define SI_PIPE_H
-#include "si_state.h"
-#include "util/u_queue.h"
-
-#include <llvm-c/TargetMachine.h>
+#include "si_shader.h"
#ifdef PIPE_ARCH_BIG_ENDIAN
#define SI_BIG_ENDIAN 1
@@ -444,4 +441,36 @@ si_mark_atom_dirty(struct si_context *sctx,
si_set_atom_dirty(sctx, atom, true);
}
+static inline struct tgsi_shader_info *si_get_vs_info(struct si_context *sctx)
+{
+ if (sctx->gs_shader.cso)
+ return &sctx->gs_shader.cso->info;
+ else if (sctx->tes_shader.cso)
+ return &sctx->tes_shader.cso->info;
+ else if (sctx->vs_shader.cso)
+ return &sctx->vs_shader.cso->info;
+ else
+ return NULL;
+}
+
+static inline struct si_shader* si_get_vs_state(struct si_context *sctx)
+{
+ if (sctx->gs_shader.current)
+ return sctx->gs_shader.current->gs_copy_shader;
+ else if (sctx->tes_shader.current)
+ return sctx->tes_shader.current;
+ else
+ return sctx->vs_shader.current;
+}
+
+static inline bool si_vs_exports_prim_id(struct si_shader *shader)
+{
+ if (shader->selector->type == PIPE_SHADER_VERTEX)
+ return shader->key.vs.epilog.export_prim_id;
+ else if (shader->selector->type == PIPE_SHADER_TESS_EVAL)
+ return shader->key.tes.epilog.export_prim_id;
+ else
+ return false;
+}
+
#endif