On Friday, January 09, 2015 09:31:35 PM Matt Turner wrote: > On Fri, Jan 9, 2015 at 8:46 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > > When doing repclears, we only want to use the SIMD16 program, not the > > SIMD8 one. Kristian added this to the Gen7+ code, but apparently we > > missed it in the Gen6 code. This patch copies that code over. > > > > Approximately doubles the performance in a clear microbenchmark from > > mesa-demos (clearspd -width 500 -height 500 +color) on Sandybridge. > > What was actually happening? We were attempting to use a nonexistent > SIMD8 program as well? Or the SIMD16 repclear program just wasn't > getting used at all?
When compiling, we only compile a SIMD16 program - no SIMD8 at all. Since there's no SIMD8 program, prog_data->prog_offset_16 == 0 (the SIMD16 program is at the beginning). So then...in gen6_wm_state.c:145, we set GEN6_WM_8_DISPATCH_ENABLE...with the right dispatch_grf_start_reg...but with the SIMD16 repdata shader. So...we ran the SIMD16 repclear shader...with a send(16)...in SIMD8 dispatch mode. I thought that was totally invalid, but it seems to be kind of working. Probably just taking twice as many pixel shader dispatches to do the job... which would correspond to the half speed problem. At any rate, this patch fixes the insanity, so I'm strongly in favor of it hitting stable branches...
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev