[Mesa-dev] [PATCH] Revert "i915: Always enable GL 2.0 support."

Kenneth Graunke kenneth at whitecape.org
Mon Jan 30 04:29:43 UTC 2017


On Sunday, January 29, 2017 6:20:10 PM PST Matt Turner wrote:
> 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.

Your commit message should mention why dropping from OpenGL 2.1 to 1.4
is a good thing.

(IIRC it's because Chrome (and other apps?) use really slow paths with
2.1, and so the general usability of the system is likely to be worse.)

> 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

Why are these interesting?

> Cc: "17.0" <mesa-stable at 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;

I get dropping GLSL support, but isn't GL_ARB_fragment_shader sort of
reasonable for this hardware?

> +
> +      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;
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170129/649b58af/attachment.sig>


More information about the mesa-dev mailing list