Independent technical portfolio

Graphics testing, benchmarking & performance analysis support.

I work on repeatable test runs, matched captures and frame-time measurements. I'd like to help Hardware Unboxed with the hands-on side of testing and benchmarking, so comparisons are easier to repeat and results are easier to analyze.

Durango, Mexico English & Spanish

From the workbench
Test environmentPC, console & VR
RTX 50909800X3D · 64 GB RAM
RTX 5070 / 4070Additional PC coverage
PS5 Pro · Switch 2Switch · PSVR2 · 4K/120 OLED
01 / Visual regressionInvestigation

The Witcher 3 From a HairWorks regression to repeatable captures.

After updating from patch 5.00b, I noticed that HairWorks hair looked worse indoors, with more visible shimmering. I first saw it in 5.00c, and it was still there in 5.01. I wanted to understand what had changed and whether I could recover the earlier appearance.

Comparing the builds helped me narrow the change down to the hair-rendering pipeline. I then tested a hybrid configuration that combined the earlier rendering components with the newer game data. In the scenes I checked, it brought back the appearance I had seen in 5.00b.

Getting a closely matched pair of screenshots felt almost impossible at first. To make these comparisons easier, I developed a mod that lets me run multiple instances of the game, hold Geralt still and save both his position and the camera setup. I can then load that setup in the other instance, matching Geralt's position and the camera angle across builds.

HairWorks · build comparisonA / B
Geralt indoors with HairWorks in patch 5.01.
Geralt in the matching indoor view with HairWorks in patch 5.00b.
5.00b 5.01

Drag the image divider, or focus the image and use the arrow keys.

Original in-game captures, matched with the mod. Still images can't show temporal shimmering, and these checks aren't a game-wide validation of the hybrid configuration. 5.00b full resolution · 5.01 full resolution.

Recording and replaying benchmark routes

I also built a mod that records character movement, camera motion and pauses, then replays the sequence automatically. Saved routes stay available between game sessions, so I can run the same sequence under different settings without recreating every movement by hand.

In this video, I record a route and replay it to compare path tracing, path tracing with DLSS 5, and rasterized rendering.

Comparable captures
Matching Geralt's position and the camera across builds makes it easier to see what actually changed, instead of lining up shots by eye.
Repeatable test sequences
Replaying the same route for each configuration keeps the movement consistent between runs, which makes visual and performance comparisons simpler to set up and repeat.
What they are, and aren't
These are practical tools I built for my own testing, not a certified lab methodology. They reduce the variation that comes from manual movement, but results still need checking across repeated runs.
The Witcher 3 · Route recording and replay

Open the full video.

02 / Frame-time analysisIn development

GameStutterLab Putting a hitch in context.

I started GameStutterLab because of the stutters I kept running into while playing PC games. I wanted to understand what was causing them, and to spend less time sorting through data before finding something worth investigating.

The tool lines up frame times with available CPU, GPU, memory and disk activity, so I can see what else was happening around a hitch. The idea is to make that first pass through a capture quicker and help narrow down what to test next.

It's still in development, and I'm checking its suggestions against real gameplay captures.

Correlation, not proof
Activity that coincides with a stutter is a useful lead, but it doesn't establish the cause on its own. In the capture shown here, a quicksave lined up with a 98.79 ms frame and nearby disk activity; the exact cause is still unconfirmed.
Where it fits
Deciding which part of a capture deserves a closer look, and which variable to isolate in the next test run.
Cyberpunk 2077 · Quicksave hitchRecorded capture
PresentMon capture · 355 frames around the quicksave hitch
Frame time 16.67 ms reference
Frame921 · capture frame
Frame time98.79 ms
ObservationQuicksave hitch · 5.96× local baseline

A quicksave coincided with a 98.79 ms frame, about 6× the local baseline of 16.57 ms, and nearby disk activity. The exact cause remains unconfirmed. Download capture CSV.

03 / GPU benchmarkingMeasured results

Silicon Tuner Comparing performance and power use.

I wanted to see how much GPU power consumption I could reduce while keeping similar gaming performance. I developed Silicon Tuner and tested it on my RTX 5090 and RTX 5070, comparing stock settings with tuned profiles.

For the RTX 5070 comparison shown here, I used Cyberpunk 2077's built-in benchmark with the same game settings for each profile, recording frame rate, GPU power draw and temperature. In my runs, the Balanced profile averaged 160.3 W against 230.7 W at stock, 30.5% less power, while averaging 50 FPS compared with 49 FPS at stock.

That's one card in one game's built-in benchmark. Results will vary with the GPU, workload and settings, so I treat it as a measured example rather than a general rule.

Watch the benchmark comparison · 1:07
Cyberpunk 2077 · RTX 5070Recorded averages
−30.5%GPU power · Balanced vs. stock
50 FPSBalanced average · 49 FPS at stock
Recorded measurements from my RTX 5070 tests in Cyberpunk 2077.
ProfileGPU powerGPU temp.Avg. FPS
Stock230.7 W79.4 °C49
Balanced160.3 W69.6 °C50
Efficiency131.3 W65.4 °C46

Recorded averages from my RTX 5070 runs using Cyberpunk 2077's built-in benchmark, with the same game settings for each profile. They show the power/performance trade-off on this card and workload, not a guaranteed result for other GPUs or games.

Seeing the trade-off in motion

I also recorded the profiles on my RTX 5090, in Cyberpunk 2077 and Resident Evil Requiem. Each video shows Stock, Balanced and Efficiency side by side, with live power, temperature, clock and frame-rate overlays.

These are separate tests from the RTX 5070 results above, and the power savings shown on the 5090 are smaller. That's a big part of why I treat each result as specific to the card and game it was measured on.

Silicon Tuner · RTX 5090 recordings

Open the full videos: Cyberpunk 2077 · 1:06 · Resident Evil Requiem · 0:50. The overlays describe these recordings only; they aren't a guarantee of savings, identical frame rates or stability in other games.

Other projects

04 / Capture toolsPublished mod

RE9 FreeCam Taking a closer look at the scene.

While playing Resident Evil Requiem, I wanted a closer look at character expressions and details the normal camera left out of view, so I built RE9 FreeCam.

The hardest part was keeping control during cutscenes, when the game kept pulling the camera back to its scripted position. I also added field-of-view controls and options to disable depth of field and lens flare for closer inspection.

View the mod on Nexus Mods
In-engine camera inspectionOriginal captures
A supplied RE9 scene capture from a free-camera perspective.Open full resolution
RE9 FreeCam CED release image. Two characters facing each other in a warmly lit interior. A close view of character expressions and hair.
Available on Nexus Mods

FreeCam CED

Explore the mod and its camera controls.

Captured with RE9 FreeCam. Open any image to see it in full resolution.

05 / Graphics researchIn development

The Sims 2 Exploring path tracing in spaces I could build myself.

I've been adapting RTX Remix to work with The Sims 2, comparing path-traced lighting, shadows, reflections and materials with the original rasterized rendering. An important part of that work is telling expected differences apart from things that are rendering incorrectly.

Along the way, I've investigated distorted characters, missing textures and incorrectly rendered glass: reproducing each issue, comparing it with the original game, then testing possible fixes and checking whether they introduce other problems.

The Sims 2 · Rasterization vs. path tracingA / B
The Sims 2 sofa scene with path tracing enabled in RTX Remix.
The same sofa scene with ray tracing disabled in RTX Remix.
Rasterized Path traced

Drag the image divider, or focus the image and use the arrow keys.

Both captures use the same crop to focus on the scene. Rasterized original · Path-traced original.

How I work

Tests that can be repeated and checked.

Most of my projects start with something I notice while playing: a visual change, a hitch or a result that doesn't look right. From there, I try to set up a comparison I can repeat, measure what changes and keep track of what I can actually confirm.

When existing tools don't quite fit the task, I look for a practical workaround. Sometimes that means learning a new tool, adapting an existing one or building something myself. The goal is to make testing and capture work more reliable, more repeatable and less time-consuming.

01

Repeatable testing

I keep settings, scenes and test sequences consistent between runs, and replay recorded routes where I can, so a result can be run again and compared.

02

Matched captures

I match camera positions, scene conditions and graphics settings as closely as possible, so the difference being compared is easier to see.

03

Performance measurements

I record frame rates and frame times alongside power draw and temperature where relevant. If a result looks inconsistent, I revisit the test before drawing a conclusion.

04

Investigating unexpected results

When something doesn't add up, I compare builds or configurations, reproduce the issue and test possible explanations. I also check whether a change fixes one problem while introducing another.

05

Organizing findings for reproducibility

I keep captures, measurements, settings and test notes together, so someone else can understand the setup, reproduce the result and see what's confirmed and what still needs checking.

Available for remote, project-based work

I'd like to help with your testing.

I'd like to support Hardware Unboxed with the practical side of testing: running benchmark passes, preparing matched captures, recording performance data and looking into results that don't line up.

I'm based in Mexico, work in English and Spanish, and I'm open to freelance or project-based work. I'm happy to adapt to your existing tools and workflow.

If it's useful, I'd be glad to start with a small benchmark or capture task, so you can see how I work before committing to anything larger.

cedtoro@gmail.com
Carlos DíazDurango, Mexico · English / Spanish View CV PDF