[Mesa-dev] i965: Turn UBOs as push constants

Ben Widawsky ben at bwidawsk.net
Fri Sep 11 15:42:22 PDT 2015


On Fri, Sep 11, 2015 at 11:33:14AM +0300, Abdiel Janulgue wrote:
> Some updated figures first:
> 
> Ue4 Reflections Subway demo
> x  fs gather constants disabled
> +  fs gather constants enabled
> 
> HSW:
>     N           Min           Max        Median           Avg        Stddev
> x  10       5.09739       6.48963       6.33357      6.197985    0.40742969
> +  10       6.56139       6.86579       6.80952      6.758516    0.10267153
> Difference at 95.0% confidence
>         0.560531 ± 0.279157
>         9.04376% ± 4.50399%
>         (Student's t, pooled s = 0.297103)
> 
> BDW:
>     N           Min           Max        Median           Avg        Stddev
> x  10       3.64474       3.69746       3.68596       3.67842   0.015452422
> +  10       3.77998       3.80967       3.79824      3.795633  0.0079241642
> Difference at 95.0% confidence
>         0.117213 ± 0.0115377
>         3.1865% ± 0.31366%
>         (Student's t, pooled s = 0.0122794)

Does this imply that's the only benchmark which improved, or that it was the
only one which was run?

> 
> This patch series is taken from my initial gather constants series last April.
> Now that the basic i965 resource streamer infrastructure is in place, these are
> the remaining bits to enable the gather constants hardware[*]. I've tried to
> address the comments from the reviews that happened since then.
> 
> Major changes from last posting is we now support GEN8. Also the vec4 backend
> gather constant support is probably no longer relevant because of the switch
> to NIR. But I've included it here so people interested on implementing it on
> the vec4-NIR backend can have a reference point.
> 
> The series has no piglit regressions.
> 
> [PATCH 01/20] i965: Define gather push constants opcodes
> [PATCH 02/20] i965: Enable gather push constants
> [PATCH 03/20] i965: Allocate space on the gather pool for plain
> [PATCH 04/20] i965: Allocate space on the gather pool for UBO entries
> [PATCH 05/20] i965: Store gather table information in the program
> [PATCH 06/20] i965: Assign hw-binding table index for each UBO
> [PATCH 07/20] i965: Assign hw-binding table index for uniform
> [PATCH 08/20] nir: Add glsl_get_array_size() wrapper.
> [PATCH 09/20] nir: Add glsl_get_type_without_array() wrapper
> [PATCH 10/20] i965: Include UBO parameter sizes in push constant
> [PATCH 11/20] i965/fs: Append uniform entries to the gather table
> [PATCH 12/20] i965/fs/nir: Append nir_intrinsic_load_ubo entries to
> [PATCH 13/20] i965/fs: Pack UBO registers right after uniform
> [PATCH 14/20] i965/vec4: Append uniform entries to the gather table
> [PATCH 15/20] i965/vec4: Append ir_binop_ubo_load entries to the
> [PATCH 16/20] i965/vec4: Pack UBO registers right after uniform
> [PATCH 17/20] i965: Upload UBO surfaces before emitting constant
> [PATCH 18/20] i965: Program the push constants state using the gather
> [PATCH 19/20] i965: Disable gather push constants for null constants
> [PATCH 20/20] i965: Enable push constants for UBOs
> 
> -Abdiel
> 
> --
> [*] http://lists.freedesktop.org/archives/mesa-dev/2015-April/082991.html
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list