diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c index a6fecb8772..88274b117a 100644 --- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c +++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c @@ -4384,7 +4384,7 @@ ConSplitterTextOutReset ( } } - This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BACKGROUND_BLACK)); + This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BLACK)); Status = DevNullTextOutSetMode (Private, 0); if (EFI_ERROR (Status)) { diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c index 65fbfc1ef4..06fda61274 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c @@ -150,7 +150,7 @@ TerminalConOutReset ( } } - This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BACKGROUND_BLACK)); + This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BLACK)); Status = This->SetMode (This, 0); @@ -605,6 +605,15 @@ TerminalConOutSetAttribute ( if ((Attribute | 0x7f) != 0x7f) { return EFI_UNSUPPORTED; } + + // + // Skip outputting the command string for the same attribute + // It improves the terminal performance siginificantly + // + if (This->Mode->Attribute == (INT32) Attribute) { + return EFI_SUCCESS; + } + // // convert Attribute value to terminal emulator // understandable foreground color