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>
This commit is contained in:
Chris Wilson 2014-05-30 13:27:32 +01:00
parent 1618d6cfa6
commit 2df4466ada
1 changed files with 11 additions and 3 deletions

View File

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