Return immediately if last VS URB entry size is good enough for BLORP operation v2: Fix comments (Caio) Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com> Suggested-by: Kenneth Graunke<kenneth@whitecape.org> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>tags/19.1-branchpoint
| @@ -249,6 +249,12 @@ blorp_emit_urb_config(struct blorp_batch *blorp_batch, | |||
| unsigned size[4] = { vs_entry_size, 1, 1, 1 }; | |||
| /* If last VS URB size is good enough for what the BLORP operation needed, | |||
| * then we can skip reconfiguration | |||
| */ | |||
| if (ice->shaders.last_vs_entry_size >= vs_entry_size) | |||
| return; | |||
| genX(emit_urb_setup)(ice, batch, size, false, false); | |||
| ice->state.dirty |= IRIS_DIRTY_URB; | |||
| } | |||
| @@ -502,6 +502,9 @@ struct iris_context { | |||
| unsigned urb_size; | |||
| /* Track last VS URB entry size */ | |||
| unsigned last_vs_entry_size; | |||
| /** | |||
| * Scratch buffers for various sizes and stages. | |||
| * | |||
| @@ -5866,6 +5866,8 @@ genX(emit_urb_setup)(struct iris_context *ice, | |||
| unsigned entries[4]; | |||
| unsigned start[4]; | |||
| ice->shaders.last_vs_entry_size = size[MESA_SHADER_VERTEX]; | |||
| gen_get_urb_config(devinfo, 1024 * push_size_kB, | |||
| 1024 * ice->shaders.urb_size, | |||
| tess_present, gs_present, | |||