[Mesa-dev] [PATCH 18.0] i965: Disable ARB_get_program_binary for compat profiles

Timothy Arceri tarceri at itsqueeze.com
Wed Feb 21 03:53:04 UTC 2018


On 21/02/18 13:21, Ilia Mirkin wrote:
> Is this worth doing for st/mesa as well? Some quick grepping suggests
> it's enabled on the 18.0 branch there too, but it's behind a
> conditional which perhaps is never set.

Yes the st will need a change too as it will be enable for any driver 
that enables the disk cache (which is most drivers). The qt bug has been 
observed on radeonsi.

> 
> On Tue, Feb 20, 2018 at 9:12 PM, Jordan Justen
> <jordan.l.justen at intel.com> wrote:
>> The QT framework has a bug in their shader program cache, which is
>> built on GL_ARB_get_program_binary.
>>
>> In an effort to allow them to fix the bug we don't enable more than 1
>> binary format for compatibility profiles.
>>
>> This is only being done on the 18.0 release branch.
>>
>> Ref: https://bugreports.qt.io/browse/QTBUG-66420
>> Ref: https://bugs.freedesktop.org/show_bug.cgi?id=105065
>> Cc: "18.0" <mesa-stable at lists.freedesktop.org>
>> Cc: Mark Janes <mark.a.janes at intel.com>
>> Cc: Kenneth Graunke <kenneth at whitecape.org>
>> Cc: Scott D Phillips <scott.d.phillips at intel.com>
>> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
>> ---
>>   docs/relnotes/17.4.0.html               | 2 +-
>>   src/mesa/drivers/dri/i965/brw_context.c | 9 ++++++++-
>>   2 files changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/docs/relnotes/17.4.0.html b/docs/relnotes/17.4.0.html
>> index 412c0fc455e..fecdfe77969 100644
>> --- a/docs/relnotes/17.4.0.html
>> +++ b/docs/relnotes/17.4.0.html
>> @@ -53,7 +53,7 @@ Note: some of the new features are only available with certain drivers.
>>   <li>GL_ARB_enhanced_layouts on r600/evergreen+</li>
>>   <li>GL_ARB_bindless_texture on nvc0/kepler</li>
>>   <li>OpenGL 4.3 on r600/evergreen with hw fp64 support</li>
>> -<li>Support 1 binary format for GL_ARB_get_program_binary on i965</li>
>> +<li>Support 1 binary format for GL_ARB_get_program_binary on i965 (except in GL compatibility profiles)</li>
>>   </ul>
>>
>>   <h2>Bug fixes</h2>
>> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
>> index e9358b7bc9c..58527d77263 100644
>> --- a/src/mesa/drivers/dri/i965/brw_context.c
>> +++ b/src/mesa/drivers/dri/i965/brw_context.c
>> @@ -704,7 +704,14 @@ brw_initialize_context_constants(struct brw_context *brw)
>>         ctx->Const.AllowMappedBuffersDuringExecution = true;
>>
>>      /* GL_ARB_get_program_binary */
>> -   ctx->Const.NumProgramBinaryFormats = 1;
>> +   /* The QT framework has a bug in their shader program cache, which is built
>> +    * on GL_ARB_get_program_binary. In an effort to allow them to fix the bug
>> +    * we don't enable more than 1 binary format for compatibility profiles.
>> +    * This is only being done on the 18.0 release branch.
>> +    */
>> +   if (ctx->API != API_OPENGL_COMPAT) {
>> +      ctx->Const.NumProgramBinaryFormats = 1;
>> +   }
>>   }
>>
>>   static void
>> --
>> 2.16.1
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> 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