Hi there 👋

  • I’m Kexuan Zhang, a 🎮game/🫖graphics programmer, and also a PhD student in Virtual Reality & High-Performance Graphics.
  • This is my personal blog where I share my thoughts on game/graphics programming, VR techniques, and more.
  • 👉 Learn more about me 👈

TrackPoint is Dead after Resuming?

If you are using ThinkPad 51nb’s X210 with Arch Linux and Hyprland, you might have the problem that the TrackPoint is not working after resuming from sleeping. Why the TrackPoint doesn’t work after resuming It’s the firmware problem. The TrackPoint won’t properly wake up from sleep mode. Workaround Temporally, you can use two lines of commands to restart the TrackPoint: 1 2 sudo modprobe -r psmouse sudo modprobe psmouse resetafter=0 If you don’t want to type those commands before closing the lid and after opening the lid, you can write a system daemon script: ...

November 18, 2025 · 1 min · 171 words · Kexuan Zhang

Considering Transfering to Nvidia Render Interface (NRI)

I recently found NRI and it’s really great. Unlike NVRHI, NRI has a cleaner design and modern Vulkan/DX12-ish low-level APIs. It also supports many modern features with official support, such as DLSS. As a PhD student specialising in VR & HPG, NRI seems to be the best RHI for my needs. NRI GitHub link: https://github.com/NVIDIA-RTX/NRI NRI is a modular, extensible, low-level abstract rendering interface that was designed to support all low-level features of D3D12 and Vulkan GAPIs. At the same time, it aims to simplify usage and reduce the amount of code needed (especially compared with VK). ...

November 15, 2025 · 3 min · 492 words · Kexuan Zhang

Depth Pre-Pass and Early-Z

We may have heard of these keywords: Depth Pre-Pass and Early-Z. But what situations do we actually need them for? Overdraw When rendering a complex 3D scene, multiple fragments may map to the same pixel on the screen — for example, when one object is in front of another. The GPU will still execute the fragment shader for each layer of geometry, even though only the nearest fragment is visible in the final image. This redundant work is called overdraw. ...

November 8, 2025 · 4 min · 785 words · Kexuan Zhang

How to Check if Godot Is Paused at Breakpoints

How to check if Godot is paused at breakpoints in a tricky way?

November 8, 2025 · 1 min · 194 words · Kexuan Zhang

Why Hugo

Why Hugo? Why not VuePress / Hexo?

November 8, 2025 · 1 min · 72 words · Kexuan Zhang

Hugo PaperMod Customization

How to customize Hugo with theme PaperMod? Here are the instructions.

November 4, 2025 · 1 min · 173 words · Kexuan Zhang

Essential Test

Essential test for blog post writting.

November 4, 2025 · 2 min · 231 words · Kexuan Zhang