HiDPI means Hugh Dots Per Inch, HiDPI is a display technology in which screens supports the high resolution but relatively in small format. The apple has also marketed the same HiDPI display technology with its own given name called Apple’s Retina Display. The HiDPI display technology mostly found in high-end laptops and monitors. This means to optimize the modern Linux Desktop environment you have to tweak their User interface to enhance the looks and clarity of OS interface on bigger and denser HiDPI displays.
Most popular operating systems MacOS and Windows have already optimized their operating system to work pretty much good on HiDPI displays out of the box without any custom settings. But what about the open-source Linux desktop environment systems which are available for free to use and pretty much popular nowadays.
There are well known Linux desktops for HiDPI supported Laptops and Desktops displays. Here is the list of best Linux desktop environments with high DPI support for retina displays. Also, the Linux Desktop environments we are going to mention in this article are one of the best open source Linux Desktop environment projects available to use in laptops and desktop.
Driving Monitor provide driver risk assessments, DVLA driving licence checks and grey fleet checks for employees who drive for work. Cover your duty-of-care with Driving Monitor's innovative web platform. Having an issue with your display, audio, or touchpad? Whether you're working on an Alienware, Inspiron, Latitude, or other Dell product, driver updates keep your device running at top performance. Step 1: Identify your product above. Step 2: Run the detect drivers scan to see available updates. Step 3: Choose which driver updates to install.
From all-in-ones, high performance, and gaming PCs to those for business or home use, there’s a desktop PC for just about any environment. The sleek form factor of the HP ENVY or HP Pavilion all-in-ones makes an attractive statement in any workspace, while the high-performance HP OMEN gaming systems take gaming and more to an entirely new level. Expand the Display adapters list. Right-click on your Display adapter and select the ‘Uninstall device’. Uninstalling Video Adapter Driver; Once the driver is uninstalled, restart your system so that the driver is installed again automatically. Check if it fixes your issue. Solution 3: Manually Install Video Adapter Driver. A display is managed by a server program, known as an X server. The server serves displaying capabilities to other programs that connect to it. The remote server knows where it has to redirect the X network traffic via the definition of the DISPLAY environment variable which generally points to an X Display server located on your local computer.
Also See:
Linux Desktop Environment HiDPI displays
GNOME Shell Linux Desktop Environment
Right now the latest version of the Gnome Linux desktop environment is Gnome 3. The Gnome project developers already supported the HiDP displays to those Linux running on the Gnome shell desktop environment.
By default, like most of the Linux desktop environments, the HiDPI mode is turned off and you need to turn it on manually. To turn on the GNOME HiDPI support for large resolutions displays just use the GNOME Tweak Tool. Open GNOME Tweak tool that comes pre-installed in the GNOME shell. At the Gnome tweak tool click on the ‘Windows” tool section and change some default values. Change the display value from 1 to 2 that means 200% increase or 3 that give 300% scaling.
Website Link to Download: https://www.gnome.org/gnome-3/
Deepin Desktop Environment
The Deepin Desktop Environment comes with blur and transparent control centres like MacOS and also feature gestures to provide refreshing Linux desktop experience. The DDE is a default desktop environment for the official Linux Deepin distribution which is open source and developed by a Chinese company.
Website: https://www.deepin.org/en/dde/
See: How to install Deepin desktop environment on Ubuntu Linux
Pantheon Linux Desktop Environment
Pantheon is the one of the most beautiful Linux desktop environment we have ever seen. It is default Linux desktop environment created for elementary OS, a Linux distribution. It was created from scratch using Vala and the GTK3 toolkit.
The Pantheon provides good usability and appearance with some similar look and feels like MacOS and GNOME Shell. The best part of this desktop environment is it gives support to HiDPI displays out of the box means no need to mess around settings and changing values. Just install and you are going to get the HiDPI support by default. No scaling or No stretching.
Website Link to Download:https://elementary.io/
Nomad Desktop environment
Nitrux is another Ubuntu-based Linux distribution which uses a Nomad Desktop environment based on KDE Plasma 5 and Qt.
Cinnamon Linux Desktop Environment
The Cinnamon is wonderful Linux desktop environment that supports HiDPI displays, since its version 2.2. Cinnamon desktop environment based on the GNOME 3 and originally developed for Linux Mint. The user interface of the Cinnamon is some feels of windows XP or 7 interfaces.
Same like the Gnome the Cinnamon user need to scale the user interface to support the HiDPI displays. For scaling, the resolution in Cinnamon open the Preference setting and select General and change the settings. In the Cinnamon, the windows borders are correctly sized to support the HiDPi display which is not in the case of Xfce or Mate.
Website Link to Download:http://developer.linuxmint.com/
Ubuntu’s Unity Linux desktop environment
Ubuntu’s Unity Linux desktop environment is one of the user-friendly environment that support the HiDPI displays too. Unity looks very sharp and great on high-resolution HiDPI displays. However, the Unity desktop is very popular but still by default is not going to scale the desktop to support the HiDPI displays and you need to stretch it manually.
To enable the HiDPI support in Unity desktops go to Unity dash and search for displays and select the display option. The display option will bring you to the monitor settings from where you can locate the option called “Scale for Menu and Title bars“. Select this option and change the value from 1 to 2 or 3 to scale the display UI to support the HiDPI monitors.
Website Link to Download: https://unity.ubuntu.com/
Note: The Ubuntu Unity is dead now and not maintained…
KDE Plasma Linux Desktop Environment
KDE Plasma is one of the clean and attractive Linux desktop environment available online. It has good reputation due to its vast range of customization capabilities which allow advanced users to modify it according to with their mood and situation. You can remove anything feels you irritating from the KDE desktop and setting can be changed accordingly.
It also supports HiDPI displays but not default and you need to scale it too. To enable the HiDPI displays to support in KDE plasma just go to Settings -> Displays and Monitors ->Display Configuration and then select the Scale Display option. Change the default value slider from 1 to 2 or 3 which increases the resolution of the KDE Plasma desktop too looks crisp and comfortable on HiDPI Displays which also known as Retina displays.
You can use KDE’s settings to fine tune font, icon, and widget scaling. This solution affects both Qt and Gtk+ applications.
To adjust only font scaling:
- System Settings → Fonts
- Check “Force fonts DPI” and adjust the DPI level to the desired value. To see the change you need to logout and login.
To adjust only icon scaling:
- System Settings → Icons → Advanced
- Choose the desired icon size for each category listed. This should take effect immediately.
Website Link to Download: https://www.kde.org/plasma-desktop
Also Read:
Normally, no environment variables need to be set. Most of theenvironment variables used by Mesa/Gallium are for debugging purposes,but they can sometimes be useful for debugging end-user issues.
LibGL environment variables¶
LIBGL_DEBUG
If defined debug information will be printed to stderr. If set toverbose
additional information will be printed.
LIBGL_DRIVERS_PATH
colon-separated list of paths to search for DRI drivers
LIBGL_ALWAYS_INDIRECT
if set to true
, forces an indirect rendering context/connection.
LIBGL_ALWAYS_SOFTWARE
if set to true
, always use software rendering
LIBGL_NO_DRAWARRAYS
if set to true
, do not use DrawArrays GLX protocol (fordebugging)
LIBGL_SHOW_FPS
print framerate to stdout based on the number of glXSwapBuffers
calls per second.
LIBGL_DRI2_DISABLE
disable DRI2 if set to true
.
LIBGL_DRI3_DISABLE
disable DRI3 if set to true
.
Core Mesa environment variables¶
MESA_NO_ASM
if set, disables all assembly language optimizations
MESA_NO_MMX
if set, disables Intel MMX optimizations
MESA_NO_3DNOW
if set, disables AMD 3DNow! optimizations
MESA_NO_SSE
if set, disables Intel SSE optimizations
MESA_NO_ERROR
if set to 1, error checking is disabled as per KHR_no_error
. Thiswill result in undefined behavior for invalid use of the API, butcan reduce CPU use for apps that are known to be error free.
MESA_DEBUG
if set, error messages are printed to stderr. For example, if theapplication generates a GL_INVALID_ENUM
error, a correspondingerror message indicating where the error occurred, and possibly why,will be printed to stderr. For release builds, MESA_DEBUG
defaults to off (no debug output). MESA_DEBUG
accepts thefollowing comma-separated list of named flags, which adds extrabehavior to just set MESA_DEBUG=1
:
silent
turn off debug messages. Only useful for debug builds.
flush
flush after each drawing command
incomplete_tex
extra debug messages when a texture is incomplete
incomplete_fbo
extra debug messages when a FBO is incomplete
context
create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB
) andprint error and performance messages to stderr (orMESA_LOG_FILE
).
MESA_LOG_FILE
specifies a file name for logging all errors, warnings, etc., ratherthan stderr
MESA_TEX_PROG
if set, implement conventional texture env modes with fragmentprograms (intended for developers only)
MESA_TNL_PROG
if set, implement conventional vertex transformation operations withvertex programs (intended for developers only). Setting this variableautomatically sets the MESA_TEX_PROG
variable as well.
MESA_EXTENSION_OVERRIDE
can be used to enable/disable extensions. A value such asGL_EXT_foo-GL_EXT_bar
will enable the GL_EXT_foo
extensionand disable the GL_EXT_bar
extension.
MESA_EXTENSION_MAX_YEAR
The GL_EXTENSIONS
string returned by Mesa is sorted by extensionyear. If this variable is set to year X, only extensions defined onor before year X will be reported. This is to work-around a bug insome games where the extension string is copied into a fixed-sizebuffer without truncating. If the extension string is too long, thebuffer overrun can cause the game to crash. This is a work-around forthat.
MESA_GL_VERSION_OVERRIDE
changes the value returned by glGetString(GL_VERSION)
andpossibly the GL API type.
The format should be
MAJOR.MINOR[FC|COMPAT]
FC
is an optional suffix that indicates a forward compatiblecontext. This is only valid for versions >= 3.0.COMPAT
is an optional suffix that indicates a compatibilitycontext orGL_ARB_compatibility
support. This is only validfor versions >= 3.1.GL versions <= 3.0 are set to a compatibility (non-Core) profile
GL versions = 3.1, depending on the driver, it may or may not havethe
ARB_compatibility
extension enabled.GL versions >= 3.2 are set to a Core profile
Examples:
2.1
select a compatibility (non-Core) profile with GL version 2.1.
3.0
select a compatibility (non-Core) profile with GL version 3.0.
3.0FC
select a Core+Forward Compatible profile with GL version 3.0.
3.1
select GL version 3.1 with
GL_ARB_compatibility
enabled perthe driver default.3.1FC
select GL version 3.1 with forward compatibility and
GL_ARB_compatibility
disabled.3.1COMPAT
select GL version 3.1 with
GL_ARB_compatibility
enabled.X.Y
override GL version to X.Y without changing the profile.
X.YFC
select a Core+Forward Compatible profile with GL version X.Y.
X.YCOMPAT
select a Compatibility profile with GL version X.Y.
Mesa may not really implement all the features of the givenversion. (for developers only)
MESA_GLES_VERSION_OVERRIDE
changes the value returned by glGetString(GL_VERSION)
for OpenGLES.
The format should be
MAJOR.MINOR
Examples:
2.0
,3.0
,3.1
Mesa may not really implement all the features of the givenversion. (for developers only)
MESA_GLSL_VERSION_OVERRIDE
changes the value returned byglGetString(GL_SHADING_LANGUAGE_VERSION)
. Valid values areintegers, such as 130
. Mesa will not really implement all thefeatures of the given language version if it’s higher than what’snormally reported. (for developers only)
MESA_GLSL_CACHE_DISABLE
if set to true
, disables the GLSL shader cache. If set tofalse
, enables the GLSL shader cache when it is disabled bydefault.
MESA_GLSL_CACHE_MAX_SIZE
if set, determines the maximum size of the on-disk cache of compiledGLSL programs. Should be set to a number optionally followed byK
, M
, or G
to specify a size in kilobytes, megabytes, orgigabytes. By default, gigabytes will be assumed. And if unset, amaximum size of 1GB will be used.
Note
A separate cache might be created for each architecture that Mesa isinstalled for on your system. For example under the default settingsyou may end up with a 1GB cache for x86_64 and another 1GB cache fori386.
MESA_GLSL_CACHE_DIR
if set, determines the directory to be used for the on-disk cache ofcompiled GLSL programs. If this variable is not set, then the cachewill be stored in $XDG_CACHE_HOME/mesa_shader_cache
(if thatvariable is set), or else within .cache/mesa_shader_cache
withinthe user’s home directory.
MESA_GLSL
MESA_NO_MINMAX_CACHE
when set, the minmax index cache is globally disabled.
MESA_SHADER_CAPTURE_PATH
see Capturing Shaders
MESA_SHADER_DUMP_PATH
and MESA_SHADER_READ_PATH
see Experimenting with ShaderReplacements
MESA_VK_VERSION_OVERRIDE
changes the Vulkan physical device version as returned inVkPhysicalDeviceProperties::apiVersion
.
The format should be
MAJOR.MINOR[.PATCH]
This will not let you force a version higher than the driver’sinstance version as advertised by
vkEnumerateInstanceVersion
This can be very useful for debugging but some features may not beimplemented correctly. (For developers only)
MESA_LOADER_DRIVER_OVERRIDE
chooses a different driver binary such as etnaviv
or zink
.
NIR passes environment variables¶
The following are only applicable for drivers that uses NIR, as theymodify the behavior for the common NIR_PASS and NIR_PASS_V macros, thatwrap calls to NIR lowering/optimizations.
NIR_PRINT
If defined, the resulting NIR shader will be printed out at eachsuccessful NIR lowering/optimization call.
NIR_TEST_CLONE
If defined, cloning a NIR shader would be tested at each successfulNIR lowering/optimization call.
Drivers Env Monitors Wireless
NIR_TEST_SERIALIZE
If defined, serialize and deserialize a NIR shader would be tested ateach successful NIR lowering/optimization call.
Mesa Xlib driver environment variables¶
The following are only applicable to the Mesa Xlib software driver. Seethe Xlib software driver page for details.
MESA_RGB_VISUAL
specifies the X visual and depth for RGB mode
MESA_CI_VISUAL
specifies the X visual and depth for CI mode
MESA_BACK_BUFFER
specifies how to implement the back color buffer, either pixmap
or ximage
MESA_GAMMA
gamma correction coefficients for red, green, blue channels
MESA_XSYNC
enable synchronous X behavior (for debugging only)
MESA_GLX_FORCE_CI
if set, force GLX to treat 8 BPP visuals as CI visuals
MESA_GLX_FORCE_ALPHA
if set, forces RGB windows to have an alpha channel.
MESA_GLX_DEPTH_BITS
specifies default number of bits for depth buffer.
MESA_GLX_ALPHA_BITS
specifies default number of bits for alpha channel.
i945/i965 driver environment variables (non-Gallium)¶
INTEL_NO_HW
if set to 1, prevents batches from being submitted to the hardware.This is useful for debugging hangs, etc.
INTEL_DEBUG
a comma-separated list of named flags, which do various things:
ann
annotate IR in assembly dumps
aub
dump batches into an AUB trace for use with simulation tools
bat
emit batch information
blit
emit messages about blit operations
blorp
emit messages about the blorp operations (blits & clears)
buf
emit messages about buffer objects
clip
emit messages about the clip unit (for old gens, includes the CLIPprogram)
color
use color in output
cs
dump shader assembly for compute shaders
do32
generate compute shader SIMD32 programs even if workgroup sizedoesn’t exceed the SIMD16 limit
dri
emit messages about the DRI interface
fbo
emit messages about framebuffers
fs
dump shader assembly for fragment shaders
gs
dump shader assembly for geometry shaders
hex
print instruction hex dump with the disassembly
l3
emit messages about the new L3 state during transitions
miptree
emit messages about miptrees
no8
don’t generate SIMD8 fragment shader
no16
suppress generation of 16-wide fragment shaders. useful fordebugging broken shaders
nocompact
disable instruction compaction
nodualobj
suppress generation of dual-object geometry shader code
nofc
disable fast clears
norbc
disable single sampled render buffer compression
optimizer
dump shader assembly to files at each optimization pass anditeration that make progress
perf
emit messages about performance issues
perfmon
emit messages about AMD_performance_monitor
pix
emit messages about pixel operations
prim
emit messages about drawing primitives
Drivers Env Monitors Vs
reemit
mark all state dirty on each draw call
sf
emit messages about the strips & fans unit (for old gens, includesthe SF program)
shader_time
record how much GPU time is spent in each shader
spill_fs
force spilling of all registers in the scalar backend (useful todebug spilling code)
spill_vec4
force spilling of all registers in the vec4 backend (useful todebug spilling code)
state
emit messages about state flag tracking
submit
emit batchbuffer usage statistics
sync
after sending each batch, emit a message and wait for that batchto finish rendering
tcs
dump shader assembly for tessellation control shaders
tes
dump shader assembly for tessellation evaluation shaders
tex
emit messages about textures.
urb
emit messages about URB setup
vert
emit messages about vertex assembly
vs
dump shader assembly for vertex shaders
INTEL_SCALAR_VS
(or TCS
, TES
, GS
)force scalar/vec4 mode for a shader stage (Gen8-9 only)
INTEL_PRECISE_TRIG
if set to 1, true or yes, then the driver prefers accuracy overperformance in trig functions.
INTEL_SHADER_ASM_READ_PATH
if set, determines the directory to be used for overriding shaderassembly. The binaries with custom assembly should be placed inthis folder and have a name formatted as sha1_of_assembly.bin
.The sha1 of a shader assembly is printed when assembly is dumped viacorresponding INTEL_DEBUG
flag (e.g. vs
for vertex shader).A binary could be generated from a dumped assembly by i965_asm
.For INTEL_SHADER_ASM_READ_PATH
to work it is necessary to enabledumping of corresponding shader stages via INTEL_DEBUG
.It is advised to use nocompact
flag of INTEL_DEBUG
whendumping and overriding shader assemblies.The success of assembly override would be signified by “Successfullyoverrode shader with sha1 <sha1>” in stderr replacing the originalassembly.
INTEL_BLACKHOLE_DEFAULT
if set to 1, true or yes, then the OpenGL implementation willdefault GL_BLACKHOLE_RENDER_INTEL
to true, thus disabling anyrendering.
Radeon driver environment variables (radeon, r200, and r300g)¶
RADEON_NO_TCL
if set, disable hardware-accelerated Transform/Clip/Lighting.
EGL environment variables¶
Mesa EGL supports different sets of environment variables. See theMesa EGL page for the details.
Gallium environment variables¶
GALLIUM_HUD
draws various information on the screen, like framerate, CPU load,driver statistics, performance counters, etc. SetGALLIUM_HUD=help
and run e.g. glxgears
for more info.
GALLIUM_HUD_PERIOD
sets the HUD update rate in seconds (float). Use zero to update everyframe. The default period is 1/2 second.
GALLIUM_HUD_VISIBLE
control default visibility, defaults to true.
GALLIUM_HUD_TOGGLE_SIGNAL
toggle visibility via user specified signal. Especially useful totoggle HUD at specific points of application and disable forunencumbered viewing the rest of the time. For example, setGALLIUM_HUD_VISIBLE
to false
andGALLIUM_HUD_TOGGLE_SIGNAL
to 10
(SIGUSR1
). Usekill-10<pid>
to toggle the HUD as desired.
GALLIUM_HUD_SCALE
Scale HUD by an integer factor, for high DPI displays. Default is 1.
GALLIUM_HUD_DUMP_DIR
specifies a directory for writing the displayed HUD values intofiles.
GALLIUM_DRIVER
useful in combination with LIBGL_ALWAYS_SOFTWARE=true
forchoosing one of the software renderers softpipe
, llvmpipe
orswr
.
GALLIUM_LOG_FILE
specifies a file for logging all errors, warnings, etc. rather thanstderr.
GALLIUM_PIPE_SEARCH_DIR
specifies an alternate search directory for pipe-loader which overridesthe compile-time path based on the install location.
GALLIUM_PRINT_OPTIONS
if non-zero, print all the Gallium environment variables which areused, and their current values.
GALLIUM_DUMP_CPU
if non-zero, print information about the CPU on start-up
TGSI_PRINT_SANITY
if set, do extra sanity checking on TGSI shaders and print any errorsto stderr.
DRAW_FSE
???
DRAW_NO_FSE
???
DRAW_USE_LLVM
if set to zero, the draw module will not use LLVM to execute shaders,vertex fetch, etc.
ST_DEBUG
controls debug output from the Mesa/Gallium state tracker. Setting totgsi
, for example, will print all the TGSI shaders. Seesrc/mesa/state_tracker/st_debug.c
for other options.
Clover environment variables¶
CLOVER_EXTRA_BUILD_OPTIONS
allows specifying additional compiler and linker options. Specifiedoptions are appended after the options set by the OpenCL program inclBuildProgram
.
CLOVER_EXTRA_COMPILE_OPTIONS
allows specifying additional compiler options. Specified options areappended after the options set by the OpenCL program inclCompileProgram
.
CLOVER_EXTRA_LINK_OPTIONS
allows specifying additional linker options. Specified options areappended after the options set by the OpenCL program inclLinkProgram
.
Softpipe driver environment variables¶
SOFTPIPE_DEBUG
a comma-separated list of named flags, which do various things:
vs
Dump vertex shader assembly to stderr
fs
Dump fragment shader assembly to stderr
gs
Dump geometry shader assembly to stderr
cs
Dump compute shader assembly to stderr
no_rast
rasterization is no-op’d. For profiling purposes.
use_llvm
the softpipe driver will try to use LLVM JIT for vertexshading processing.
use_tgsi
if set, the softpipe driver will ask to directly consume TGSI, insteadof NIR.
LLVMpipe driver environment variables¶
LP_NO_RAST
if set LLVMpipe will no-op rasterization
LP_DEBUG
a comma-separated list of debug options is accepted. See the sourcecode for details.
LP_PERF
a comma-separated list of options to selectively no-op various partsof the driver. See the source code for details.
LP_NUM_THREADS
an integer indicating how many threads to use for rendering. Zeroturns off threading completely. The default value is the number ofCPU cores present.
VMware SVGA driver environment variables¶
SVGA_FORCE_SWTNL
force use of software vertex transformation
SVGA_NO_SWTNL
don’t allow software vertex transformation fallbacks (will oftenresult in incorrect rendering).
SVGA_DEBUG
for dumping shaders, constant buffers, etc. See the code for details.
SVGA_EXTRA_LOGGING
if set, enables extra logging to the vmware.log
file, such as theOpenGL program’s name and command line arguments.
SVGA_NO_LOGGING
if set, disables logging to the vmware.log
file. This is usefulwhen using Valgrind because it otherwise crashes when initializingthe host log feature.
See the driver code for other, lesser-used variables.
WGL environment variables¶
WGL_SWAP_INTERVAL
to set a swap interval, equivalent to callingwglSwapIntervalEXT()
in an application. If this environmentvariable is set, application calls to wglSwapIntervalEXT()
willhave no effect.
VA-API environment variables¶
VAAPI_MPEG4_ENABLED
enable MPEG4 for VA-API, disabled by default.
VC4 driver environment variables¶
VC4_DEBUG
a comma-separated list of named flags, which do various things:
cl
dump command list during creation
qpu
dump generated QPU instructions
qir
dump QPU IR during program compile
nir
dump NIR during program compile
tgsi
dump TGSI during program compile
shaderdb
dump program compile information for shader-db analysis
perf
print during performance-related events
norast
skip actual hardware execution of commands
always_flush
flush after each draw call
always_sync
wait for finish after each flush
dump
write a GPU command stream trace file (VC4 simulator only)
RADV driver environment variables¶
RADV_DEBUG
a comma-separated list of named flags, which do various things:
llvm
enable LLVM compiler backend
allbos
force all allocated buffers to be referenced in submissions
checkir
validate the LLVM IR before LLVM compiles the shader
errors
display more info about errors
forcecompress
Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports itbut normally does not deem it beneficial.
hang
enable GPU hangs detection and dump a report to$HOME/radv_dumps_<pid>_<time> if a GPU hang is detected
img
Print image info
info
show GPU-related information
invariantgeom
Mark geometry-affecting outputs as invariant. This works around a commonclass of application bugs appearing as flickering.
metashaders
dump internal meta shaders
nobinning
disable primitive binning
nocache
disable shaders cache
nocompute
disable compute queue
nodcc
disable Delta Color Compression (DCC) on images
nodynamicbounds
do not check OOB access for dynamic descriptors
nofastclears
disable fast color/depthstencil clears
nohiz
disable HIZ for depthstencil images
noibs
disable directly recording command buffers in GPU-visible memory
nomemorycache
disable memory shaders cache
nongg
disable NGG for GFX10+
nooutoforder
disable out-of-order rasterization
nothreadllvm
disable LLVM threaded compilation
noumr
disable UMR dumps during GPU hang detection (only with RADV_DEBUG=hang)
preoptir
dump LLVM IR before any optimizations
shaders
dump shaders
shaderstats
dump shader statistics
spirv
dump SPIR-V
startup
display info at startup
syncshaders
synchronize shaders after all draws/dispatches
vmfaults
check for VM memory faults via dmesg
zerovram
initialize all memory allocated in VRAM as zero
RADV_FORCE_FAMILY
create a null device to compile shaders without a AMD GPU (e.g.gfx900)
RADV_PERFTEST
a comma-separated list of named flags, which do various things:
bolist
enable the global BO list
cswave32
enable wave32 for compute shaders (GFX10+)
dccmsaa
enable DCC for MSAA images
dfsm
enable dfsm
gewave32
enable wave32 for vertex/tess/geometry shaders (GFX10+)
localbos
enable local BOs
nosam
disable optimizations that get enabled when all VRAM is CPU visible.
pswave32
enable wave32 for pixel shaders (GFX10+)
tccompatcmask
enable TC-compat cmask for MSAA images
RADV_TEX_ANISO
force anisotropy filter (up to 16)
ACO_DEBUG
a comma-separated list of named flags, which do various things:
validateir
validate the ACO IR at various points of compilation (enabled bydefault for debug/debugoptimized builds)
validatera
validate register assignment of ACO IR and catches many RA bugs
perfwarn
abort on some suboptimal code generation
force-waitcnt
force emitting waitcnt states if there is something to wait for
novn
disable value numbering
noopt
disable various optimizations
noscheduling
disable instructions scheduling
radeonsi driver environment variables¶
AMD_DEBUG
a comma-separated list of named flags, which do various things:
nodcc
Disable DCC.
nodccclear
Disable DCC fast clear.
nodccfb
Disable separate DCC on the main framebuffer
nodccmsaa
Disable DCC for MSAA
nodpbb
Disable DPBB.
nodfsm
Disable DFSM.
notiling
Disable tiling
nofmask
Disable MSAA compression
nohyperz
Disable Hyper-Z
no2d
Disable 2D tiling
info
Print driver information
tex
Print texture info
compute
Print compute info
vm
Print virtual addresses when creating resources
vs
Print vertex shaders
ps
Print pixel shaders
gs
Print geometry shaders
tcs
Print tessellation control shaders
tes
Print tessellation evaluation shaders
cs
Print compute shaders
noir
Don’t print the LLVM IR
nonir
Don’t print NIR when printing shaders
noasm
Don’t print disassembled shaders
preoptir
Print the LLVM IR before initial optimizations
gisel
Enable LLVM global instruction selector.
w32ge
Use Wave32 for vertex, tessellation, and geometry shaders.
w32ps
Use Wave32 for pixel shaders.
w32cs
Use Wave32 for computes shaders.
w64ge
Use Wave64 for vertex, tessellation, and geometry shaders.
w64ps
Use Wave64 for pixel shaders.
w64cs
Use Wave64 for computes shaders.
checkir
Enable additional sanity checks on shader IR
mono
Use old-style monolithic shaders compiled on demand
nooptvariant
Disable compiling optimized shader variants.
nowc
Disable GTT write combining
check_vm
Check VM faults and dump debug info.
reserve_vmid
Force VMID reservation per context.
nogfx
Disable graphics. Only multimedia compute paths can be used.
nongg
Drivers Env Monitors App
Disable NGG and use the legacy pipeline.
nggc
Always use NGG culling even when it can hurt.
nonggc
Disable NGG culling.
alwayspd
Always enable the primitive discard compute shader.
pd
Enable the primitive discard compute shader for large draw calls.
nopd
Disable the primitive discard compute shader.
Drivers Env Monitors -
switch_on_eop
Program WD/IA to switch on end-of-packet.
nooutoforder
Disable out-of-order rasterization
dpbb
Enable DPBB.
dfsm
Enable DFSM.
Other Gallium drivers have their own environment variables. These maychange frequently so the source code should be consulted for details.