llvmpipe: add some scene limit sanity check assertions

Note: This is a candidate for the stable branches.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
This commit is contained in:
Brian Paul 2013-03-04 14:38:20 -07:00
parent a31ebdffa0
commit a51b81558f

View file

@ -64,6 +64,28 @@ lp_scene_create( struct pipe_context *pipe )
pipe_mutex_init(scene->mutex);
#ifdef DEBUG
/* Do some scene limit sanity checks here */
{
size_t maxBins = TILES_X * TILES_Y;
size_t maxCommandBytes = sizeof(struct cmd_block) * maxBins;
size_t maxCommandPlusData = maxCommandBytes + DATA_BLOCK_SIZE;
/* We'll need at least one command block per bin. Make sure that's
* less than the max allowed scene size.
*/
assert(maxCommandBytes < LP_SCENE_MAX_SIZE);
/* We'll also need space for at least one other data block */
assert(maxCommandPlusData <= LP_SCENE_MAX_SIZE);
/* Ideally, the size of a cmd_block object will be a power of two
* in order to avoid wasting space when we allocation them from
* data blocks (which are power of two also).
*/
assert(sizeof(struct cmd_block) ==
util_next_power_of_two(sizeof(struct cmd_block)));
}
#endif
return scene;
}