Hardware

Born for the AMD BC-250.

A semi-custom AMD Zen 2 + RDNA 2 APU with 16 GB of GDDR6, unleashed on Linux.

6× Zen 2
CPU "Oberon"
RDNA 2
40 CU · gfx1013
~11 TFLOPS
FP32 · Vulkan
16 GB
GDDR6 UMA
Specifications

CPU — 6× Zen 2

"Oberon", 6 cores / 12 threads, up to 4.0 GHz all-core overclocked (~1206 mV, validated).

GPU — RDNA 2

"Cyan Skillfish" (gfx1013), up to 40 unlockable Compute Units.

Memory — 16 GB GDDR6

Shared (UMA) between CPU and GPU; on Linux the GTT extends the video memory.

Compute — ~11 TFLOPS

FP32 at 40 CU / 2000 MHz (vkpeak), with Vulkan acceleration.

⚙️ Tuning

Overclock & undervolt — hand-characterized

V/F curves measured via the SMU on the “Oberon” APU, with real thermal validation. All driveable from the Tuner with ready presets.

4.0 GHz
CPU 6-core all-core · ~1206 mV · 120s-validated at 83 °C
−194 mV
CPU undervolt at 3.7 GHz (1206→1012 mV) with no loss
2230 MHz
GPU · 40 CU · dedicated SMU governor
85 °C
CPU+GPU thermal cap: throttles the clock, never breaks

For every frequency we found the lowest stable voltage by reading the real VID from the SMU and validating with 120s stress. The Stock · Performance · Turbo · Crazy presets apply these profiles in one click; a thermal-guard keeps everything within 85 °C. Full details in the docs.

Benchmark

Measured performance

vkpeak FP32-scalar (GFLOPS) on the same BC-250, before and after SkillFishOS.

Baseline — XanMod, 24 CU
6141
tkg + governor, 24 CU
6868
SkillFishOS — tkg + governor + 40 CU
11.329
GFLOPS
1.84×
FP32 vs baseline
11329
GFLOPS FP32 (≈11.3 TFLOPS)
22685
GFLOPS FP16 (vec4)
45495
GIOPS int8 (dot-product)

vkpeak (Vulkan compute) measurements on the same board, from cold and idle. With the 40 CUs active the GPU delivers 1.84× over the starting system. At idle the governor drops to 350 MHz; edge ~54 °C after the compute load.

Source: project measurements on real hardware (vkpeak). Details in GPU, governor and overclock · kernel.

🎮 Real-world load — Black Myth: Wukong (1080p)

2230 MHz
GPU (safe-point)
~84 °C
GPU edge (max 81)
~150 W
Power draw (peak 182 W)
3.9 GHz
CPU (overclock)
4.5 GB
VRAM in use
auto
Fan

~4 minutes of in-game telemetry: CPU and GPU hold full overclock within the 85 °C thermal cap — governor, OC and thermal-guard handle a demanding AAA title. (Wukong is CPU/draw-call bound: what matters here is stability under load, not resolution.)

📸 Benchmark

Real screenshots — captured on our own hardware

No renders, no mockups: actual screen captures taken during the benchmarks, on our own BC-250 running SkillFishOS. Tap an image to enlarge.

🎮 Gaming

Game benchmarks — real results

Measured on the BC-250 with SkillFishOS, at 1080p. A ~€50 board playing in the Radeon RX 6600 class.

112 FPS
Black Myth: Wukong · 1080p average
2865
Unigine Heaven · 1080p Ultra/Extreme · 8× AA · 113 FPS
12,938
Unigine Superposition · 1080p High · (5513 in Extreme)

⚡ Same hardware, +34% just by changing OS

Superposition 1080p Extreme, on the same BC-250: SkillFishOS vs another distro at stock clocks.

SkillFishOS — GPU 2230 · CPU 3900
5513
Other distro (Bazzite) — GPU 2100 · CPU 3436
4102
Superposition score · Extreme

Unlocked 40 CUs, a governor pushing the GPU to 2230 MHz and CPU overclock+undervolt: +34% real performance from the very same chip. Source: the official Unigine leaderboard.

🏆 Head-to-head with desktop Radeons

Superposition 1080p High: the BC-250 with SkillFishOS matches a RX 6600/6600 XT costing €200+.

SkillFishOS — BC-250 (~€50)
12.938
Radeon RX 6600 / 6600 XT
12.454
Radeon RX 6700 / 6750 XT
15.806
Superposition score · High

Raw compute of an RX 6700 (~11.3 TFLOPS), gaming performance of an RX 6600/6600 XT — on a ~€50 board. A semi-custom, console-class RDNA 2 die (“Oberon”, gfx1013), unleashed on Linux.

Hardware flaws (and how we fix them)

Broken DisplayPort HPD

Monitor detection doesn't work → dedicated daemon + video=DP-1:e kernel parameter.

Broken suspend

The board won't wake up → all sleep states permanently disabled.

Unstable IOMMU

Must never be enabled → the system always boots without IOMMU.

Marginal cooling

Edge sensor only, no VRAM sensor → an 85 °C thermal-guard always active.

Read more in the documentation →