[Mesa-dev] [PATCH] ilo: fold drm_intel_get_aperture_sizes() within probe_winsys()

Emil Velikov emil.l.velikov at gmail.com
Tue Aug 19 02:02:35 PDT 2014


... and store the value in intel_winsys_info/ilo_dev_info.

Suggested-by: Chia-I Wu <olvaffe at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at 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



More information about the mesa-dev mailing list