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

Stéphane Marchesin stephane.marchesin at gmail.com
Mon Jan 30 21:05:30 UTC 2017


On Sun, Jan 29, 2017 at 8:29 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> 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.)

FWIW Chrome doesn't use the GPU if you have GL < 2.0

Stéphane

>
>> 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;
>>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>


More information about the mesa-dev mailing list