diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-05-30 13:27:32 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-06-02 08:32:10 +0100 |
commit | 2df4466adae7f299eac3f7fd3e5f33ee4b22e53f (patch) | |
tree | 63142a0eaf55ef1da45edc8b7c33124a93d9ebac /src/sna | |
parent | 1618d6cfa63e31ebaedadf575dcbdf5b07451bde (diff) |
sna/gen8: Clear all URB push constant allocations
A little paranoia to clear the unused portion of the URB and dedicate it
to VS entries.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna')
-rw-r--r-- | src/sna/gen8_render.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c index 5c22bbb9..c66f7cc7 100644 --- a/src/sna/gen8_render.c +++ b/src/sna/gen8_render.c @@ -410,16 +410,24 @@ static void gen8_emit_urb(struct sna *sna) { #if SIM + OUT_BATCH(GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_VS | (2 - 2)); + OUT_BATCH(0 << PUSH_CONSTANT_BUFFER_OFFSET_SHIFT | + 0 << PUSH_CONSTANT_BUFFER_SIZE_SHIFT); + + OUT_BATCH(GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS | (2 - 2)); + OUT_BATCH(0 << PUSH_CONSTANT_BUFFER_OFFSET_SHIFT | + 0 << PUSH_CONSTANT_BUFFER_SIZE_SHIFT); + OUT_BATCH(GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_PS | (2 - 2)); OUT_BATCH(0 << PUSH_CONSTANT_BUFFER_OFFSET_SHIFT | - 4 << PUSH_CONSTANT_BUFFER_SIZE_SHIFT); /* 8KiB */ + 0 << PUSH_CONSTANT_BUFFER_SIZE_SHIFT); #endif /* num of VS entries must be divisible by 8 if size < 9 */ OUT_BATCH(GEN8_3DSTATE_URB_VS | (2 - 2)); - OUT_BATCH(960 << URB_ENTRY_NUMBER_SHIFT | + OUT_BATCH(1024 << URB_ENTRY_NUMBER_SHIFT | (2 - 1) << URB_ENTRY_SIZE_SHIFT | - 1 << URB_STARTING_ADDRESS_SHIFT); + 0 << URB_STARTING_ADDRESS_SHIFT); OUT_BATCH(GEN8_3DSTATE_URB_HS | (2 - 2)); OUT_BATCH(0 << URB_ENTRY_SIZE_SHIFT | |