Following is the output of lscpci command on my Arch linux terminal. I am using Lenovo G 50-70 Laptop.
[code_master5@BitBox ~]$ lspci
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun LE [Radeon HD 8550M / R5 M230]
I wanted to know why my VGA compatible controller and Display Conroller are showing different outputs?
When and why each of them is used?
Is there a way to check which application uses which graphics controller?
EDIT 1: Here is the output for first command in @McGrady's answer:
[code_master5@BitBox node-express]$ grep LoadModule /var/log/Xorg.0.log
[ 17.105] (II) LoadModule: "glx"
[ 17.279] (II) LoadModule: "intel"
[ 17.343] (II) LoadModule: "modesetting"
[ 17.348] (II) LoadModule: "fbdev"
[ 17.349] (II) LoadModule: "vesa"
[ 17.374] (II) LoadModule: "dri3"
[ 17.374] (II) LoadModule: "dri2"
[ 17.374] (II) LoadModule: "present"
[ 17.895] (II) LoadModule: "libinput"
[ 18.144] (II) LoadModule: "synaptics"
But second is not working...
[code_master5@BitBox node-express]$ grep Driver /etc/X11/xorg.conf
grep: /etc/X11/xorg.conf: No such file or directory
It depends on the adapter firmware how it declares itself to PCI bus. The reason for that is probably because in an Optimus dual graphics systems.
You can run this command to find out which graphics controller is currently used by the system:
grep LoadModule /var/log/Xorg.0.log
grep Driver /etc/X11/xorg.conf