DXVK — Env Vars & dxvk.conf
DXVK itu translator DirectX 9/10/11 → Vulkan. BUKAN VKD3D — itu buat DX12, halaman terpisah.
Setting DXVK ada 2 cara: env var (runtime) dan dxvk.conf file (persistent, taruh di folder game atau set lewat DXVK_CONFIG_FILE). Env var override dxvk.conf.
Sumber:
data/kb/dxvk-conf.md+data/kb/dxvk-conf-extras.mdCOPUX KB. Cross-check: doitsujin/dxvk master dxvk.conf (237 keys official). Tag[UPSTREAM]= ada di DXVK resmi.[FORK]= cuma di fork async/gplasync/Sarek.[VERIFIED]= komunitas test,[THEORETICAL]= estimasi.
Shader — async & cache
Section titled “Shader — async & cache”dxvk.enableAsync=True
FORK
Apa: Kompilasi shader async (background thread).
Good: Tanpa async, game freeze tiap shader baru di-compile. Async = stutter berkurang drastis.
Bad: Kadang flicker frame pertama (placeholder shader).
Default: True. Cuma jalan kalau pake DXVK fork async (DXVK-async, DXVK-gplasync, Sarek). DXVK upstream official GA ADA fitur ini.
dxvk.enableStateCache=True
FORK
Apa: Simpan pipeline cache ke disk.
Good: Load berikutnya skip recompile = launch lebih cepet.
Bad: Ga ada.
Default: True.
dxvk.stateCacheMaxEntries=300
FORK
Apa: Limit entry cache.
Good: Cache kegedeen = file gede di disk + lookup lambat. Limit = trade-off.
Bad: Terlalu kecil = cache miss sering.
Default: 200-500 buat mobile. Upstream DXVK default 0 (unlimited) — kegedeen buat mobile.
Memory — chunk & VRAM
Section titled “Memory — chunk & VRAM”dxvk.maxChunkSize=64
FORK
Apa: Ukuran chunk memory allocation (MB).
Good: Chunk gede = lebih sedikit allocation call, performance naik.
Bad: Chunk gede = waste VRAM lebih besar per chunk. GPU lemah ga sanggup.
Default: Per chipset:
• Mali-G57 (G99): 32-64
• Mali-G610 (Dim 8020): 96-128
• Mali-G720+ / Adreno flagship: 128-256
d3d9.maxAvailableMemory=1536
UPSTREAM+VERIFIED
Apa: Spoof VRAM yang dilaporkan ke game (MB), khusus DX9.
Good: Upstream default 4096 (desktop GPU assumption). Mobile GPU shared RAM, ga punya 4GB VRAM dedicated → game over-allocate → crash atau swapping berat. Turunin = fix.
Bad: Terlalu kecil = game refuse start atau low texture. Terlalu besar = OOM.
Default: 768-1024 buat GPU lemah (Mali-G57), 1536 mid, 2048 flagship. SEMUA game DX9 di mobile butuh tweak ini.
Stability — surface creation & barriers
Section titled “Stability — surface creation & barriers”d3d9.deferSurfaceCreation=True
UPSTREAM+VERIFIED
Apa: Tunda pembuatan D3D9 window sampai render dimulai.
Good: Banyak game crash di intro karena window dibuat sebelum context ready. Tunda = fix black screen intro.
Bad: Di Payday 2 bikin glitch merah-cyan — JANGAN dipake buat Payday 2.
Default: True buat game DX9 dengan black screen intro. False buat Payday 2.
dxgi.deferSurfaceCreation=True
UPSTREAM+VERIFIED
Apa: Sama kayak d3d9, tapi buat DX10/11/DXGI.
Good: Fix black screen intro di DX11 game.
Bad: Ga ada signifikan.
Default: True buat DX11 game yang black screen di awal.
d3d11.relaxedBarriers=True
UPSTREAM+VERIFIED
Apa: Relax sinkronisasi barrier DX11.
Good: Barrier ketat = sinkronisasi GPU pipeline (slow). Relax = boost FPS.
Bad: Risk visual glitch di beberapa game (tearing dalam frame, ghosting).
Default: True buat game well-tested (cek per-game setting). False kalau ada glitch.
d3d11.relaxedGraphicsBarriers=True
UPSTREAM
Apa: Relaxed barriers khusus graphics pipeline (bukan compute). Subset relaxedBarriers, lebih aman.
Good: FPS boost tanpa risk compute pipeline.
Bad: Masih ada kemungkinan glitch di graphics pipeline tertentu.
Default: True. Cukup ini doang kalau ragu pake relaxedBarriers.
Frame — cap & latency
Section titled “Frame — cap & latency”dxvk.maxFrameRate=60
UPSTREAM+VERIFIED
Apa: Cap FPS di DXVK level. 0=unlimited.
Good: Game physics-bound (Skyrim, Fallout, Dark Souls) bug di >60fps — fisika jadi gila. Cap = fix.
Bad: Cap juga = lose smoothness kalau HP support 90/120Hz.
Default: 60 buat physics-bound game. 0 (unlimited) buat selainnya.
dxgi.maxFrameLatency=1
UPSTREAM+VERIFIED
Apa: Max frame buffered di CPU sebelum kirim ke GPU.
Good: Nilai kecil = input lag turun. Upstream default 3 = lag ke-rasa.
Bad: 1 kadang bikin pacing ga smooth (frame-time jitter).
Default: 1 buat competitive game. 2-3 buat single-player yang prioritaskan smoothness.
GPU — tiler & compiler thread
Section titled “GPU — tiler & compiler thread”dxvk.tilerMode=Auto
UPSTREAM
Apa: Optimasi pipeline buat Tile-Based Rendering GPU (mobile).
Good: Mali & Adreno itu tiler GPU — render per-tile, hemat bandwidth memory. Auto detect dengan tepat.
Bad: Jarang perlu di-override.
Default: Auto.
dxvk.numCompilerThreads=1
UPSTREAM+VERIFIED
Apa: Thread CPU buat kompilasi shader. Upstream default 0 (auto/half core).
Good: Terlalu banyak thread = CPU contention dengan game itu sendiri. 1-2 = sweet spot buat mobile.
Bad: 0 (all cores) di HP 8-core = thermal throttle gampang. 1 = compile lambat tapi aman.
Default: 0 buat Adreno SD8+ (ada thermal headroom). 1 buat MediaTek (thermal throttle gampang). 2-3 buat 8-core mid-range yang ada headroom.
DX9-specific
Section titled “DX9-specific”d3d9.shaderModel=3
UPSTREAM
Apa: Max shader model yang di-ekspos.
Good: Beberapa game lawas DX9 expect SM 2 atau 3. SM 3 = umum.
Bad: Setting ke 2 = game modern DX9 broken.
Default: 3.
d3d9.floatEmulation=Strict
UPSTREAM+VERIFIED
Apa: Emulasi floating point DX9. Value: Strict / Auto.
Good: GPU mobile FP precision beda dari NVIDIA/AMD desktop. Strict = ikutin spec, fix poligon rusak / geometry glitch.
Bad: Strict sedikit slower.
Default: Strict buat game DX9 lawas yang rusak. Auto buat selainnya.
dxvk.logLevel=none
UPSTREAM
Apa: Matikan log DXVK.
Good: Spam log = waste I/O, sama kayak WINEDEBUG tanpa -all.
Bad: Ga ada log buat debugging.
Default: none.
DXVK 2.x — feature toggle (Mali-specific)
Section titled “DXVK 2.x — feature toggle (Mali-specific)”dxvk.enableGraphicsPipelineLibrary=Auto
UPSTREAM
Apa: Pakai `VK_EXT_graphics_pipeline_library` (GPL) buat compile shader incremental, anti-stutter.
Good: GPL = compile shader tahap demi tahap, stutter berkurang drastis.
Bad: Mali Vulkan 1.0/1.1 sering ga punya GPL extension → DXVK 2.x crash atau hang.
Default: Auto (detect). Adreno modern (Turnip recent): Auto/True. Mali tanpa GPL: False → fallback sync compile, atau pake DXVK Sarek/async fork.
dxvk.tearFree=False
UPSTREAM
Apa: Kontrol tearing dengan VSync. True=mailbox (no tear), False=relaxed FIFO (tear tapi smooth).
Good: False buat mobile — mailbox biasanya bikin frame drop di Mali; relaxed FIFO lebih lancar.
Bad: False = tearing visible kalau ga VSync game-level.
Default: False buat mobile.
dxvk.lowerSinCos=Auto
UPSTREAM
Apa: Pakai approximasi sin/cos custom DXVK (lebih akurat) vs native GPU.
Good: Beberapa Mali/Adreno FP precision-nya jelek di sin/cos → math game (rotasi kamera, fisika) ngaco.
Bad: Auto detect driver bermasalah — ga perlu manual kecuali glitch.
Default: Auto. Force True kalau ada visual glitch berhubung trigonometri.
GPU spoofing — stealth
Section titled “GPU spoofing — stealth”dxgi.hideNvidiaGpu=Auto
UPSTREAM
Apa: Report Nvidia GPU sebagai AMD ke aplikasi.
Good: Game pake NVAPI atau check vendor → crash di non-Nvidia. Default Auto (DXVK aware NVAPI ga ada).
Bad: Ga ada — Mali/Adreno bukan Nvidia.
Default: Auto. Tetep True biar game ga panik check NVAPI.
dxgi.hideIntelGpu=Auto
UPSTREAM
Apa: Report Intel iGPU sebagai AMD.
Good: Game refuse run di iGPU karena performance assumption. d3d9.hideIntelGpu DEFAULT = True — game DX9 lawas otomatis ga liat Intel. Penting buat Adreno yang sering ke-detect aneh.
Bad: Ga ada.
Default: Auto.
dxgi.customDeviceId=(kosong)
UPSTREAM
Apa: Spoof PCI ID + name manual (4-digit hex). Pair dengan customVendorId + customDeviceDesc.
Good: Game whitelist GPU tertentu (e.g. "GTX 1060"). Spoof biar lolos check.
Bad: Salah ID = game tetep refuse atau crash.
Default: Kosong. Pakai cuma kalau game outright refuse run di mobile GPU. Wine/Winlator biasanya udah expose lewat winecfg/registry — DXVK level cuma reinforce.
DXVK 2.x — mobile baseline preset
Section titled “DXVK 2.x — mobile baseline preset”D3D8 knobs (DXVK 2.x — post-merge d8vk)
Section titled “D3D8 knobs (DXVK 2.x — post-merge d8vk)”DXVK 2.x udah built-in support D3D8 (d8vk merged). Knob D3D8 baru relevant cuma buat game DX8 lawas:
d3d8.scaleDref=0
UPSTREAM
Apa: Scale Dref shader instruction buat bit depth shadow map.
Good: Game DX8 awal (PS1.1) expect range `[0..2^bitDepth-1]`. Biasanya 24 buat shadow depth.
Bad: Salah value = shadow ngaco.
Default: 0. Coba 24 kalau shadow broken di game DX8.
d3d8.shadowPerspectiveDivide=False
UPSTREAM
Apa: Paksa perspective divide buat shadow map — emulasi behavior GeForce 3/4 lama.
Good: Fix shadow map di game DX8 era GF3/4 (2001-2003).
Bad: True di game modern = shadow broken.
Default: False. True cuma buat game DX8 era 2001-2003.
d3d8.forceVsDecl=(kosong)
UPSTREAM
Apa: Paksa vertex shader declaration (format "0:2,3:2,7:1" = float3 pos, normal, float2 UV).
Good: Fix game DX8 lawas yang corrupt geometry — vertex decl-nya ga jelas.
Bad: Salah format = geometry makin rusak.
Default: Kosong. Force decl spesifik per-game kalau vertex chaos.
Game-specific knobs (bukan global)
Section titled “Game-specific knobs (bukan global)”Knob di bawah ini bukan tweak global — pake cuma buat game spesifik yang ke-impact. Detail per-game lihat settings per-game.
d3d9.forceSamplerTypeSpecConstants=False
UPSTREAM
Apa: Fix sampler type assumption.
Good: Fix rendering broken di Halo: Combat Evolved & Spellforce.
Bad: True di game lain = broken.
Default: False. Set True khusus 2 game ini.
d3d9.extraFrontbuffer=False
UPSTREAM
Apa: Fix frame buffer.
Good: Fix Silent Hill 2 Enhanced Edition.
Bad: True di game lain = waste VRAM.
Default: False. Set True khusus SH2 EE.
d3d9.supportCubeDepthFormats=False
UPSTREAM
Apa: Expose cube depth format.
Good: SH2 EE butuh True.
Bad: Gothic 3 PATAH kalau True.
Default: False. True buat SH2 EE; False default (dan buat Gothic 3).
Debug-only knobs (jangan saranin casual)
Section titled “Debug-only knobs (jangan saranin casual)”dxvk.maxMemoryBudget=0
UPSTREAM+DEBUG
Apa: Override VRAM budget limit (MB).
Good: Debug-only — investigate memory allocation issue.
Bad: Performance crash kalo dipake casual. Jangan saranin user buat tweak ini.
Default: 0 (use driver default).
dxvk.zeroMappedMemory=False
UPSTREAM+DEBUG
Apa: Zero memory mapped saat dibebaskan.
Good: Last-resort buat debug memory corruption.
Bad: CPU overhead naik drastis.
Default: False. Jangan aktifkan kecuali debugging.
Hybrid DXVK pattern (advanced)
Section titled “Hybrid DXVK pattern (advanced)”Env override
Section titled “Env override”Bisa override knob lewat env tanpa edit file: DXVK_CONFIG_FILE=/path/to/dxvk.conf. Env var biasanya cuma override, ga replace — dxvk.conf di folder game masih jadi baseline.
Lanjut
Section titled “Lanjut”- VKD3D env — graphics translator DX12 (BUKAN DXVK)
- Wine env — WINEDLLOVERRIDES routing ke DXVK
- Box64 env — CPU translator (Winlator)
- FEXCore env — CPU translator (GameHub)