From: Dave Airlie Date: Mon, 18 May 2020 06:40:55 +0000 (+1000) Subject: r600/sfn: add emit if start cayman support X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b11aa12253ad3f0ed68e98b320e873572e1fba32;p=mesa.git r600/sfn: add emit if start cayman support Reviewed-by: Gert Wollny Part-of: --- 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) {