aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <[email protected]>2014-08-19 10:02:35 +0100
committerChia-I Wu <[email protected]>2014-08-19 17:45:00 +0800
commitf921131a5cebc233749a86cdd44b409c0cecc4ef (patch)
treeac4bf9fca78a9f87bdab70e86b263680f70038e6
parenta4359bcaa599291ef1588376a419a0bcfbd02396 (diff)
ilo: fold drm_intel_get_aperture_sizes() within probe_winsys()
... and store the value in intel_winsys_info/ilo_dev_info. Suggested-by: Chia-I Wu <[email protected]> Signed-off-by: Emil Velikov <[email protected]> olv: check for errors and report raw values
-rw-r--r--src/gallium/drivers/ilo/ilo_common.h2
-rw-r--r--src/gallium/drivers/ilo/ilo_screen.c5
-rw-r--r--src/gallium/winsys/intel/drm/intel_drm_winsys.c16
-rw-r--r--src/gallium/winsys/intel/intel_winsys.h7
4 files changed, 15 insertions, 15 deletions
diff --git a/src/gallium/drivers/ilo/ilo_common.h b/src/gallium/drivers/ilo/ilo_common.h
index dd31f749bbf..e4f28b38122 100644
--- a/src/gallium/drivers/ilo/ilo_common.h
+++ b/src/gallium/drivers/ilo/ilo_common.h
@@ -68,6 +68,8 @@ enum ilo_debug {
struct ilo_dev_info {
/* these mirror intel_winsys_info */
int devid;
+ size_t aperture_total;
+ size_t aperture_mappable;
int max_batch_size;
bool has_llc;
bool has_address_swizzling;
diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c
index ad59d6dfb94..72d66acf131 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 uint64_t gpu_mappable_megabytes = is->dev.aperture_total * 3 / 4;
uint64_t system_memory;
if (!os_get_total_physical_memory(&system_memory))
@@ -638,6 +637,8 @@ static bool
init_dev(struct ilo_dev_info *dev, const struct intel_winsys_info *info)
{
dev->devid = info->devid;
+ dev->aperture_total = info->aperture_total;
+ dev->aperture_mappable = info->aperture_mappable;
dev->max_batch_size = info->max_batch_size;
dev->has_llc = info->has_llc;
dev->has_address_swizzling = info->has_address_swizzling;
diff --git a/src/gallium/winsys/intel/drm/intel_drm_winsys.c b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
index b394e5fe756..f94a1cb9f33 100644
--- a/src/gallium/winsys/intel/drm/intel_drm_winsys.c
+++ b/src/gallium/winsys/intel/drm/intel_drm_winsys.c
@@ -139,6 +139,12 @@ probe_winsys(struct intel_winsys *winsys)
info->devid = drm_intel_bufmgr_gem_get_devid(winsys->bufmgr);
+ if (drm_intel_get_aperture_sizes(winsys->fd,
+ &info->aperture_mappable, &info->aperture_total)) {
+ debug_error("failed to query aperture sizes");
+ return false;
+ }
+
info->max_batch_size = BATCH_SZ;
get_param(winsys, I915_PARAM_HAS_LLC, &val);
@@ -223,16 +229,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 4bf9a16ee93..679f24817b8 100644
--- a/src/gallium/winsys/intel/intel_winsys.h
+++ b/src/gallium/winsys/intel/intel_winsys.h
@@ -69,6 +69,10 @@ struct intel_bo;
struct intel_winsys_info {
int devid;
+ /* the sizes of the aperture in bytes */
+ size_t aperture_total;
+ size_t aperture_mappable;
+
int max_batch_size;
bool has_llc;
bool has_address_swizzling;
@@ -91,9 +95,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.
*/