[Mesa-dev] [PATCH 3/5] nv50/ir: it appears that OP_DISCARD can't take a join modifier

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Oct 21 12:24:29 UTC 2016



On 10/21/2016 11:18 AM, Samuel Pitoiset wrote:
> Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>
> On 10/21/2016 08:30 AM, Ilia Mirkin wrote:
>> nvdisasm does not print a .S even though the bit is set.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>  src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> index cc5d1f4..f6fce44 100644
>> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> @@ -2970,6 +2970,7 @@ FlatteningPass::visit(BasicBlock *bb)
>>           insn = insn->prev;
>>           if (insn && !insn->getPredicate() &&
>>               !insn->asFlow() &&
>> +             insn->op != OP_DISCARD &&
>>               insn->op != OP_TEXBAR &&
>
> We should *really* improve the situation here, because the check is
> going to be insane...

For example, this is the list of instructions which support a JOIN on 
SM35: http://hastebin.com/lamuyocozo

I could try to cook up something better actually. :-)

>
>>               !isTextureOp(insn->op) && // probably just nve4
>>               !isSurfaceOp(insn->op) && // not confirmed
>>
>

-- 
-Samuel


More information about the mesa-dev mailing list