Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion DEV_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

**vsg branch: 5 new Adreno performance features on top of vegas.**

> **⚠️ Unity Compatibility:** This build is stable for non-Unity games (Unreal Engine, Source, etc.) but is currently unstable / non-functional for Unity-based titles on Adreno.

---

## Build
Expand Down Expand Up @@ -29,7 +31,7 @@

---

# Vegasa Features (Original StarEngine)
# Vegas Features (Original StarEngine)

25 files changed (7 new, 18 modified), ~1850 lines delta over upstream DXVK.

Expand Down Expand Up @@ -211,6 +213,18 @@ All vsg features use a consistent pattern in `src/dxvk/dxvk_star_engine.cpp`:

---

## Diagnostic & Stability Improvements

| Improvement | Description |
|-------------|-------------|
| Adreno detection ordering | `src/dxvk/dxvk_device_info.cpp`, `src/dxvk/dxvk_device_info.h`, `src/dxvk/dxvk_adapter.h` — Adreno is now detected before persona masking, ensuring all Adreno-specific memory and optimization workarounds activate on real hardware |
| Persona gating | `src/dxgi/dxgi_adapter.cpp`, `src/d3d9/d3d9_adapter.cpp` — GPU identity masking applies only at the API query layer; the Vulkan driver sees the real Adreno, fixing memory type selection and host-visible heap access |
| Memory allocator diagnostics | `src/dxvk/dxvk_memory.cpp` — Failed `vkAllocateMemory` calls now log the returned `VkResult`, surfacing driver-level OOM errors in the output |
| Unity compatibility gate | `src/dxvk/dxvk_star_engine.cpp` — VRAM inflation is deferred for Unity titles to avoid memory pressure on shared-memory systems |
| KGSL allocation cap | `src/dxvk/dxvk_memory.cpp` — Maximum allocation chunk size capped at 64 MiB on Adreno KGSL drivers to prevent driver-level allocation failures |

---

# Key Gotchas

- **`VK_IMG_filter_cubic` not available on Turnip (Adreno 610).** HAAE cubic filter removed from `dxvk_context.cpp`. Do not re-enable without confirmation.
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

> **⚠️ Important:** This is a downstream fork. All improvements specific to this build are additive and fully config-gated — stock DXVK behavior is preserved when no StarEngine config options are set.

> **⚠️ Unity Compatibility:** This build is stable for non-Unity games (Unreal Engine, Source, etc.) but is currently unstable / non-functional for Unity-based titles on Adreno.

---

## StarEngine Features
Expand Down Expand Up @@ -91,6 +93,16 @@ When `dxvk.starPersona` is set (or auto-detected), the engine masks the GPU iden
| STUTTERING | Orange | Delta > 0.75× target |
| OVERHEATING | Red | Load ≥ 95% + frame time > 3× target |

## Diagnostic & Stability Improvements

| Improvement | Description |
|-------------|-------------|
| Adreno detection ordering | Adreno is now detected before persona masking, ensuring all Adreno-specific memory and optimization workarounds activate on real hardware |
| Persona gating | GPU identity masking applies only at the API query layer — the Vulkan driver sees the real Adreno, fixing memory type selection and host-visible heap access |
| Memory allocator diagnostics | Failed `vkAllocateMemory` calls now log the returned `VkResult`, surfacing driver-level OOM errors in the output |
| Unity compatibility gate | VRAM inflation is deferred for Unity titles to avoid memory pressure on shared-memory systems |
| KGSL allocation cap | Maximum allocation chunk size capped at 64 MiB on Adreno KGSL drivers to prevent driver-level allocation failures |

---

## Upstream README
Expand Down
Loading