Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Jason Ekstrand
On Tue, Oct 10, 2017 at 1:10 PM, Jason Ekstrand wrote: > On Tue, Oct 10, 2017 at 9:16 AM, Connor Abbott > wrote: > >> I'm a little nervous about this, because really, the only solution to >> this problem is to ignore all non-WE_all definitions of all variables >> in liveness analysis. For exampl

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Jason Ekstrand
On Tue, Oct 10, 2017 at 9:16 AM, Connor Abbott wrote: > I'm a little nervous about this, because really, the only solution to > this problem is to ignore all non-WE_all definitions of all variables > in liveness analysis. For example, in something like: > > vec4 color2 = ... > if (...) { >col

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Connor Abbott
No, this is a different situation. On i965, the hardware keeps track of that stuff automatically. The problem is that the header, which is shared across all the threads in a wavefront and specifies stuff like LOD, LOD bias, texture array offset, etc., uses the same register space as normal, vector

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Ilia Mirkin
I hope I'm not butting in too much with irrelevant info, but I think we had a similar issue in nouveau. On Kepler, texture instructions take an arbitrary amount of time to complete, and only write into destination registers on completion, while other instructions are executing after that tex dispat

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Connor Abbott
I'm a little nervous about this, because really, the only solution to this problem is to ignore all non-WE_all definitions of all variables in liveness analysis. For example, in something like: vec4 color2 = ... if (...) { color2 = texture(); } texture() can also overwrite inactive channels of

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-10 Thread Chema Casanova
With this patch applied I can not reproduce anymore the regression related to cross-channel variable interference in non-uniformly executed loops exposed at dEQP-VK.glsl.return.return_in_dynamic_loop_dynamic_vertex when applying Curro's liveness patch Tested-by: Jose Maria Casanova Crespo On 05/

[Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-05 Thread Jason Ekstrand
No Shader-db changes. Cc: mesa-sta...@lists.freedesktop.org --- src/intel/compiler/brw_fs_live_variables.cpp | 55 1 file changed, 55 insertions(+) diff --git a/src/intel/compiler/brw_fs_live_variables.cpp b/src/intel/compiler/brw_fs_live_variables.cpp index c449672

Re: [Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-04 Thread Jason Ekstrand
Bah! This one's bogus too. I think it messes up register coalesce but I'm not 100% sure... On Wed, Oct 4, 2017 at 8:22 PM, Jason Ekstrand wrote: > Cc: mesa-sta...@lists.freedesktop.org > --- > src/intel/compiler/brw_fs_live_variables.cpp | 55 > > 1 file changed,

[Mesa-dev] [PATCH] i965/fs: Extend the live ranges of VGRFs which leave loops

2017-10-04 Thread Jason Ekstrand
Cc: mesa-sta...@lists.freedesktop.org --- src/intel/compiler/brw_fs_live_variables.cpp | 55 1 file changed, 55 insertions(+) diff --git a/src/intel/compiler/brw_fs_live_variables.cpp b/src/intel/compiler/brw_fs_live_variables.cpp index c449672..23ec280 100644 --- a/