[igt-dev] [PATCH i-g-t] i915/gem_ctx_shared: handle mmap for discrete

Matthew Auld matthew.auld at intel.com
Thu Mar 31 09:56:03 UTC 2022


On 31/03/2022 10:50, Nirmoy Das wrote:
> On discrete we can only do fixed mmap and also setting
> domain is not allowed.
> 
> Issue: https://gitlab.freedesktop.org/drm/intel/-/issues/5451
> Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
> ---
>   tests/i915/gem_ctx_shared.c | 11 +++++++++--
>   1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
> index cc547b87b..dd3ff3ee3 100644
> --- a/tests/i915/gem_ctx_shared.c
> +++ b/tests/i915/gem_ctx_shared.c
> @@ -290,9 +290,16 @@ static void exec_shared_gtt(int i915, const intel_ctx_cfg_t *cfg,
>   	execbuf.flags |= I915_EXEC_FENCE_IN;
>   
>   	scratch = gem_create(i915, 4096);
> -	s = gem_mmap__wc(i915, scratch, 0, 4096, PROT_WRITE);
> +	if (gem_has_lmem(i915))
> +		s = gem_mmap_offset__fixed(i915, scratch, 0, 4096, PROT_WRITE);
> +	else {
> +		s = gem_mmap_offset__wc(i915, scratch, 0, 4096, PROT_WRITE);
> +		if (!s)
> +			s = gem_mmap__wc(i915, scratch, 0, 4096, PROT_WRITE);

https://patchwork.freedesktop.org/series/100499/

gem_mmap__device_coherent() can be used here I think.

> +
> +		gem_set_domain(i915, scratch, I915_GEM_DOMAIN_WC, I915_GEM_DOMAIN_WC);

This does an object wait some on discrete IIRC. I didn't check if the 
test is relying on that or not though.

Otherwise,
Reviewed-by: Matthew Auld <matthew.auld at intel.com>


> +	}
>   
> -	gem_set_domain(i915, scratch, I915_GEM_DOMAIN_WC, I915_GEM_DOMAIN_WC);
>   	s[0] = bbe;
>   	s[64] = bbe;
>   


More information about the igt-dev mailing list