diff --git a/src/amd/compiler/aco_assembler.cpp b/src/amd/compiler/aco_assembler.cpp index e05f6dc730b..37179646d32 100644 --- a/src/amd/compiler/aco_assembler.cpp +++ b/src/amd/compiler/aco_assembler.cpp @@ -1010,7 +1010,10 @@ fix_exports(asm_context& ctx, std::vector& out, Program* program) } } - if (!exported) { + /* GFX10+ FS may not export anything if no discard is used. */ + bool may_skip_export = program->stage.hw == HWStage::FS && program->gfx_level >= GFX10; + + if (!exported && !may_skip_export) { /* Abort in order to avoid a GPU hang. */ bool is_vertex_or_ngg = (program->stage.hw == HWStage::VS || program->stage.hw == HWStage::NGG);