summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2012-02-01 18:06:53 -0200
committerKenneth Graunke <kenneth@whitecape.org>2012-03-20 12:19:38 -0700
commit7fe667a18dc864f4aa90417f16d791a898937c48 (patch)
tree499d1414849932618ba58ef454a4ab94670de788
parent3d036f3f0aa7360c58d76b3f5114e1cf8c32260c (diff)
intel: verify if hardware has LLC support
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. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com> (cherry picked from commit 7def293204977c41ea35198af147f743a31b1889)
-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 ffd953683e7..d4bb8c7d2a9 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 4d4e03085e3..150e55f9797 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 69902658a2c..e6b749aff60 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -723,6 +723,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 6c6b516f230..a6baf1601b5 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;