iris: Track last VS URB entry size
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>
This commit is contained in:
@@ -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,
|
||||
|
Reference in New Issue
Block a user