OSDN Git Service

llvmpipe: tweak CMD_BLOCK_MAX and LP_SCENE_MAX_SIZE
authorBrian Paul <brianp@vmware.com>
Mon, 4 Mar 2013 21:33:04 +0000 (14:33 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 6 Mar 2013 17:34:09 +0000 (10:34 -0700)
commita31ebdffa048e3f7ff10a6742c3d1f10c2d8e494
treecac076eda1473a54dfe6736b799106c1eabf6225
parent492693c0a5d653b95ab4a970fdc5bba074050243
llvmpipe: tweak CMD_BLOCK_MAX and LP_SCENE_MAX_SIZE

We advertise a max texture/surfaces size of 8K x 8K but the old values
for these limits didn't actually allow us to handle that surface size.

For 8K x 8K we'll have 16384 bins.  Each bin needs at least one cmd_block
object which was 2192 bytes in size.  Since 16384 * 2192 exceeded
LP_SCENE_MAX_SIZE we'd silently fail in lp_scene_new_data_block() and not
draw the complete scene.

By reducing CMD_BLOCK_MAX to 29 we get nice 512-byte cmd_blocks.  And
by increasing LP_SCENE_MAX_SIZE to 9 MB we can allocate enough command
blocks for 8K x 8K, plus a few regular data blocks.

Fixes the (improved) piglit fbo-maxsize test.

Note: This is a candidate for the stable branches.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/gallium/drivers/llvmpipe/lp_scene.h