Home | History | Annotate | Download | only in i965

Lines Matching refs:urb

35  * When the GS is not in use, we assign the entire URB space to the VS.  When
36 * the GS is in use, we split the URB space evenly between the VS and the GS.
39 * URB size / 2 URB size / 2
46 * Sandybridge GT1 has 32kB of URB space, while GT2 has 64kB.
54 int total_urb_size = brw->urb.size * 1024; /* in bytes */
57 brw->urb.vs_size = MAX2(brw->vs.prog_data->urb_entry_size, 1);
60 * the SF and Clipper expect), so we can simply make the GS URB entry size
65 brw->urb.gs_size = brw->urb.vs_size;
67 /* Calculate how many entries fit in each stage's section of the URB */
69 nr_vs_entries = (total_urb_size/2) / (brw->urb.vs_size * 128);
70 nr_gs_entries = (total_urb_size/2) / (brw->urb.gs_size * 128);
72 nr_vs_entries = total_urb_size / (brw->urb.vs_size * 128);
77 if (nr_vs_entries > brw->urb.max_vs_entries)
78 nr_vs_entries = brw->urb.max_vs_entries;
80 if (nr_gs_entries > brw->urb.max_gs_entries)
81 nr_gs_entries = brw->urb.max_gs_entries;
84 brw->urb.nr_vs_entries = ROUND_DOWN_TO(nr_vs_entries, 4);
85 brw->urb.nr_gs_entries = ROUND_DOWN_TO(nr_gs_entries, 4);
87 assert(brw->urb.nr_vs_entries >= 24);
88 assert(brw->urb.nr_vs_entries % 4 == 0);
89 assert(brw->urb.nr_gs_entries % 4 == 0);
90 assert(brw->urb.vs_size < 5);
91 assert(brw->urb.gs_size < 5);
95 OUT_BATCH(((brw->urb.vs_size - 1) << GEN6_URB_VS_SIZE_SHIFT) |
96 ((brw->urb.nr_vs_entries) << GEN6_URB_VS_ENTRIES_SHIFT));
97 OUT_BATCH(((brw->urb.gs_size - 1) << GEN6_URB_GS_SIZE_SHIFT) |
98 ((brw->urb.nr_gs_entries) << GEN6_URB_GS_ENTRIES_SHIFT));
103 * Because of a urb corruption caused by allocating a previous gsunit?s
104 * urb entry to vsunit software is required to send a "GS NULL
105 * Fence"(Send URB fence with VS URB size == 1 and GS URB size == 0) plus
106 * a dummy DRAW call before any case where VS will be taking over GS URB
109 * It is not clear exactly what this means ("URB fence" is a command that
113 if (brw->urb.gen6_gs_previously_active && !brw->gs.prog_active)
115 brw->urb.gen6_gs_previously_active = brw->gs.prog_active;