summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_compiler.h
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2015-11-10 01:17:04 -0800
committerKenneth Graunke <kenneth@whitecape.org>2015-12-14 14:48:01 -0800
commit1f46163acb4853b3e159e4a0cb91d61c8a348553 (patch)
treed173fd800fb5440f7cc3e0f986f1609964cc6850 /src/mesa/drivers/dri/i965/brw_compiler.h
parent9f3917bf372aa19f85875dbe30ca12adc9b67b90 (diff)
downloadexternal_mesa3d-1f46163acb4853b3e159e4a0cb91d61c8a348553.zip
external_mesa3d-1f46163acb4853b3e159e4a0cb91d61c8a348553.tar.gz
external_mesa3d-1f46163acb4853b3e159e4a0cb91d61c8a348553.tar.bz2
i965: Add tessellation shader VUE map code.
Based on a patch by Chris Forbes, but largely rewritten by Ken. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_compiler.h')
-rw-r--r--src/mesa/drivers/dri/i965/brw_compiler.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.h b/src/mesa/drivers/dri/i965/brw_compiler.h
index 514788c..c9e0317 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.h
+++ b/src/mesa/drivers/dri/i965/brw_compiler.h
@@ -442,7 +442,7 @@ struct brw_vue_map {
* additional processing is applied before storing them in the VUE), the
* value is -1.
*/
- signed char varying_to_slot[BRW_VARYING_SLOT_COUNT];
+ signed char varying_to_slot[VARYING_SLOT_TESS_MAX];
/**
* Map from VUE slot to gl_varying_slot value. For slots that do not
@@ -451,12 +451,24 @@ struct brw_vue_map {
*
* For slots that are not in use, the value is BRW_VARYING_SLOT_PAD.
*/
- signed char slot_to_varying[BRW_VARYING_SLOT_COUNT];
+ signed char slot_to_varying[VARYING_SLOT_TESS_MAX];
/**
* Total number of VUE slots in use
*/
int num_slots;
+
+ /**
+ * Number of per-patch VUE slots. Only valid for tessellation control
+ * shader outputs and tessellation evaluation shader inputs.
+ */
+ int num_per_patch_slots;
+
+ /**
+ * Number of per-vertex VUE slots. Only valid for tessellation control
+ * shader outputs and tessellation evaluation shader inputs.
+ */
+ int num_per_vertex_slots;
};
void brw_print_vue_map(FILE *fp, const struct brw_vue_map *vue_map);
@@ -484,6 +496,10 @@ void brw_compute_vue_map(const struct brw_device_info *devinfo,
GLbitfield64 slots_valid,
bool separate_shader);
+void brw_compute_tess_vue_map(struct brw_vue_map *const vue_map,
+ const GLbitfield64 slots_valid,
+ const GLbitfield is_patch);
+
enum shader_dispatch_mode {
DISPATCH_MODE_4X1_SINGLE = 0,
DISPATCH_MODE_4X2_DUAL_INSTANCE = 1,