[PATCH i-g-t v2 5/6] lib/intel_mocs: add defer-to-pat-index

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Wed Mar 6 14:11:09 UTC 2024


On Tue, Mar 05, 2024 at 12:17:53PM +0000, Matthew Auld wrote:
> At least on Xe2 it looks like we can just use MOCS index zero to defer
> the selected caching mode to that of the PAT index. This will be useful
> in an upcoming patch.
> 
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> ---
>  lib/intel_mocs.c | 14 ++++++++++++++
>  lib/intel_mocs.h |  1 +
>  2 files changed, 15 insertions(+)
> 
> diff --git a/lib/intel_mocs.c b/lib/intel_mocs.c
> index 4a9c305dc..bf6ee1958 100644
> --- a/lib/intel_mocs.c
> +++ b/lib/intel_mocs.c
> @@ -9,6 +9,7 @@
>  struct drm_intel_mocs_index {
>  	uint8_t uc_index;
>  	uint8_t wb_index;
> +	uint8_t deferred_index;

I wonder shouldn't it be called 'prefer_pat' or similar.

Anyway, code is correct what I've seen in xe_mocs.c xe2 defs.
Regarless decision to rename the above:

Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
--
Zbigniew

>  };
>  
>  static void get_mocs_index(int fd, struct drm_intel_mocs_index *mocs)
> @@ -25,6 +26,7 @@ static void get_mocs_index(int fd, struct drm_intel_mocs_index *mocs)
>  	if (intel_graphics_ver(devid) >= IP_VER(20, 0)) {
>  		mocs->uc_index = 3;
>  		mocs->wb_index = 4;
> +		mocs->deferred_index = 0;
>  	} else if (IS_METEORLAKE(devid)) {
>  		mocs->uc_index = 5;
>  		mocs->wb_index = 10;
> @@ -60,3 +62,15 @@ uint8_t intel_get_uc_mocs_index(int fd)
>  
>  	return mocs.uc_index;
>  }
> +
> +uint8_t intel_get_deferred_mocs_index(int fd)
> +{
> +	struct drm_intel_mocs_index mocs;
> +	uint16_t dev_id = intel_get_drm_devid(fd);
> +
> +	igt_assert(AT_LEAST_GEN(dev_id, 20));
> +
> +	get_mocs_index(fd, &mocs);
> +
> +	return mocs.deferred_index;
> +}
> diff --git a/lib/intel_mocs.h b/lib/intel_mocs.h
> index b5c79b0e1..bfdc23210 100644
> --- a/lib/intel_mocs.h
> +++ b/lib/intel_mocs.h
> @@ -12,5 +12,6 @@
>  
>  uint8_t intel_get_wb_mocs_index(int fd);
>  uint8_t intel_get_uc_mocs_index(int fd);
> +uint8_t intel_get_deferred_mocs_index(int fd);
>  
>  #endif /* _INTEL_MOCS_H */
> -- 
> 2.43.2
> 


More information about the igt-dev mailing list