[Mesa-dev] [PATCH 1/3] llvmpipe: tweak CMD_BLOCK_MAX and LP_SCENE_MAX_SIZE

Jose Fonseca jfonseca at vmware.com
Wed Mar 6 09:22:09 PST 2013


Looks good. Thanks for fine tuning these parameters!

Jose

----- Original Message -----
> 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.
> ---
>  src/gallium/drivers/llvmpipe/lp_scene.h |   10 ++++++++--
>  1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/src/gallium/drivers/llvmpipe/lp_scene.h
> b/src/gallium/drivers/llvmpipe/lp_scene.h
> index b1db61b..801829d 100644
> --- a/src/gallium/drivers/llvmpipe/lp_scene.h
> +++ b/src/gallium/drivers/llvmpipe/lp_scene.h
> @@ -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:
> --
> 1.7.3.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list