# SPDX-License-Identifier: GPL-2.0
config DRM_VMWGFX
	tristate "DRM driver for VMware Virtual GPU"
	depends on DRM && PCI && MMU
	depends on (X86 && HYPERVISOR_GUEST) || ARM64
	select DRM_TTM
	select MAPPING_DIRTY_HELPERS
	# Only needed for the transitional use of drm_crtc_init - can be removed
	# again once vmwgfx sets up the primary plane itself.
	select DRM_KMS_HELPER
	help
	  Choose this option if you would like to run 3D acceleration
	  in a VMware virtual machine.
	  This is a KMS enabled DRM driver for the VMware SVGA2
	  virtual hardware.
	  The compiled module will be called "vmwgfx.ko".

config DRM_VMWGFX_FBCON
	depends on DRM_VMWGFX && DRM_FBDEV_EMULATION
	bool "Enable framebuffer console under vmwgfx by default"
	help
	   Choose this option if you are shipping a new vmwgfx
	   userspace driver that supports using the kernel driver.

config DRM_VMWGFX_MKSSTATS
	bool "Enable mksGuestStats instrumentation of vmwgfx by default"
	depends on DRM_VMWGFX
	depends on X86
	default n
	help
	   Choose this option to instrument the kernel driver for mksGuestStats.

