i965: Add functions to compute offsets within the VUE map.
authorPaul Berry <stereotype441@gmail.com>
Thu, 1 Sep 2011 22:30:21 +0000 (15:30 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 6 Sep 2011 18:03:53 +0000 (11:03 -0700)
Some parts of the i965 driver keep track of locations within the VUE
(vertex URB entry) using byte offsets.  This patch adds inline
functions to compute these byte offsets using the VUE map.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_context.h

index bf15fd6cfcf4d72cf5becd6009f2380405d61ac7..8cb42adc45015192ab2f9a9a3e539aee8909501b 100644 (file)
@@ -334,6 +334,24 @@ struct brw_vue_map {
    int num_slots;
 };
 
+/**
+ * Convert a VUE slot number into a byte offset within the VUE.
+ */
+static inline GLuint brw_vue_slot_to_offset(GLuint slot)
+{
+   return 16*slot;
+}
+
+/**
+ * Convert a vert_result into a byte offset within the VUE.
+ */
+static inline GLuint brw_vert_result_to_offset(struct brw_vue_map *vue_map,
+                                               GLuint vert_result)
+{
+   return brw_vue_slot_to_offset(vue_map->vert_result_to_slot[vert_result]);
+}
+
+
 struct brw_sf_prog_data {
    GLuint urb_read_length;
    GLuint total_grf;