From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
Cc: <intel-xe@lists.freedesktop.org>, Matthew Auld <matthew.auld@intel.com>
Subject: Re: [PATCH v2 1/2] drm/xe: Separate 64K physical allocation for display
Date: Tue, 9 Jul 2024 15:05:55 -0400 [thread overview]
Message-ID: <Zo2KE14JirJ7T3Eh@intel.com> (raw)
In-Reply-To: <20240709122514.538137-2-zbigniew.kempczynski@intel.com>
On Tue, Jul 09, 2024 at 02:25:13PM +0200, Zbigniew Kempczyński wrote:
> In case Tile4 + compression Battlemage requires physical 64K pages
> for allocating display framebuffer. Add flag which distincts
> buffer created for scanout from other buffers which don't need this
> restriction.
I believe these 2 patches could be squashed together because this
phrase here is the explanation for the next patch as well and
that one just tell what it is doing without telling why.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Cc: Matthew Auld <matthew.auld@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> v2: Distinct 64K for Battlemage only (Matt)
> ---
> drivers/gpu/drm/xe/xe_bo.c | 9 +++++++--
> drivers/gpu/drm/xe/xe_device_types.h | 1 +
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 31192d983d9e..fbcf77698bf1 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -1984,9 +1984,13 @@ int xe_gem_create_ioctl(struct drm_device *dev, void *data,
> if (args->flags & DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING)
> bo_flags |= XE_BO_FLAG_DEFER_BACKING;
>
> - if (args->flags & DRM_XE_GEM_CREATE_FLAG_SCANOUT)
> + if (args->flags & DRM_XE_GEM_CREATE_FLAG_SCANOUT) {
> bo_flags |= XE_BO_FLAG_SCANOUT;
>
> + if (xe->info.vram_flags & XE_VRAM_FLAGS_DISPLAY_NEED64K)
> + bo_flags |= XE_BO_NEEDS_64K;
> + }
> +
> bo_flags |= args->placement << (ffs(XE_BO_FLAG_SYSTEM) - 1);
>
> if (args->flags & DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM) {
> @@ -2315,8 +2319,9 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
> uint32_t handle;
> int cpp = DIV_ROUND_UP(args->bpp, 8);
> int err;
> + u8 flags_64k = XE_VRAM_FLAGS_NEED64K | XE_VRAM_FLAGS_DISPLAY_NEED64K;
> u32 page_size = max_t(u32, PAGE_SIZE,
> - xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K);
> + xe->info.vram_flags & flags_64k ? SZ_64K : SZ_4K);
>
> args->pitch = ALIGN(args->width * cpp, 64);
> args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index f0cf9020e463..386faaffac53 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -46,6 +46,7 @@ struct xe_pat_ops;
> #define HAS_HECI_GSCFI(xe) ((xe)->info.has_heci_gscfi)
>
> #define XE_VRAM_FLAGS_NEED64K BIT(0)
> +#define XE_VRAM_FLAGS_DISPLAY_NEED64K BIT(1)
I was wondering if we could simply reuse the existing flag, but probably looking
at the next patch I believe that it could be intrusive and cause other issues.
So, let's go with this.
>
> #define XE_GT0 0
> #define XE_GT1 1
> --
> 2.34.1
>
next prev parent reply other threads:[~2024-07-09 19:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-09 12:25 [PATCH v2 0/2] Restrict BMG to use 64K pages for scanout buffers Zbigniew Kempczyński
2024-07-09 12:25 ` [PATCH v2 1/2] drm/xe: Separate 64K physical allocation for display Zbigniew Kempczyński
2024-07-09 19:05 ` Rodrigo Vivi [this message]
2024-07-10 5:00 ` Zbigniew Kempczyński
2024-07-09 12:25 ` [PATCH v2 2/2] drm/xe: Use 64K pages for scanout buffers for Battlemage Zbigniew Kempczyński
2024-07-09 12:59 ` ✓ CI.Patch_applied: success for Restrict BMG to use 64K pages for scanout buffers Patchwork
2024-07-09 12:59 ` ✓ CI.checkpatch: " Patchwork
2024-07-09 13:00 ` ✓ CI.KUnit: " Patchwork
2024-07-09 13:12 ` ✓ CI.Build: " Patchwork
2024-07-09 13:14 ` ✓ CI.Hooks: " Patchwork
2024-07-09 13:16 ` ✓ CI.checksparse: " Patchwork
2024-07-09 13:42 ` ✓ CI.BAT: " Patchwork
2024-07-09 16:07 ` ✓ CI.FULL: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-07-09 12:22 [PATCH v2 0/2] " Zbigniew Kempczyński
2024-07-09 12:22 ` [PATCH v2 1/2] drm/xe: Separate 64K physical allocation for display Zbigniew Kempczyński
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zo2KE14JirJ7T3Eh@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.auld@intel.com \
--cc=zbigniew.kempczynski@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.