How does the CPU communicate with the GPU before drivers are loaded?












9















As I understand it, GPUs have their own instruction sets, whose instructions are generated by the graphics drivers. The GPU instructions are then sent to the GPU. So, how does graphics communication work before the drivers are loaded? Are there some base instructions which GPUs must implement as a minimum to ensure that the computer can perform basic display tasks?










share|improve this question



























    9















    As I understand it, GPUs have their own instruction sets, whose instructions are generated by the graphics drivers. The GPU instructions are then sent to the GPU. So, how does graphics communication work before the drivers are loaded? Are there some base instructions which GPUs must implement as a minimum to ensure that the computer can perform basic display tasks?










    share|improve this question

























      9












      9








      9


      1






      As I understand it, GPUs have their own instruction sets, whose instructions are generated by the graphics drivers. The GPU instructions are then sent to the GPU. So, how does graphics communication work before the drivers are loaded? Are there some base instructions which GPUs must implement as a minimum to ensure that the computer can perform basic display tasks?










      share|improve this question














      As I understand it, GPUs have their own instruction sets, whose instructions are generated by the graphics drivers. The GPU instructions are then sent to the GPU. So, how does graphics communication work before the drivers are loaded? Are there some base instructions which GPUs must implement as a minimum to ensure that the computer can perform basic display tasks?







      drivers graphics-card gpu






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 8 hours ago









      VortixDevVortixDev

      510415




      510415






















          1 Answer
          1






          active

          oldest

          votes


















          13














          "Are there some base instructions...?" Yes, exactly. All GPUs are required to implement one of several simple interfaces - they're too primitive to be called "instruction sets" - which platform firmware ("BIOS" or "UEFI") and drivers that are included with the OS know how to talk to. The usual choice of "simple interface" these days is "VGA" ("Video Graphics Array"), the register-level interface originally defined for the video cards of that standard. (Now 30+ years old!)



          For example, if Device Manager on a Windows system IDs the graphics card as the "Microsoft Basic Video Adapter", the OS was unable to find a specific driver for the card and has loaded the VGA-compatible driver instead.



          Well, technically, Windows always loads that driver (so it can display e.g. the boot progress screens), then (fairly late in the boot) identifies and loads the "real" driver for your graphics card.



          The VGA standard only supports a few low-res graphics modes and text modes, and does not involve what I'd call "running programs" or even "instructions" on the GPU. In essence, system firmware or the "base video driver" just puts it into the desired mode and then writes bits to a bitmap; bits in the bitmap directly correspond to pixels on the screen. Any arithmetic that has to be done to draw lines or curves is done in the CPU. Which is a very low-level and slow way to make stuff show up on the screen. But it's enough for displays from, and simple interactions with, the firmware, for OS installations and early boot-progress screens, etc.



          Wikipedia: Video Graphics Array






          share|improve this answer


























          • I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

            – plugwash
            5 hours ago






          • 1





            The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

            – Jamie Hanrahan
            5 hours ago








          • 2





            Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

            – 8bittree
            4 hours ago











          • In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

            – Ramhound
            2 hours ago








          • 2





            It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

            – Jamie Hanrahan
            2 hours ago











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "3"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1395914%2fhow-does-the-cpu-communicate-with-the-gpu-before-drivers-are-loaded%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          13














          "Are there some base instructions...?" Yes, exactly. All GPUs are required to implement one of several simple interfaces - they're too primitive to be called "instruction sets" - which platform firmware ("BIOS" or "UEFI") and drivers that are included with the OS know how to talk to. The usual choice of "simple interface" these days is "VGA" ("Video Graphics Array"), the register-level interface originally defined for the video cards of that standard. (Now 30+ years old!)



          For example, if Device Manager on a Windows system IDs the graphics card as the "Microsoft Basic Video Adapter", the OS was unable to find a specific driver for the card and has loaded the VGA-compatible driver instead.



          Well, technically, Windows always loads that driver (so it can display e.g. the boot progress screens), then (fairly late in the boot) identifies and loads the "real" driver for your graphics card.



          The VGA standard only supports a few low-res graphics modes and text modes, and does not involve what I'd call "running programs" or even "instructions" on the GPU. In essence, system firmware or the "base video driver" just puts it into the desired mode and then writes bits to a bitmap; bits in the bitmap directly correspond to pixels on the screen. Any arithmetic that has to be done to draw lines or curves is done in the CPU. Which is a very low-level and slow way to make stuff show up on the screen. But it's enough for displays from, and simple interactions with, the firmware, for OS installations and early boot-progress screens, etc.



          Wikipedia: Video Graphics Array






          share|improve this answer


























          • I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

            – plugwash
            5 hours ago






          • 1





            The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

            – Jamie Hanrahan
            5 hours ago








          • 2





            Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

            – 8bittree
            4 hours ago











          • In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

            – Ramhound
            2 hours ago








          • 2





            It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

            – Jamie Hanrahan
            2 hours ago
















          13














          "Are there some base instructions...?" Yes, exactly. All GPUs are required to implement one of several simple interfaces - they're too primitive to be called "instruction sets" - which platform firmware ("BIOS" or "UEFI") and drivers that are included with the OS know how to talk to. The usual choice of "simple interface" these days is "VGA" ("Video Graphics Array"), the register-level interface originally defined for the video cards of that standard. (Now 30+ years old!)



          For example, if Device Manager on a Windows system IDs the graphics card as the "Microsoft Basic Video Adapter", the OS was unable to find a specific driver for the card and has loaded the VGA-compatible driver instead.



          Well, technically, Windows always loads that driver (so it can display e.g. the boot progress screens), then (fairly late in the boot) identifies and loads the "real" driver for your graphics card.



          The VGA standard only supports a few low-res graphics modes and text modes, and does not involve what I'd call "running programs" or even "instructions" on the GPU. In essence, system firmware or the "base video driver" just puts it into the desired mode and then writes bits to a bitmap; bits in the bitmap directly correspond to pixels on the screen. Any arithmetic that has to be done to draw lines or curves is done in the CPU. Which is a very low-level and slow way to make stuff show up on the screen. But it's enough for displays from, and simple interactions with, the firmware, for OS installations and early boot-progress screens, etc.



          Wikipedia: Video Graphics Array






          share|improve this answer


























          • I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

            – plugwash
            5 hours ago






          • 1





            The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

            – Jamie Hanrahan
            5 hours ago








          • 2





            Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

            – 8bittree
            4 hours ago











          • In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

            – Ramhound
            2 hours ago








          • 2





            It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

            – Jamie Hanrahan
            2 hours ago














          13












          13








          13







          "Are there some base instructions...?" Yes, exactly. All GPUs are required to implement one of several simple interfaces - they're too primitive to be called "instruction sets" - which platform firmware ("BIOS" or "UEFI") and drivers that are included with the OS know how to talk to. The usual choice of "simple interface" these days is "VGA" ("Video Graphics Array"), the register-level interface originally defined for the video cards of that standard. (Now 30+ years old!)



          For example, if Device Manager on a Windows system IDs the graphics card as the "Microsoft Basic Video Adapter", the OS was unable to find a specific driver for the card and has loaded the VGA-compatible driver instead.



          Well, technically, Windows always loads that driver (so it can display e.g. the boot progress screens), then (fairly late in the boot) identifies and loads the "real" driver for your graphics card.



          The VGA standard only supports a few low-res graphics modes and text modes, and does not involve what I'd call "running programs" or even "instructions" on the GPU. In essence, system firmware or the "base video driver" just puts it into the desired mode and then writes bits to a bitmap; bits in the bitmap directly correspond to pixels on the screen. Any arithmetic that has to be done to draw lines or curves is done in the CPU. Which is a very low-level and slow way to make stuff show up on the screen. But it's enough for displays from, and simple interactions with, the firmware, for OS installations and early boot-progress screens, etc.



          Wikipedia: Video Graphics Array






          share|improve this answer















          "Are there some base instructions...?" Yes, exactly. All GPUs are required to implement one of several simple interfaces - they're too primitive to be called "instruction sets" - which platform firmware ("BIOS" or "UEFI") and drivers that are included with the OS know how to talk to. The usual choice of "simple interface" these days is "VGA" ("Video Graphics Array"), the register-level interface originally defined for the video cards of that standard. (Now 30+ years old!)



          For example, if Device Manager on a Windows system IDs the graphics card as the "Microsoft Basic Video Adapter", the OS was unable to find a specific driver for the card and has loaded the VGA-compatible driver instead.



          Well, technically, Windows always loads that driver (so it can display e.g. the boot progress screens), then (fairly late in the boot) identifies and loads the "real" driver for your graphics card.



          The VGA standard only supports a few low-res graphics modes and text modes, and does not involve what I'd call "running programs" or even "instructions" on the GPU. In essence, system firmware or the "base video driver" just puts it into the desired mode and then writes bits to a bitmap; bits in the bitmap directly correspond to pixels on the screen. Any arithmetic that has to be done to draw lines or curves is done in the CPU. Which is a very low-level and slow way to make stuff show up on the screen. But it's enough for displays from, and simple interactions with, the firmware, for OS installations and early boot-progress screens, etc.



          Wikipedia: Video Graphics Array







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 7 hours ago

























          answered 7 hours ago









          Jamie HanrahanJamie Hanrahan

          18.1k34179




          18.1k34179













          • I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

            – plugwash
            5 hours ago






          • 1





            The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

            – Jamie Hanrahan
            5 hours ago








          • 2





            Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

            – 8bittree
            4 hours ago











          • In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

            – Ramhound
            2 hours ago








          • 2





            It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

            – Jamie Hanrahan
            2 hours ago



















          • I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

            – plugwash
            5 hours ago






          • 1





            The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

            – Jamie Hanrahan
            5 hours ago








          • 2





            Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

            – 8bittree
            4 hours ago











          • In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

            – Ramhound
            2 hours ago








          • 2





            It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

            – Jamie Hanrahan
            2 hours ago

















          I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

          – plugwash
          5 hours ago





          I'm pretty sure that the "basic graphics" mode in modern windows is more than just VGA. VGA was limited to 640x480 in 16 colors (or a much lower resolution in 256 colors)

          – plugwash
          5 hours ago




          1




          1





          The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

          – Jamie Hanrahan
          5 hours ago







          The full situation is complicated. The very first "VGA" cards were indeed that limited. For a long time Windows NT required support for 800x600, but yes, just 16 colors. It looked pretty terrible! See the Wikipedia article I linked.

          – Jamie Hanrahan
          5 hours ago






          2




          2





          Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

          – 8bittree
          4 hours ago





          Windows more likely uses VESA BIOS Extentions (VBE) for its basic adapter. VBE is pretty widely supported and allows for 16-24 bit color and up to 1600x1200 pixels.

          – 8bittree
          4 hours ago













          In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

          – Ramhound
          2 hours ago







          In addition, for the most part, a GPU can function without display device drivers, it's only when you want to use specific hardware functions do you actually need those drivers (i.e. DX 12, Vulcan, CUDA, etc.). The ability to use a GPU, without drivers, is of course done on purpose.

          – Ramhound
          2 hours ago






          2




          2





          It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

          – Jamie Hanrahan
          2 hours ago





          It wouldn't be VESA BIOS extension, because Windows flatly does not invoke BIOS/UEFI code for anything after the very earliest stages of bootstrap are done.

          – Jamie Hanrahan
          2 hours ago


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Super User!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1395914%2fhow-does-the-cpu-communicate-with-the-gpu-before-drivers-are-loaded%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Loup dans la culture

          How to solve the problem of ntp “Unable to contact time server” from KDE?

          ASUS Zenbook UX433/UX333 — Configure Touchpad-embedded numpad on Linux