[Mesa-dev] [PATCH] i965: Avoid dependency hints on math opcodes

Ian Romanick idr at freedesktop.org
Thu Feb 20 15:31:36 PST 2014


On 02/12/2014 04:24 PM, mike at lunarg.com wrote:
> From: Mike Stroyan <mike at LunarG.com>
> 
>   Putting NoDDClr and NoDDChk dependency control on instruction
> sequences that include math opcodes can cause corruption of channels.
> Treat math opcodes like send opcodes and suppress dependency hinting.

Since you've analyised the failure in the real application, can you
produce a minimal shader_runner test case that exhibits the same
problem?  Eric mentioned to me that he'd like to play with it to better
understand what's going on...

> Signed-off-by: Mike Stroyan <mike at LunarG.com>
> Tested-by: Tony Bertapelli <anthony.p.bertapelli at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_vec4.cpp | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> index dd23ed4..1c42ca8 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> @@ -717,6 +717,14 @@ vec4_visitor::opt_set_dependency_control()
>              continue;
>           }
>  
> +         /* Dependency control does not work well over math instructions.
> +          */
> +         if (inst->is_math()) {
> +            memset(last_grf_write, 0, sizeof(last_grf_write));
> +            memset(last_mrf_write, 0, sizeof(last_mrf_write));
> +            continue;
> +         }
> +
>           /* Now, see if we can do dependency control for this instruction
>            * against a previous one writing to its destination.
>            */
> 



More information about the mesa-dev mailing list