[PATCH i-g-t 05/11] lib/intel_compute: Use common constant for general state size

Thomas Hellström thomas.hellstrom at linux.intel.com
Thu Mar 13 14:35:40 UTC 2025


On Tue, 2025-03-11 at 16:21 +0100, Francois Dugast wrote:
> Reduce magic values in the code, homogenize the size which has no
> reason to be different among pipelines, define this value close to
> the addresses to make it easier to spot potential overlaps in the
> future.
> 
> Signed-off-by: Francois Dugast <francois.dugast at intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>

> ---
>  lib/intel_compute.c | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/intel_compute.c b/lib/intel_compute.c
> index a85fd8121..302a1d35c 100644
> --- a/lib/intel_compute.c
> +++ b/lib/intel_compute.c
> @@ -32,6 +32,7 @@
>  #define SIZE_DYNAMIC_STATE		0x100000
>  #define SIZE_INDIRECT_OBJECT		0x10000
>  #define SIZE_BINDING_TABLE		0x10000
> +#define SIZE_GENERAL_STATE		0x100000
>  
>  #define ADDR_SYNC			0x010000ULL
>  #define ADDR_SYNC2			0x020000ULL
> @@ -991,7 +992,8 @@ static void xehp_compute_exec(int fd, const
> unsigned char *kernel,
>  		  .name = "addr input"},
>  		{ .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT,
>  		  .name = "addr output" },
> -		{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x100000,
> +		{ .addr = ADDR_GENERAL_STATE_BASE,
> +		  .size = SIZE_GENERAL_STATE,
>  		  .name = "general state base" },
>  		{ .addr = ADDR_SURFACE_STATE_BASE +
> OFFSET_BINDING_TABLE,
>  		  .size = SIZE_BINDING_TABLE,
> @@ -1208,7 +1210,8 @@ static void xehpc_compute_exec(int fd, const
> unsigned char *kernel,
>  		  .name = "addr input"},
>  		{ .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT,
>  		  .name = "addr output" },
> -		{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x10000,
> +		{ .addr = ADDR_GENERAL_STATE_BASE,
> +		  .size = SIZE_GENERAL_STATE,
>  		  .name = "general state base" },
>  		{ .addr = ADDR_BATCH, .size = SIZE_BATCH,
>  		  .name = "batch" },
> @@ -1566,7 +1569,8 @@ static void xelpg_compute_exec(int fd, const
> unsigned char *kernel,
>  		  .name = "addr input"},
>  		{ .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT,
>  		  .name = "addr output" },
> -		{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x100000,
> +		{ .addr = ADDR_GENERAL_STATE_BASE,
> +		  .size = SIZE_GENERAL_STATE,
>  		  .name = "general state base" },
>  		{ .addr = ADDR_SURFACE_STATE_BASE +
> OFFSET_BINDING_TABLE,
>  		  .size = SIZE_BINDING_TABLE,
> @@ -1656,7 +1660,8 @@ static void xe2lpg_compute_exec(int fd, const
> unsigned char *kernel,
>  		  .name = "addr input"},
>  		{ .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT,
>  		  .name = "addr output" },
> -		{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x100000,
> +		{ .addr = ADDR_GENERAL_STATE_BASE,
> +		  .size = SIZE_GENERAL_STATE,
>  		  .name = "general state base" },
>  		{ .addr = ADDR_SURFACE_STATE_BASE +
> OFFSET_BINDING_TABLE,
>  		  .size = SIZE_BINDING_TABLE,
> @@ -1907,7 +1912,8 @@ static void xe2lpg_compute_preempt_exec(int fd,
> const unsigned char *long_kernel
>  		  .name = "addr input"},
>  		{ .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT,
>  		  .name = "addr output" },
> -		{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x100000,
> +		{ .addr = ADDR_GENERAL_STATE_BASE,
> +		  .size = SIZE_GENERAL_STATE,
>  		  .name = "general state base" },
>  		{ .addr = ADDR_SURFACE_STATE_BASE +
> OFFSET_BINDING_TABLE,
>  		  .size = SIZE_BINDING_TABLE,



More information about the igt-dev mailing list