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>
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;
}
unsigned urb_size;
+ /* Track last VS URB entry size */
+ unsigned last_vs_entry_size;
+
/**
* Scratch buffers for various sizes and stages.
*
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,