[Mesa-dev] [PATCH 2/4] i965: Use drm_intel_get_aperture_sizes instead of hard-coded 2GiB

Daniel Vetter daniel at ffwll.ch
Mon Nov 11 13:35:41 PST 2013


On Mon, Nov 11, 2013 at 11:19:07AM -0800, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
> 
> Systems with little physical memory installed will report less than
> 2GiB, and some systems may (hypothetically?) have a larger address space
> for the GPU.  My IVB still reports 1534.
> 
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> Cc: Daniel Vetter <daniel at ffwll.ch>
> Cc: "10.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/drivers/dri/i965/intel_screen.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index e39d654..592150b 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -823,10 +823,14 @@ brw_query_renderer_integer(__DRIscreen *psp, int param, int *value)
>        /* Once a batch uses more than 75% of the maximum mappable size, we
>         * assume that there's some fragmentation, and we start doing extra
>         * flushing, etc.  That's the big cliff apps will care about.
> -       *
> -       * Can only map 2G onto the GPU through the GTT.
>         */
> -      const unsigned gpu_mappable_megabytes = 2 * 1024 * 3 / 4;
> +      size_t aper_size;
> +      size_t mappable_size;
> +
> +      drm_intel_get_aperture_sizes(psp->fd, &mappable_size, &aper_size);

Hm, I haven't seen the (presumably) libdrm patch that adds this yet float
by, but you really want to match the uint64_t libdrm uses internally for
gtt_size here ... ;-)

With that fixed both patches are
Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
I'll look at the wrapper as soon as it hits my inbox.
-Daniel


> +
> +      const unsigned gpu_mappable_megabytes =
> +         (aper_size / (1024 * 1024)) * 3 / 4;
>  
>        const long system_memory_pages = sysconf(_SC_PHYS_PAGES);
>        const long system_page_size = sysconf(_SC_PAGE_SIZE);
> -- 
> 1.8.1.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the mesa-dev mailing list