svga: optimize constant buffer uploads
authorCharmaine Lee <charmainel@vmware.com>
Fri, 11 Mar 2016 22:54:36 +0000 (14:54 -0800)
committerBrian Paul <brianp@vmware.com>
Mon, 21 Mar 2016 18:58:25 +0000 (12:58 -0600)
commitb45b47c5c98052c6c5d190c45843e12f8d0b6af3
tree65d789d6b249349de96a23c1cef7afd0732c5c57
parent0a1d91ef979a2782c722032f2b0a88d0754dd561
svga: optimize constant buffer uploads

When a constant buffer slot is allocated in the upload buffer,
the allocated slot size is always in multiple of 256. But the actual buffer
size might not be in multiple of 256. This causes a gap between
the ending offset of a slot and the starting offset of the next slot.
The gap will prevent the two slots to be updated in a single update command.
In order to maximize the chance of merging the contiguous dirty ranges,
when a slot is to be allocated in the constant upload buffer,
specify a buffer size in multiple of 256.

There is about 10% performance improvement with Lightsmark2008 and
30% with Cinebench R11.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
src/gallium/drivers/svga/svga_state_constants.c