[PATCH v5 2/7] lib/i915/intel_fbc: Add fbc supported check based on wa

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon Jun 30 16:38:56 UTC 2025


Hi Mohammed,
On 2025-06-30 at 19:11:40 +0530, Mohammed Thasleem wrote:
> This will check the fbc supported based on given workarunds.
> 
> v2: Add intel_wa header file.
> v3: Add xe check. (Kamil)
> v4: Updated function name with intel_is_fbc_disabled_by_wa. (Kamil)
> v5: Updated function discription and return logic. (Kamil)
> 
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> Reviewed-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
>  lib/i915/intel_fbc.c | 27 +++++++++++++++++++++++++++
>  lib/i915/intel_fbc.h |  1 +
>  2 files changed, 28 insertions(+)
> 
> diff --git a/lib/i915/intel_fbc.c b/lib/i915/intel_fbc.c
> index a8ded0a59..a1a6de90e 100644
> --- a/lib/i915/intel_fbc.c
> +++ b/lib/i915/intel_fbc.c
> @@ -9,6 +9,7 @@
>  #include "igt_psr.h"
>  
>  #include "intel_fbc.h"
> +#include "intel_wa.h"
>  
>  #define FBC_STATUS_BUF_LEN 128
>  
> @@ -200,3 +201,29 @@ bool intel_fbc_supported_for_psr_mode(int disp_ver, enum psr_mode mode)
>  
>  	return fbc_supported;
>  }
> +
> +/**
> + * intel_is_fbc_disabled_by_wa
> + *
> + * @fd: fd of the device
> + *
> + * This function check if WA is present on some GT, which in turn make
> + * FBC not possible
> + *
> + * Returns:
> + * true: if WA is applied and FBC id disabled
> + * false: otherwise
> + */
> +bool intel_is_fbc_disabled_by_wa(int fd)
> +{
> +	int wa;
> +	const char *wa_fbc_disabled = "16023588340";
> +
> +	if (!is_xe_device(fd))
> +		return false;
> +
> +	wa = igt_has_intel_wa(fd, wa_fbc_disabled);
> +	igt_assert_f(wa >= 0, "WA path not found on GTs\n");
> +
> +	return wa == 1;
> +}

LGTM
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>

> diff --git a/lib/i915/intel_fbc.h b/lib/i915/intel_fbc.h
> index fcafe6049..fe9edcbc3 100644
> --- a/lib/i915/intel_fbc.h
> +++ b/lib/i915/intel_fbc.h
> @@ -19,5 +19,6 @@ bool intel_fbc_is_enabled(int device, enum pipe pipe, int log_level);
>  void intel_fbc_max_plane_size(int fd, uint32_t *width, uint32_t *height);
>  bool intel_fbc_plane_size_supported(int device, uint32_t width, uint32_t height);
>  bool intel_fbc_supported_for_psr_mode(int disp_ver, enum psr_mode mode);
> +bool intel_is_fbc_disabled_by_wa(int fd);
>  
>  #endif
> -- 
> 2.25.1
> 


More information about the igt-dev mailing list