Преглед на файлове

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>
tags/19.1-branchpoint
Sagar Ghuge преди 7 години
родител
ревизия
bca28deb46
променени са 3 файла, в които са добавени 11 реда и са изтрити 0 реда
  1. 6
    0
      src/gallium/drivers/iris/iris_blorp.c
  2. 3
    0
      src/gallium/drivers/iris/iris_context.h
  3. 2
    0
      src/gallium/drivers/iris/iris_state.c

+ 6
- 0
src/gallium/drivers/iris/iris_blorp.c Целия файл

@@ -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;
}

+ 3
- 0
src/gallium/drivers/iris/iris_context.h Целия файл

@@ -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.
*

+ 2
- 0
src/gallium/drivers/iris/iris_state.c Целия файл

@@ -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,

Loading…
Отказ
Запис