[Mesa-dev] [PATCH 10/21] i965: Only add the wpos state reference if we lowered something

Jason Ekstrand jason at jlekstrand.net
Wed Oct 18 15:36:18 UTC 2017


On Wed, Oct 18, 2017 at 6:11 AM, Eero Tamminen <eero.t.tamminen at intel.com>
wrote:

> Hi Jason,
>
> This commit dropped SynMark2 v7 OglShMapPcf performance by 1-2% on GT2
> versions of SKL, KBL and CFL.  It may have improved it by same amount on
> SKL GT4e. Effects on other machines were within normal variation.
>

That's very surprising.  Are you 100% sure it's caused by *this* commit?

--Jason


>
>         - Eero
>
>
> On 30.09.2017 00:25, Jason Ekstrand wrote:
>
>> Otherwise, in the ARB program case _mesa_add_state_reference may grow
>> the parameter array which will cause brw_nir_setup_arb_uniforms to write
>> past the end of the param array because it only looks at the parameter
>> list length but the parma array is allocated based on nir->num_uniforms.
>> The only reason this hasn't caused us problems is because we are padding
>> out the param array for fragment programs unnecessarily.
>> ---
>>   src/mesa/drivers/dri/i965/brw_program.c | 9 +++++----
>>   1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_program.c
>> b/src/mesa/drivers/dri/i965/brw_program.c
>> index ee464fc..7eec6f7 100644
>> --- a/src/mesa/drivers/dri/i965/brw_program.c
>> +++ b/src/mesa/drivers/dri/i965/brw_program.c
>> @@ -88,8 +88,6 @@ brw_create_nir(struct brw_context *brw,
>>      }
>>      nir_validate_shader(nir);
>>   -   (void)progress;
>> -
>>      nir = brw_preprocess_nir(brw->screen->compiler, nir);
>>        if (stage == MESA_SHADER_FRAGMENT) {
>> @@ -98,10 +96,13 @@ brw_create_nir(struct brw_context *brw,
>>            .fs_coord_pixel_center_integer = 1,
>>            .fs_coord_origin_upper_left = 1,
>>         };
>> -      _mesa_add_state_reference(prog->Parameters,
>> -                                (gl_state_index *)
>> wpos_options.state_tokens);
>>   +      progress = false;
>>         NIR_PASS(progress, nir, nir_lower_wpos_ytransform, &wpos_options);
>> +      if (progress) {
>> +         _mesa_add_state_reference(prog->Parameters,
>> +                                   (gl_state_index *)
>> wpos_options.state_tokens);
>> +      }
>>      }
>>        NIR_PASS(progress, nir, nir_lower_system_values);
>>
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171018/5cd41d57/attachment-0001.html>


More information about the mesa-dev mailing list