diff options
-rw-r--r-- | src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp index 6bb6486eb92..6b5da430622 100644 --- a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp @@ -485,11 +485,11 @@ bool AssemblyFromShaderLegacyImpl::emit_export(const ExportInstruction & exi) bool AssemblyFromShaderLegacyImpl::emit_if_start(const IfInstruction & if_instr) { - assert(m_bc->chip_class == EVERGREEN); - bool needs_workaround = false; int elems = m_callstack.push(FC_PUSH_VPM); + if (m_bc->chip_class == CAYMAN && m_bc->stack.loop > 1) + needs_workaround = true; if (m_bc->family != CHIP_HEMLOCK && m_bc->family != CHIP_CYPRESS && m_bc->family != CHIP_JUNIPER) { |