summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-05-11 22:23:36 -0700
committerJason Ekstrand <[email protected]>2017-05-26 07:58:01 -0700
commit79b486f73635df41334da79ce4593bab999895ab (patch)
treece2b644c894708dfb11d5f1e893e77a620f3034b /src/mesa/drivers
parent0ed6f196fc2a35bf95112d76b9e7ea8f0152217a (diff)
i965/gen4: Expose the guts of URB recalculation as a helper
Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_urb.c15
2 files changed, 12 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 22a84e6197c..ccedeccf309 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -1361,6 +1361,8 @@ void brw_destroy_shader_time(struct brw_context *brw);
/* brw_urb.c
*/
+void brw_calculate_urb_fence(struct brw_context *brw, unsigned csize,
+ unsigned vsize, unsigned sfsize);
void brw_upload_urb_fence(struct brw_context *brw);
/* brw_curbe.c
diff --git a/src/mesa/drivers/dri/i965/brw_urb.c b/src/mesa/drivers/dri/i965/brw_urb.c
index 1ba981a5464..18daf5137bd 100644
--- a/src/mesa/drivers/dri/i965/brw_urb.c
+++ b/src/mesa/drivers/dri/i965/brw_urb.c
@@ -112,12 +112,10 @@ static bool check_urb_layout(struct brw_context *brw)
/* Most minimal update, forces re-emit of URB fence packet after GS
* unit turned on/off.
*/
-static void recalculate_urb_fence( struct brw_context *brw )
+void
+brw_calculate_urb_fence(struct brw_context *brw, unsigned csize,
+ unsigned vsize, unsigned sfsize)
{
- GLuint csize = brw->curbe.total_size;
- GLuint vsize = brw_vue_prog_data(brw->vs.base.prog_data)->urb_entry_size;
- GLuint sfsize = brw->sf.prog_data->urb_entry_size;
-
if (csize < limits[CS].min_entry_size)
csize = limits[CS].min_entry_size;
@@ -208,6 +206,13 @@ done:
}
}
+static void recalculate_urb_fence( struct brw_context *brw )
+{
+ brw_calculate_urb_fence(brw, brw->curbe.total_size,
+ brw_vue_prog_data(brw->vs.base.prog_data)->urb_entry_size,
+ brw->sf.prog_data->urb_entry_size);
+}
+
const struct brw_tracked_state brw_recalculate_urb_fence = {
.dirty = {