mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-26 07:50:20 +01:00
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>
This commit is contained in:
parent
492693c0a5
commit
a31ebdffa0
1 changed files with 8 additions and 2 deletions
|
|
@ -49,12 +49,18 @@ struct lp_rast_state;
|
|||
#define TILES_Y (LP_MAX_HEIGHT / TILE_SIZE)
|
||||
|
||||
|
||||
#define CMD_BLOCK_MAX 128
|
||||
/* Commands per command block (ideally so sizeof(cmd_block) is a power of
|
||||
* two in size.)
|
||||
*/
|
||||
#define CMD_BLOCK_MAX 29
|
||||
|
||||
/* Bytes per data block.
|
||||
*/
|
||||
#define DATA_BLOCK_SIZE (64 * 1024)
|
||||
|
||||
/* Scene temporary storage is clamped to this size:
|
||||
*/
|
||||
#define LP_SCENE_MAX_SIZE (4*1024*1024)
|
||||
#define LP_SCENE_MAX_SIZE (9*1024*1024)
|
||||
|
||||
/* The maximum amount of texture storage referenced by a scene is
|
||||
* clamped ot this size:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue