This partially reverts commit 97217a40f97cdeae0304798b607f704deb0c3558.
It leaves ES 2.0 support in place per Ian's suggestion, because ES 2.0
is designed to work on hardware like i915.

The piglit results look like:

       name: before-revert-i915 after-revert-i915
       ----  ------------------ -----------------
       pass:               7171              2169
       fail:                933               201
      crash:                  8                 7
       skip:              32997             38676
    timeout:                  0                 0
       warn:                  3                 1
 incomplete:                  0                 0
 dmesg-warn:                  0                 0
 dmesg-fail:                  0                 0
    changes:                  0              6040
      fixes:                  0               292
regressions:                  0                 2
      total:              41112             41054

Cc: "17.0" <mesa-sta...@lists.freedesktop.org>
---
 src/mesa/drivers/dri/i915/intel_extensions.c |  8 ++++++--
 src/mesa/drivers/dri/i915/intel_screen.c     | 21 +++++++++++++++++++--
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/intel_extensions.c 
b/src/mesa/drivers/dri/i915/intel_extensions.c
index ab7820f..4f2c6fa 100644
--- a/src/mesa/drivers/dri/i915/intel_extensions.c
+++ b/src/mesa/drivers/dri/i915/intel_extensions.c
@@ -92,8 +92,12 @@ intelInitExtensions(struct gl_context *ctx)
       ctx->Extensions.ATI_separate_stencil = true;
       ctx->Extensions.ATI_texture_env_combine3 = true;
       ctx->Extensions.NV_texture_env_combine4 = true;
-      ctx->Extensions.ARB_fragment_shader = true;
-      ctx->Extensions.ARB_occlusion_query = true;
+
+      if (driQueryOptionb(&intel->optionCache, "fragment_shader"))
+         ctx->Extensions.ARB_fragment_shader = true;
+
+      if (driQueryOptionb(&intel->optionCache, "stub_occlusion_query"))
+         ctx->Extensions.ARB_occlusion_query = true;
    }
 
    if (intel->ctx.Mesa_DXTn
diff --git a/src/mesa/drivers/dri/i915/intel_screen.c 
b/src/mesa/drivers/dri/i915/intel_screen.c
index 5c7c06a..fe86179 100644
--- a/src/mesa/drivers/dri/i915/intel_screen.c
+++ b/src/mesa/drivers/dri/i915/intel_screen.c
@@ -62,6 +62,10 @@ DRI_CONF_BEGIN
         DRI_CONF_DESC(en, "Enable early Z in classic mode (unstable, 
945-only).")
       DRI_CONF_OPT_END
 
+      DRI_CONF_OPT_BEGIN_B(fragment_shader, "true")
+        DRI_CONF_DESC(en, "Enable limited ARB_fragment_shader support on 
915/945.")
+      DRI_CONF_OPT_END
+
    DRI_CONF_SECTION_END
    DRI_CONF_SECTION_QUALITY
       DRI_CONF_FORCE_S3TC_ENABLE("false")
@@ -75,6 +79,10 @@ DRI_CONF_BEGIN
       DRI_CONF_DISABLE_GLSL_LINE_CONTINUATIONS("false")
       DRI_CONF_DISABLE_BLEND_FUNC_EXTENDED("false")
 
+      DRI_CONF_OPT_BEGIN_B(stub_occlusion_query, "false")
+        DRI_CONF_DESC(en, "Enable stub ARB_occlusion_query support on 
915/945.")
+      DRI_CONF_OPT_END
+
       DRI_CONF_OPT_BEGIN_B(shader_precompile, "true")
         DRI_CONF_DESC(en, "Perform code generation at shader link time.")
       DRI_CONF_OPT_END
@@ -1125,12 +1133,21 @@ set_max_gl_versions(struct intel_screen *screen)
    __DRIscreen *psp = screen->driScrnPriv;
 
    switch (screen->gen) {
-   case 3:
+   case 3: {
+      bool has_fragment_shader = driQueryOptionb(&screen->optionCache, 
"fragment_shader");
+      bool has_occlusion_query = driQueryOptionb(&screen->optionCache, 
"stub_occlusion_query");
+
       psp->max_gl_core_version = 0;
       psp->max_gl_es1_version = 11;
-      psp->max_gl_compat_version = 21;
       psp->max_gl_es2_version = 20;
+
+      if (has_fragment_shader && has_occlusion_query) {
+         psp->max_gl_compat_version = 21;
+      } else {
+         psp->max_gl_compat_version = 14;
+      }
       break;
+   }
    case 2:
       psp->max_gl_core_version = 0;
       psp->max_gl_compat_version = 13;
-- 
2.7.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to