... and store the value in intel_winsys_info/ilo_dev_info. Suggested-by: Chia-I Wu <olva...@gmail.com> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> ---
Hello Chia-I Hope I've understood you correctly this time :) -Emil src/gallium/drivers/ilo/ilo_common.h | 1 + src/gallium/drivers/ilo/ilo_screen.c | 4 ++-- src/gallium/winsys/intel/drm/intel_drm_winsys.c | 14 ++++---------- src/gallium/winsys/intel/intel_winsys.h | 6 +++--- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/gallium/drivers/ilo/ilo_common.h b/src/gallium/drivers/ilo/ilo_common.h index dd31f74..11bd0c9 100644 --- a/src/gallium/drivers/ilo/ilo_common.h +++ b/src/gallium/drivers/ilo/ilo_common.h @@ -75,6 +75,7 @@ struct ilo_dev_info { bool has_ppgtt; bool has_timestamp; bool has_gen7_sol_reset; + int aperture_size; int gen; int gt; diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c index ad59d6d..8c67e6a 100644 --- a/src/gallium/drivers/ilo/ilo_screen.c +++ b/src/gallium/drivers/ilo/ilo_screen.c @@ -448,8 +448,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param) * assume that there's some fragmentation, and we start doing extra * flushing, etc. That's the big cliff apps will care about. */ - const int gpu_mappable_megabytes = - intel_winsys_get_aperture_size(is->winsys) * 3 / 4; + const int gpu_mappable_megabytes = is->dev.aperture_size * 3 / 4; uint64_t system_memory; if (!os_get_total_physical_memory(&system_memory)) @@ -645,6 +644,7 @@ init_dev(struct ilo_dev_info *dev, const struct intel_winsys_info *info) dev->has_ppgtt = info->has_ppgtt; dev->has_timestamp = info->has_timestamp; dev->has_gen7_sol_reset = info->has_gen7_sol_reset; + dev->aperture_size = info->aperture_size; if (!dev->has_logical_context) { ilo_err("missing hardware logical context support\n"); diff --git a/src/gallium/winsys/intel/drm/intel_drm_winsys.c b/src/gallium/winsys/intel/drm/intel_drm_winsys.c index b394e5f..d7fdeb2 100644 --- a/src/gallium/winsys/intel/drm/intel_drm_winsys.c +++ b/src/gallium/winsys/intel/drm/intel_drm_winsys.c @@ -115,6 +115,7 @@ static bool probe_winsys(struct intel_winsys *winsys) { struct intel_winsys_info *info = &winsys->info; + size_t aper_size, mappable_size; int val; /* @@ -157,6 +158,9 @@ probe_winsys(struct intel_winsys *winsys) get_param(winsys, I915_PARAM_HAS_GEN7_SOL_RESET, &val); info->has_gen7_sol_reset = val; + drm_intel_get_aperture_sizes(winsys->fd, &mappable_size, &aper_size); + info->aperture_size = aper_size >> 20; + return true; } @@ -223,16 +227,6 @@ intel_winsys_get_info(const struct intel_winsys *winsys) return &winsys->info; } -int -intel_winsys_get_aperture_size(const struct intel_winsys *winsys) -{ - size_t aper_size, mappable_size; - - drm_intel_get_aperture_sizes(winsys->fd, &mappable_size, &aper_size); - - return aper_size >> 20; -} - struct intel_context * intel_winsys_create_context(struct intel_winsys *winsys) { diff --git a/src/gallium/winsys/intel/intel_winsys.h b/src/gallium/winsys/intel/intel_winsys.h index 4bf9a16..9058ab2 100644 --- a/src/gallium/winsys/intel/intel_winsys.h +++ b/src/gallium/winsys/intel/intel_winsys.h @@ -80,6 +80,9 @@ struct intel_winsys_info { /* valid flags for intel_winsys_submit_bo() */ bool has_gen7_sol_reset; + + /* the size of the aperture in MiB */ + int aperture_size; }; struct intel_winsys * @@ -91,9 +94,6 @@ intel_winsys_destroy(struct intel_winsys *winsys); const struct intel_winsys_info * intel_winsys_get_info(const struct intel_winsys *winsys); -int -intel_winsys_get_aperture_size(const struct intel_winsys *winsys); - /** * Create a logical context for use with the render ring. */ -- 2.0.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev