[Mesa-dev] [PATCH] i965: Avoid dependency hints on math opcodes
Ian Romanick
idr at freedesktop.org
Wed Feb 12 21:25:24 PST 2014
On 02/12/2014 06:59 PM, Matt Turner wrote:
> On Wed, Feb 12, 2014 at 4: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.
>>
>> 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.
>> */
>> --
>> 1.8.3.2
>
> I can't find any mention of this in the PRMs. Do we have a bug report
> or something that this fixes?
We have some code involving a lot of inversesqrt calls that I haven't
quite turned into a shader_runner test yet... I also wonder if this
could be related to the Dota2 too-much-specular bug, but I haven't tried
that out yet either.
> _______________________________________________
> 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