mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
iris: blorp URB
This commit is contained in:
parent
01fe6df0ed
commit
0e3870b9de
1 changed files with 22 additions and 6 deletions
|
|
@ -26,6 +26,7 @@
|
|||
#include "iris_resource.h"
|
||||
#include "iris_context.h"
|
||||
|
||||
#include "intel/common/gen_l3_config.h"
|
||||
#include "blorp/blorp_genX_exec.h"
|
||||
#include "util/u_upload_mgr.h"
|
||||
|
||||
|
|
@ -218,13 +219,28 @@ blorp_emit_urb_config(struct blorp_batch *blorp_batch,
|
|||
unsigned vs_entry_size,
|
||||
UNUSED unsigned sf_entry_size)
|
||||
{
|
||||
// XXX: URB...
|
||||
#if 0
|
||||
if (ice->urb.vsize >= vs_entry_size)
|
||||
return;
|
||||
struct iris_context *ice = blorp_batch->blorp->driver_ctx;
|
||||
struct iris_batch *batch = blorp_batch->driver_batch;
|
||||
const struct gen_device_info *devinfo = &batch->screen->devinfo;
|
||||
|
||||
gen7_upload_urb(ice, vs_entry_size, false, false);
|
||||
#endif
|
||||
// XXX: Track last URB config and avoid re-emitting it if it's good enough
|
||||
const unsigned push_size_kB = 32;
|
||||
unsigned entries[4];
|
||||
unsigned start[4];
|
||||
unsigned size[4] = { vs_entry_size, 1, 1, 1 };
|
||||
|
||||
gen_get_urb_config(devinfo, 1024 * push_size_kB,
|
||||
1024 * ice->shaders.urb_size,
|
||||
false, false, size, entries, start);
|
||||
|
||||
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
|
||||
blorp_emit(blorp_batch, GENX(3DSTATE_URB_VS), urb) {
|
||||
urb._3DCommandSubOpcode += i;
|
||||
urb.VSURBStartingAddress = start[i];
|
||||
urb.VSURBEntryAllocationSize = size[i] - 1;
|
||||
urb.VSNumberofURBEntries = entries[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue