<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 11, 2016 at 9:28 AM, Pohjolainen, Topi <span dir="ltr"><<a href="mailto:topi.pohjolainen@intel.com" target="_blank">topi.pohjolainen@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, May 10, 2016 at 04:16:20PM -0700, Jason Ekstrand wrote:<br>
> When Paul originally wrote blorp he hand-rolled a shader builder that<br>
> builds i965 shaders directly.  This has caused headaches because every time<br>
> we make a change to the back-end compiler, we have to update blorp.  NIR on<br>
> the other hand tends to be more stable at this point since it has many<br>
> different users all across mesa.<br>
><br>
> Using NIR also means that we get decent optimizations, register allocation,<br>
> and scheduling.  The original blorp codegen code tried fairly hard to emit<br>
> reasonably efficient code in that it didn't do more work than needed but it<br>
> was fairly naieve when it came to register allocation and scheduling.<br>
> Using the full compiler stack also means that we get new features for free<br>
> without having to re-implement them in blorp.  On Sky Lake, for instance,<br>
> we are now generating shaders with sampler-EOT.<br>
><br>
> In spite of all this, this series shows no measurable performance<br>
> difference on Haswell with every benchmark in sixonyx run 25 times.<br>
><br>
> Jason Ekstrand (28):<br>
>   nir: Add an info bit for uses_sample_qualifier<br>
>   i965/fs: Rework the persample shading key/prog_data bits<br>
>   i965/state: Clean up WM/PS state to pull more things out of prog_data<br>
>   i965/fs: Clean up the logic in compile_fs a bit<br>
>   i965/fs: Stop setting dispatch_grf_start_reg from the visitor<br>
>   i965/gen7_wm: Move where we set the fast clear op<br>
>   i965/fs: Organize prog_data by ksp number rather than SIMD width<br>
>   i965/blorp: Simplify the sample layout calculation<br>
>   i965/fs: Use MRF0 for the repclear message<br>
>   nir/builder: Generate the alu helpers directly in python<br>
>   nir/builder: Add a helper for grabbing multiple channels from an ssa<br>
>     def<br>
>   nir: Add texture opcodes and source types for multisample compression<br>
>   i965/fs: Implement the new NIR MCS texturing<br>
>   i965/blorp: Add a prog_data_init helper<br>
>   i965/blorp: Add a param array to prog_data<br>
>   blorp: Add initial state setup support for SIMD8 dispatch<br>
>   i965/blorp: Add a helper for compiling NIR shaders<br>
>   i965/blorp: Create the program key in get_clear_kernel<br>
>   i965/blorp: Use NIR for clear shaders<br>
>   i965/blorp: Refactor getting the blit kernel into a helper<br>
<br>
</div></div>I had a few questions but 14-20 are:<br>
<br>
Reviewed-by: Topi Pohjolainen <<a href="mailto:topi.pohjolainen@intel.com">topi.pohjolainen@intel.com</a>><br></blockquote><div><br></div><div>Thanks <br></div></div><br></div></div>