Q2PRO-X

Q2PRO-X 1.6 Beta 5 by ly — Q2PRO-X 1.6 Beta 5 Video and Visuals Guide

The complete guide in HTML. The original DOCX is available from its documentation card.

Q2PRO-X 1.6 Beta 5 by ly

Q2PRO-X 1.6 Beta 5 Video and Visuals Guide

Q2PRO-X document image

Project author: ly

Backends, display modes, image quality, post-processing and display protection

English edition • Q2PRO-X 1.6 Beta 5 by ly • 2026-10-10


Contents

The entries are links: click one to jump to that section.

Beta4: EGL and tessellation preflight

Beta 3 corrections

Video fixes in beta 2

What this document covers

Where the settings live

1. The main video page

2. The graphics backend

3. The display mode

3.1. Desktop fullscreen

3.2. Exclusive fullscreen

3.3. Windowed mode

3.4. Fast Alt-Tab on a deep-colour desktop

4. Render scale

5. Gamma and brightness

6. Basic visual effects

6.1. Post-processing

6.2. Dynamic lighting

6.3. GL settings

6.4. Renderer settings

7. OLED protection

8. Visual highlights

9. The demo visual profile

10. AVFX and visual presets

11. Recommended starting profiles

Competitive play

Watching recordings

Recording video

12. Diagnostics


Beta4: EGL and tessellation preflight

Update the bundled libEGL.dll and libGLESv2.dll along with the client. They fix ANGLE vertex-layout cache corruption observed during demo/model rendering. Renderer startup and backend changes validate context capability. Eligible WGL contexts run a separate background compiler probe for world, snow and mirror tessellation, regardless of AVFX, tessellation switches or presets. Until PASS, the existing CPU/flat fallback remains. The game thread does not wait for probe completion. Results are cached against GPU, driver, context and shader code; there is no vendor/version blacklist. Settings remain intact. gl_capabilities and bsp_tess_info expose availability/fallback reasons. This is not immunity from every driver fault. EGL model-part colors and highlighted WGL/EGL cel outlines are also fixed.


Beta 3 corrections

Fixed blue artifacts at high contrast. The main tessellation master also governs water and lava; switching no longer triggers v_q2px_base_floor compilation errors. Incompatible gl_shaders 0 with active shader-dependent features is rejected with an explanation, including startup arguments and configs. Automatic menu scaling follows resolution changes. Lighting presets apply brightness, color grading and dynamic-light settings.



Video fixes in beta 2

Fixed WGL HDR transitions and map loading with AVFX; see the HDR guide. gl_picmip help now lists the actual 0–31 range. Texture reduction stops at 1×1, so settings 8 and 9 can differ for sufficiently large source textures. The incorrect upper bound of 8 is no longer documented.


What this document covers

This explains how the Q2PRO-X video settings and visual layers are built: the graphics backend, the display mode, the render scale, post-processing, OLED display protection, the highlights, and the separate visual profile used while watching recordings.

Where the settings live

What you are settingMenu path
Display, backend, render scale, gammaMain menu → Video & Display
OLED protectionMain menu → Video & Display → OLED Protection
HDRMain menu → Video & Display → HDR Settings
Post-processingMain menu → Video & Display → Post-Process Effects
Visual effectsMain menu → Video & Display → Visual FX
Dynamic lightingMain menu → Video & Display → Dynamic Lighting
GL settingsMain menu → Video & Display → Q2PRO-X / GL settings
Renderer settingsMain menu → Video & Display → Q2PRO-X / Renderer settings
Visual highlightsMain menu → Online Play Setup → Visibility Highlights

Some stock Quake II video variables are still reachable from the console, but for ordinary configuration start with the Q2PRO-X pages.



1. The main video page

Video & Display

TypeSectionRowVariable or targetWhat it does
SectionDisplay ModeDisplay Mode
ListDisplay ModeVideo backendvid_drivervid_driver: win32wgl = default (fast cold AVFX startup), win32egl = explicit capture-friendly ANGLE / true-HDR choice. [Win32egl / Win32wgl]
Value listDisplay ModeResolutionvid_resolutionvid_resolution: desktop = native monitor mode.
ToggleDisplay ModeWindowed modevid_windowedvid_windowed: run in a normal resizable window.
ListDisplay ModeFullscreen modevid_fullscreen_typeFullscreen flavor when windowed is off. [Desktop fullscreen / Exclusive fullscreen]
Value listDisplay ModeRefresh ratevid_refreshvid_refresh: max = highest available.
ListDisplay ModeFullscreen fitvid_desktop_fullscreen_fitFill = stretch to monitor, aspect = keep selected mode aspect with black bars. Applies immediately. [fill / aspect]
ListDisplay ModeDeep-color Alt-Tabvid_desktop_fullscreen_marginExact fullscreen is the default and keeps maximum native-WGL FPS. Fast Alt-Tab sets vid_desktop_fullscreen_margin 0: on desktops deeper than 8 bpc it leaves a narrow right edge and may reduce FPS. Needs vid_restart. [Exact fullscreen / Fast Alt-Tab]
SectionScale, Gamma & FPSScale, Gamma & FPS
SliderScale, Gamma & FPSRender scalegl_render_scaleInternal 3D scene resolution (100=native, step 1%).
ListScale, Gamma & FPSScale modegl_render_scale_modeAuto = best path, texture = bloom/waterwarp, blit = high range, tiled = extreme. [auto / texture / blit / tiled]
ListScale, Gamma & FPSScale filtergl_render_scale_filterResolve quality (fast / balanced / quality). [fast / balanced / quality]
SliderScale, Gamma & FPSWorld light intensityintensityintensity: primary renderer light intensity multiplier used by shaders. 2 is the Q2PRO default; higher brightens the level, lower darkens it. When Global Q2PRO-X prefs / Video is enabled, this value is stored in the unified global config. Applies immediately.
SliderScale, Gamma & FPSTexture gamma (compatibility)vid_gammaCompatibility texture gamma for existing configs. On programmable WGL/EGL it affects wall/skin texture uploads and needs r_reload or vid_restart; it never changes the final frame.
SliderScale, Gamma & FPSFull-frame gammavid_display_gammaExplicit live final-composite gamma in programmable WGL/EGL. 1.0 is neutral and never inherits legacy vid_gamma; lower brightens the complete frame, higher darkens it. Applies immediately.
ToggleScale, Gamma & FPSHardware gammavid_hwgammaApply the legacy vid_gamma curve through the display driver's hardware gamma ramp. Enabling requires vid_restart and driver support; independent from vid_display_gamma.
SliderScale, Gamma & FPSRenderer FPS limitr_maxfpsr_maxfps: renderer-only framerate cap. 0 = uncapped. Applies when cl_async 1; otherwise cl_maxfps is the gate. Applies immediately.
SectionSubmenus & ActionsSubmenus & Actions
NavigationSubmenus & ActionsOLED protection...q2prox_oledOLED protection suite: burn-in guards, dimming and static-image safeguards.
NavigationSubmenus & ActionsHDR settings...q2prox_hdrHDR rendering / tone mapping settings.
NavigationSubmenus & ActionsPost-process effects...q2prox_postfxPost-process camera/display effects (pixel, CRT, film, VHS).
NavigationSubmenus & ActionsVisual effects...q2prox_vfxFog, bloom, color grading, sharpen, cel-shading and other visual effects.
NavigationSubmenus & ActionsDynamic lighting...q2prox_dynamic_lightingDynamic lights, emissive map lights, spawn lights, sparks and model shadows.
NavigationSubmenus & ActionsGL settings...q2prox_gl_settingsGL textures and visual style: vsync, filter, anisotropy, picmip, particles, beams, bilerp, font shadow, damage blend.
NavigationSubmenus & ActionsRenderer settings...q2prox_renderer_settingsRenderer lighting and pipeline: vertex lighting, modulation, dlight falloff, lightgrid, waterwarp, GL shaders / MD5 / texture bits (some require vid_restart).
NavigationSubmenus & ActionsRestart video...vid_restartApply vid_driver / fullscreen changes now
NavigationSubmenus & ActionsRender scale info...gl_render_scale_infoPrint render scale path, max resolution and tile grid to the console.


2. The graphics backend

VariableAccepted valuesDescription
vid_driverwin32wgl=Windows WGL OpenGL (default, fast cold AVFX startup) / win32egl=Windows EGL/ANGLE (explicit capture/true-HDR choice) / wayland=native Wayland / x11=native X11 / sdl=SDL2Specifies which video driver to use. On Windows the default is win32wgl: native OpenGL has the fast cold AVFX startup path. win32egl remains an explicit capture-friendly ANGLE choice for NVIDIA ShadowPlay/OBS compatibility and is required for the optional true-HDR output path, but its first cold shader build can take much longer. If the chosen backend fails to initialize the engine probes the remaining drivers and rewrites vid_driver to the backend that actually started.

Two paths:

`win32wgl` — the classic OpenGL path. This is the default: it reaches its working state faster on a cold AVFX start, and the menu recommends it for true HDR.
`win32egl` — the EGL/ANGLE path. The explicit choice for video capture and compatibility; for the heavy AVFX volumetric media the menu recommends this one.

If the selected backend cannot start, the engine tries the available fallback drivers and rewrites the variable to the backend that actually started. That is why the menu shows both the desired value and the actual launch result.

Practical guidance:

keep the default if the game starts normally;
try the other backend if there is a problem on your particular machine;
after changing the backend, restart the video mode or the client if the menu did not apply the change itself;
prefer win32wgl for true HDR, and win32egl for heavy AVFX volumetric effects.



3. The display mode

Q2PRO-X hides the old awkward fullscreen model behind understandable lists:

Menu rowWhat it does
WindowedStart in an ordinary resizable window
Fullscreen typeDesktop fullscreen or exclusive mode
Fullscreen fitFill the monitor, or keep the aspect ratio with black bars
Alt-Tab (deep-colour desktop)Exact size, or fast Alt-Tab

3.1. Desktop fullscreen

This is borderless fullscreen. It is usually the best mode for switching windows, recording video and a modern Windows desktop. With the aspect fit, the game keeps the chosen aspect ratio and draws black bars.

3.2. Exclusive fullscreen

The classic mode that changes the monitor's video mode.

3.3. Windowed mode

In a window the size is governed by the window itself, and the refresh rate by the desktop.

3.4. Fast Alt-Tab on a deep-colour desktop

VariableAccepted valuesDescription
vid_desktop_fullscreen_margin-1=exact size (default) / 0=fast Alt-Tab on deep-color WGL / 1..16=manual diagnostic marginDesktop-fullscreen Alt-Tab policy. Default -1 uses the exact monitor size and preserves maximum native-WGL FPS, but Alt-Tab can be slower on desktops deeper than 8 bpc. Value 0 enables automatic fast-Alt-Tab compatibility: deep-color SDR WGL leaves a minimal right-edge margin to avoid Legacy Flip, potentially at an FPS cost. Active FP16 true HDR remains exact-size. Positive values are manual diagnostic margins. Requires vid_restart.

The exact size is the default: it preserves the maximum frame rate on native WGL. The fast Alt-Tab mode helps on a desktop deeper than 8 bits, but it leaves a narrow strip on the right and can reduce the frame rate. It requires a video restart.


4. Render scale

The render scale separates the internal 3D resolution from the size of the window.

VariableAccepted valuesDescription
gl_render_scale100..1000 (percent; 100 = native, 200 = 2x super-sampling, etc.; menu step 1%)Internal 3D scene resolution as a percent of the display. 100 is native resolution; >100 is super-sampling (render higher, downscale for AA); <100 is not supported — set gl_render_scale to 100 to disable super-sampling. Runtime-clamped by gl_render_scale_max and the backend's max texture size. Menu step 1% (was 25% — 1% gives finer control on the SS curve).
gl_render_scale_mode0=auto / 1=texture/FBO / 2=blit / 3=tiledRender scale pipeline mode. Integer 0..3. 0 = auto pick. 1 = render into offscreen texture / FBO (preferred for >100% SSAA). 2 = direct blit path when supported. 3 = tiled mode for very high render scales that exceed max texture size.
gl_render_scale_filter0=fast single blit / 1=balanced progressive 2x / 2=quality progressive 2x + tiled guard bandRender scale upscale / downscale filter quality. Integer 0..2. 0 = single fast blit (cheap, slight blur). 1 = balanced progressive 2x downsample chain. 2 = quality progressive 2x + tiled-mode guard band (sharpest, most VRAM/perf).

Typical uses:

100 — native sharpness;
below 100 — more frames at the cost of blur;
above 100 — super-sampling, if your card allows it.

For competitive play it usually makes sense to keep 100 and gain frames by disabling expensive visual effects instead.

The gl_render_scale_info command prints the actual scaling path, the maximum resolution and the tile grid.



5. Gamma and brightness

This is where confusion arises most often, especially after loading an old config.

VariableAccepted valuesDescription
vid_gammadefault 1 / range 0.3..3 / step 0.05 / r_reload/vid_restartCompatibility texture gamma used by existing Q2/Q2PRO configs. Default 1.0 = identity; lower values brighten texture mid-tones, higher values darken them. On programmable WGL/EGL it is baked into wall/skin texture uploads and therefore needs r_reload or vid_restart; it never changes the whole final frame. With vid_hwgamma 1, the display backend may instead consume this curve as a hardware gamma ramp. Owned by the unified global video config when global video preferences are enabled.
vid_display_gammadefault 1 / range 0.3..3 / step 0.05 / liveOptional live final-composite gamma for programmable WGL/EGL. Default 1.0 is neutral; lower values brighten the complete frame and higher values darken it. This new control is deliberately independent from legacy vid_gamma and never inherits its persisted value. Owned by the unified global video config when global video preferences are enabled.
vid_hwgammadefault 0 / 0/1 / vid_restartApply the legacy vid_gamma curve as a hardware gamma ramp through the display driver instead of baking it into textures. Default 0 = off; 1 = on. Registered as CVAR_REFRESH, so enabling it needs vid_restart and driver support; once active, changes to vid_gamma are live. Independent from the optional final-composite vid_display_gamma. Owned by the unified global video config when global video preferences are enabled.
intensitydefault 2 / range 0..5 / step 0.05Primary renderer light intensity multiplier consumed by the shader uniforms (u_intensity / u_intensity2). Stock Q2PRO default is 2; lower values darken the level, higher values brighten it. When cl_q2prox_cfg_global_prefs 1 + cl_q2prox_cfg_global_pref_video 1 are enabled the value is owned by the unified Q2PRO-X global config (baseq2/q2pro-x/q2pro-x.cfg). Independent from gl_brightness / gl_modulate, legacy texture-domain vid_gamma, and final-composite vid_display_gamma; these controls operate at separate renderer stages.

The short rule:

Texture gamma is the compatible legacy gamma: it affects wall and model textures, requires a resource or video-mode reload, and does not change the whole final frame.
Whole-frame gamma is the explicit live gamma of the final frame, neutral by default and inheriting no older value.
Hardware gamma applies the legacy curve through the driver and requires a video restart.

Everything about high dynamic range lives in the separate HDR guide.


6. Basic visual effects

Separate pages own separate groups:

Visual effects — fog, bloom, colour grading, sharpening, cel shading;
Post-processing — pixel mode, CRT, film, VHS;
Dynamic lighting — dynamic lights, glowing map sources, spawn points, sparks and shadows;
GL settings — vertical sync, texture filtering, anisotropy, detail, particles, beams;
Renderer settings — lighting, the pipeline, underwater warp, MD5 and texture bit depth.

Visual FX

TypeSectionRowVariable or targetWhat it does
SectionFogFog
ToggleFogFogusefogEnable client-side fog on maps that define fog. Applies immediately.
SliderFogFog densityfogdensityFog thickness: higher = denser haze and less far visibility. Applies immediately.
SliderFogFog huefoghueFog color hue around the color wheel (0..1). Applies immediately.
SliderFogFog saturationfogsaturationFog color saturation: 0 = gray, 1 = vivid. Applies immediately.
SliderFogFog lightnessfoglightnessFog brightness: 0 = dark fog, 1 = bright fog. Applies immediately.
SectionLighting & styleLighting & style
ToggleLighting & styleNo glowcl_noglowHide the colored power-up shell glow (quad/pent/invul tint) on players and weapons. Power-up state unchanged. Applies immediately.
ToggleLighting & stylePoly blendgl_polyblendFull-screen color flashes on damage, item pickup and underwater; off removes them. Applies immediately.
ToggleLighting & styleColored lightmapsgl_coloredlightmapsColored world lighting; off desaturates lightmaps to grayscale. Applies immediately.
SliderLighting & styleBrightnessgl_brightnessAdds brightness to world lightmaps; higher = brighter map. Applies immediately.
SliderLighting & styleCel shadinggl_celshadingBlack cartoon outline thickness around models; 0 = off. Applies immediately.
SectionBloom & glowBloom & glow
NavigationBloom & glowBloom settings...q2prox_bloomCommon bloom controls and source strengths from 0 to 100%.
SectionColor gradingColor grading
ListColor gradingGrading profilegl_post_profileColor-grading look for the final image: neutral, warm, arena or cinematic. Applies immediately. [off / neutral / warm / arena / cinematic]
SliderColor gradingContrastgl_post_contrastImage contrast; 1 = neutral, higher = punchier. Applies immediately.
SliderColor gradingVibrancegl_post_vibranceVibrance: boosts muted colors most; negative = washed out. Applies immediately.
SliderColor gradingTemperaturegl_post_temperatureColor temperature; negative = cooler/blue, positive = warmer/orange. Applies immediately.
SectionSharpenSharpen
SliderSharpenSharpengl_sharpenEdge sharpening of the final image; higher = crisper. Applies immediately.
SectionSubmenusSubmenus
NavigationSubmenusDynamic lighting...q2prox_dynamic_lightingDynamic lights, emissive map lights, spawn lights, sparks and model shadows.
NavigationSubmenusAdvanced effects...q2prox_avfxOpen Advanced Visual Effects (AVFX): weather, sky, celestials and surface effects.
NavigationSubmenusVisual fx info...gl_visual_fx_infoPrint current Visual FX cvar values and status to the console.
NavigationSubmenusVisibility highlights...q2prox_visItem, weapon and player highlights, including model-part colours.


6.1. Post-processing

Post-Process Effects

TypeSectionRowVariable or targetWhat it does
TogglePost-processgl_postfxgl_postfx: post-process master on/off Applies immediately.
ListModegl_postfx_modePost-process look: Pixel, CRT, Film, VHS, Noir or Sepia (needs Post-process on). Applies immediately. [Off / Pixel / CRT / Film / VHS / Noir / Sepia]
SliderStrengthgl_postfx_strengthOverall intensity of the active post-process effect; 1 = nominal. Applies immediately.
SliderMixgl_postfx_mixBlend of the effect with the raw image; 1 = full effect, 0 = none. Applies immediately.
NavigationPixel settings...q2prox_postfx_pixelOpen Pixel Retro settings: resolution, grid, color levels, palette, dithering.
NavigationCRT settings...q2prox_postfx_crtOpen CRT settings: scanlines, mask, vignette, chroma, curvature, flicker.
NavigationFilm settings...q2prox_postfx_filmOpen Film settings: grain, vignette, chroma, lens dirt.
NavigationVHS settings...q2prox_postfx_vhsOpen VHS settings: noise, chroma bleed, jitter, tracking.
NavigationReset master...set gl_postfx 0; set gl_postfx_mode 0; set gl_postfx_strength 1.0; set gl_postfx_mix 1.0Reset post-process master/common to defaults

6.2. Dynamic lighting

Dynamic Lighting

TypeSectionRowVariable or targetWhat it does
SectionDynamic lightsDynamic lights
ListDynamic lightsDynamic lightsgl_dynamicDynamic lightmap lighting: off, on, or only map switchable lights. Applies immediately. [no / yes / only switchable]
SliderDynamic lightsDynamic light darkness boostgl_dynamic_dark_boostBoosts dynamic lights (blasters/rockets/explosions) on locally dark surfaces. 0=legacy; 1.55 default; 5..10 dramatic. Radius/color unchanged. Applies immediately.
SliderDynamic lightsDynamic light radiusgl_dynamic_radiusDynamic light radius scale. 1.0=legacy; lower=smaller projected spots on walls. Higher=stretched glow within marked surfaces. Applies immediately.
SliderDynamic lightsDynamic light softnessgl_dynamic_softnessFalloff softness. 1.0=legacy linear; >1=softer diffuse edges; <1=concentrated pin-point core. Applies immediately.
SliderDynamic lightsDynamic light alphagl_dynamic_alphaAlpha/opacity of dynamic light projections. 1.0=legacy full; 0=invisible. Applies immediately.
ToggleDynamic lightsSparks emit dlightcl_q2prox_spark_dlightEmit a short dynamic light at impact sparks (bullets / shotgun / screen / shield). Lets sparks light up the surrounding floor / snow. Default OFF. Applies immediately.
SectionEmissive map lightsEmissive map lights
ToggleEmissive map lightsEmissive map lightsgl_emissive_lightsLocal light from visible emissive map objects. Invisible compiler markers are ignored. Applies immediately.
ToggleEmissive map lightsSurface lightsgl_emissive_lights_surfacesUse visible non-water SURF_LIGHT faces as sources. Applies immediately.
ToggleEmissive map lightsSpawn point lightsgl_emissive_lights_spawn_pointsOpt-in: light player starts snapped to compact nearby floor/pad geometry. Raw invisible info_player_* origins and unrelated wall lamps are ignored. Also covers destination markers like misc_teleporter_dest. Applies immediately.
SectionEmissive tuningEmissive tuning
SliderEmissive tuningEmissive intensitygl_emissive_lights_intensityGlobal intensity scale for emissive sources. 0=off; 1=baseline; up to 5x for dramatic. Applies immediately.
SliderEmissive tuningEmissive rangegl_emissive_lights_rangePer-source range cap in world units (smaller = tighter pools of light). Applies immediately.
SliderEmissive tuningRange scalegl_emissive_lights_range_scaleMultiplier on per-source intrinsic radius (independent of cap). Applies immediately.
SliderEmissive tuningFlickergl_emissive_lights_flickerLamp-like low-frequency flicker amount (0 = stable, ~0.08 = subtle drift). Applies immediately.
SliderEmissive tuningFade timegl_emissive_lights_fade_msFade-in/out time (ms) when a sub-cvar toggle changes which sources are active. With priority-based selection (default), no camera-driven activation. Fades only on user toggles. 0 = hard snap (debug). Applies immediately.
ToggleEmissive tuningPVS gategl_emissive_lights_pvs_gateOptional: gate active sources by camera PVS visibility (big-map optimization). Default off. Leave off if you want truly static, always-on lighting that doesn't react to where you walk. Applies immediately.
SliderEmissive tuningMax activegl_emissive_lights_max_activeLegacy V_AddLight emission cap. Strict slot reservation guarantees gameplay dlights (projectiles, sparks, explosions, flashlight) keep their MAX_DLIGHTS headroom. AVFX material UBOs use dedicated static families. Applies immediately.
SliderEmissive tuningMax cachedgl_emissive_lights_max_sourcesSource-cache cap (built per map). 0 = effectively off. Applies immediately.
SectionShadowsShadows
ListShadowsShadowsgl_shadowsgl_shadows: 0=off, 1=basic hard shadows, 2=fade with distance, 3=soft model shadows Applies immediately. [off / basic / fade / soft]
ToggleShadowsShadow light occlusiongl_shadows_light_occlusionSuppress projected model shadows when the model is under a solid ceiling. Does not affect AVFX flashlight dynamic shadows. Applies immediately.
SectionServiceService
NavigationServiceReset to defaultsq2prox_dynamic_lighting_defaultsReset every parameter in this submenu to its default value.

6.3. GL settings

Q2PRO-X / GL settings

TypeSectionRowVariable or targetWhat it does
SectionSectionsSections
NavigationSectionsSync and filtering...q2prox_gl_sync_filter
NavigationSectionsShader compile and cache...q2prox_gl_shader_cache
NavigationSectionsTexture detail...q2prox_gl_texture_detail
NavigationSectionsParticles and beams...q2prox_gl_particles_beams

6.4. Renderer settings

Q2PRO-X / Renderer settings

TypeSectionRowVariable or targetWhat it does
SectionSectionsSections
NavigationSectionsLighting model...q2prox_renderer_lighting
NavigationSectionsLevel tessellation...q2prox_bsp_tessellationGeneral WGL hardware tessellation for BSP world surfaces. Independent of Single Player Geometry Deformation and available in multiplayer. EGL uses the normal CPU world path.
NavigationSectionsWater and fog...q2prox_renderer_environment
NavigationSectionsPipeline and models...q2prox_renderer_pipeline
NavigationSectionsTexture overrides...q2prox_renderer_texture_overrides



7. OLED protection

This is a set of protective effects for the cases where static elements stay in one place for a long time.

OLED Protection

TypeSectionRowVariable or targetWhat it does
SectionMainMain
ToggleMainOLED protectionvid_oled_enableMaster switch for the OLED burn-in protection suite. Applies immediately.
SectionBar protectionBar protection
ToggleBar protectionBar protectionvid_oled_bar_protectionSlowly animate the aspect-fit pillarbox bars so they don't burn in. Applies immediately.
ListBar protectionBar presetvid_oled_bar_presetBar animation preset: fade, random fade, or breathe. Applies immediately. [fade / random fade / breathe]
ListBar protectionBar color Avid_oled_bar_color_aFirst bar-animation color (one end of the breathing cycle). Applies immediately. [Black / Near black / Dim gray / Gray]
ListBar protectionBar color Bvid_oled_bar_color_bSecond bar-animation color (the other end of the breathing cycle). Applies immediately. [Black / Near black / Dim gray / Gray]
SliderBar protectionBar start delayvid_oled_bar_delay_secDelay before the first bar color transition, letting the bars settle first (seconds). Applies immediately.
SliderBar protectionBar active timevid_oled_bar_active_minMinimum active-session length before bar animation may start. Stops brief sessions from triggering it. Applies immediately.
SliderBar protectionBar idle intervalvid_oled_bar_interval_minMinimum interval between bar color transitions; slower is less distracting (minutes). Applies immediately.
SectionIdle protectionIdle protection
ToggleIdle protectionIdle screen protectionvid_oled_idle_protectionDim the screen after a period of inactivity. Applies immediately.
SliderIdle protectionIdle delayvid_oled_idle_delay_secIdle time before the screen starts dimming (seconds). Applies immediately.
SliderIdle protectionIdle fade timevid_oled_idle_fade_secFade-to-dark duration once idle protection triggers (seconds). Applies immediately.
SliderIdle protectionIdle hold timevid_oled_idle_hold_secHow long the screen stays fully dim before optionally switching the monitor to DPMS off (seconds). Applies immediately.
ToggleIdle protectionIdle monitor DPMS offvid_oled_idle_monitor_offSwitch the monitor off via DPMS during the fully-dim HOLD_DARK phase. Windows, opt-in. Applies immediately.
SliderIdle protectionIdle restore timevid_oled_idle_restore_secFade-back-to-normal duration when activity resumes (seconds). Applies immediately.
ToggleIdle protectionMute audio on idle protectvid_oled_idle_mute_audioMute audio while the idle dimming is active. Applies immediately.
SectionInterface protectionInterface protection
ToggleInterface protectionInterface alpha protectvid_oled_ui_protectionApply a slow breathing opacity to protected UI elements so static chrome doesn't burn in. Applies immediately.
SliderInterface protectionInterface min alphavid_oled_ui_min_alphaDimmest point of the breathing opacity applied to protected UI. Applies immediately.
SliderInterface protectionInterface max alphavid_oled_ui_max_alphaBrightest point of the breathing opacity applied to protected UI. Applies immediately.
SliderInterface protectionInterface cycle timevid_oled_ui_cycle_secDuration of one UI opacity breathing cycle (seconds). Applies immediately.
SectionServiceService
NavigationServiceOLED info...vid_oled_infoPrint the OLED-protection status to console.

Bar protection applies only when Q2PRO-X owns the black bars itself — in desktop fullscreen with the aspect fit, for example. Idle protection and UI protection are not limited to that mode.

The vid_oled_info command prints the state of the protection and the reasons each stage is or is not active.


8. Visual highlights

Highlighting replaces no models and changes no game data. It is a visual layer over the local rendering: items, weapons, players, per-class colours, per-weapon colours and model-part colours.

The master switch:

VariableAccepted valuesDescription
cl_vis_enable0=layer off (no highlights) / 1=layer activeMaster enable for the Q2PRO-X visibility / highlight layer. Controls item, weapon, and player highlighting as a single gate. When off, the layer is completely neutral (no shells, no tints, no scale changes).

The complete description of the layer, including the player highlight modes and the model-part setup, is in the separate visual highlights guide.


9. The demo visual profile

The main idea: while watching .dm2 and .mvd2, the visual settings should be the same regardless of which mod the recording was made in.

So during playback the local Q2PRO-X visual settings are written into:

baseq2\q2pro-x\demo_visual\q2pro-x.demo.cfg

That covers the highlights, the model colours, the demo-analytics colours and trail settings, the in-demo item timer colours and toggles, and the other local visual variables.

In practice:

1. Start a recording.

2. Configure the highlights, the analytics and the timers.

3. The save goes into the demo profile.

4. The next recording from a different mod uses the same viewing profile, not a foreign mod config.

The relevant commands are described in the cvars and cvar browser guide.



10. AVFX and visual presets

AVFX is the largest visual layer of Q2PRO-X: weather, sky, space, water, puddles, surface materials, volumetric media and map-authored scenes.

For a new user the AVFX layer is off. It is enabled in the AVFX menu or by a ready-made preset.
The quality scale of the shipped presets progressively reduces particle density, the distance LOD, the extra trails and the expensive effects.
The distance LOD skips small effects beyond a chosen distance with a soft fade; puddles, cascade flows and the rain particles themselves are not affected by it.

Details are in the AVFX settings, AVFX presets and AVFX advanced features guides.


11. Recommended starting profiles

Competitive play

the default backend;
desktop fullscreen;
render scale 100;
bloom and post-processing moderate or off;
player highlight mode Team or Auto;
item highlighting with low opacity so the model is not obscured.

Watching recordings

player highlight mode Model or Model parts;
the shell-and-tint style;
assign clear colours to the models;
enable demo analytics only when you need the event map;
enable item timers as needed.

Recording video

the win32egl backend — it is the explicit choice for capture;
desktop fullscreen;
the aspect fit if you want black bars on the sides;
keep post-processing and highlights stable through the demo profile.


12. Diagnostics

CommandWhat it prints
versionThe build version and component details
gl_render_scale_infoThe scaling path, the maximum resolution and the tile grid
vid_oled_infoThe state of OLED protection and why each stage is active
gl_hdr_infoThe HDR backend capabilities and the current output path
gl_visual_fx_infoThe state of the visual-effect subsystems
cl_avfx_infoThe state of the AVFX layer, its counters and budgets

The live performance and budget HUD shows the measured cost of the frame, of dynamic lighting and of the enabled AVFX families. It is off by default.