summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2012-02-01 18:06:53 -0200
committerEugeni Dodonov <eugeni.dodonov@intel.com>2012-02-01 18:21:26 -0200
commit8ed5be830ad5e3b32ed8b2a55f79913c90c51891 (patch)
tree58aed31e14027bc7d63d3ecb148fcc51b2989e98
parentf09910f399d747e524731953bb11b64c1f4821d0 (diff)
intel: verify if hardware has LLC supportllc
Rely on libdrm HAS_LLC parameter to verify if hardware supports it. In case the libdrm version does not supports this check, fallback to older way of detecting it which assumed that GPUs newer than GEN6 have it. Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c1
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.h1
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c8
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.h2
4 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 81ba6a195e..377bcbc066 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -628,6 +628,7 @@ intelInitContext(struct intel_context *intel,
intel->has_separate_stencil = intel->intelScreen->hw_has_separate_stencil;
intel->must_use_separate_stencil = intel->intelScreen->hw_must_use_separate_stencil;
intel->has_hiz = intel->intelScreen->hw_has_hiz;
+ intel->has_llc = intel->intelScreen->hw_has_llc;
memset(&ctx->TextureFormatSupported,
0, sizeof(ctx->TextureFormatSupported));
diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h
index 4d4e03085e..150e55f979 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -213,6 +213,7 @@ struct intel_context
bool has_separate_stencil;
bool must_use_separate_stencil;
bool has_hiz;
+ bool has_llc;
int urb_size;
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 063bbe770d..60781e5a27 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -735,6 +735,14 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
intelScreen->hw_has_hiz = intelScreen->gen >= 6;
intelScreen->dri2_has_hiz = INTEL_DRI2_HAS_HIZ_UNKNOWN;
+#if defined(I915_PARAM_HAS_LLC)
+ intelScreen->hw_has_llc =
+ intel_get_boolean(intelScreen->driScrnPriv,
+ I915_PARAM_HAS_LLC);
+#else
+ intelScreen->hw_has_llc = intelScreen->gen >= 6;
+#endif
+
intel_override_hiz(intelScreen);
intel_override_separate_stencil(intelScreen);
diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h
index 6c6b516f23..a6baf1601b 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.h
+++ b/src/mesa/drivers/dri/intel/intel_screen.h
@@ -116,6 +116,8 @@ struct intel_screen
bool kernel_has_gen7_sol_reset;
+ bool hw_has_llc;
+
bool no_vbo;
dri_bufmgr *bufmgr;
struct _mesa_HashTable *named_regions;