Mesa (master): i965/gen7: Enable transform feedback as long as kernel support is present.

Eric Anholt anholt at kemper.freedesktop.org
Fri Jan 6 09:30:19 PST 2012


Module: Mesa
Branch: master
Commit: cd2a24a4c2cf3aab8cbaf831d9712bc3c09cba66
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd2a24a4c2cf3aab8cbaf831d9712bc3c09cba66

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Dec 29 23:37:17 2011 -0800

i965/gen7: Enable transform feedback as long as kernel support is present.

The last major issue (intervening-read) is fixed, so let's turn this
on for real.  The only other known issue is a hardware limitation for
tesselation with flat shading.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>

---

 src/mesa/drivers/dri/intel/intel_extensions.c |    3 ++-
 src/mesa/drivers/dri/intel/intel_screen.c     |    4 ++++
 src/mesa/drivers/dri/intel/intel_screen.h     |    2 ++
 3 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 13aadb3..789fc9e 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -104,7 +104,8 @@ intelInitExtensions(struct gl_context *ctx)
       ctx->Const.GLSLVersion = 120;
    _mesa_override_glsl_version(ctx);
 
-   if (intel->gen == 6 || (intel->gen == 7 && override_version >= 30))
+   if (intel->gen == 6 ||
+       (intel->gen == 7 && intel->intelScreen->kernel_has_gen7_sol_reset))
       ctx->Extensions.EXT_transform_feedback = true;
 
    if (intel->gen >= 5)
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index dd0ce61..2478cb3 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -697,6 +697,10 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
       intelScreen->deviceID = strtod(devid_override, NULL);
    }
 
+   intelScreen->kernel_has_gen7_sol_reset =
+      intel_get_boolean(intelScreen->driScrnPriv,
+			I915_PARAM_HAS_GEN7_SOL_RESET);
+
    if (IS_GEN7(intelScreen->deviceID)) {
       intelScreen->gen = 7;
    } else if (IS_GEN6(intelScreen->deviceID)) {
diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h
index 63c58df..6c6b516 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.h
+++ b/src/mesa/drivers/dri/intel/intel_screen.h
@@ -114,6 +114,8 @@ struct intel_screen
    bool hw_has_hiz;
    enum intel_dri2_has_hiz dri2_has_hiz;
 
+   bool kernel_has_gen7_sol_reset;
+
    bool no_vbo;
    dri_bufmgr *bufmgr;
    struct _mesa_HashTable *named_regions;



More information about the mesa-commit mailing list