i965: Use a variable for the push constant size in kB.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 3 Apr 2013 04:11:51 +0000 (21:11 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 4 Apr 2013 22:38:19 +0000 (15:38 -0700)
This clarifies that the offset of 2 is actually 16 kB / 8kB units.
It also keys both computations off of a single variable, which should
make it easier to change in the future.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/gen7_urb.c

index dafe1add51f130f1ecc0c4050b15da27e2e23954..5ac388589b46ae770458766e1b0b292cf5e2fbc2 100644 (file)
@@ -78,8 +78,9 @@ static void
 gen7_upload_urb(struct brw_context *brw)
 {
    struct intel_context *intel = &brw->intel;
+   const int push_size_kB = 16;
    /* Total space for entries is URB size - 16kB for push constants */
-   int handle_region_size = (brw->urb.size - 16) * 1024; /* bytes */
+   int handle_region_size = (brw->urb.size - push_size_kB) * 1024; /* bytes */
 
    /* CACHE_NEW_VS_PROG */
    unsigned vs_size = MAX2(brw->vs.prog_data->urb_entry_size, 1);
@@ -92,7 +93,7 @@ gen7_upload_urb(struct brw_context *brw)
    brw->urb.nr_vs_entries = ROUND_DOWN_TO(nr_vs_entries, 8);
 
    /* URB Starting Addresses are specified in multiples of 8kB. */
-   brw->urb.vs_start = 2; /* skip over push constants */
+   brw->urb.vs_start = push_size_kB / 8; /* skip over push constants */
 
    assert(brw->urb.nr_vs_entries % 8 == 0);
    assert(brw->urb.nr_gs_entries % 8 == 0);