I used texture units to speed up math on the GPU

Nov 18, 2025

5-10 min

When I first got into graphics, I liked to prototype effects using only shader code, without textures. It was a fun challenge during long train rides while I was studying. I had about three hours and no internet, so it was pushing my creativity.

Now that I have stronger GPU optimization skills, I went back to one of those old math-only shaders. I wanted to see if I could make it faster by shifting part of the work to the texturing units.

So, based on this experience:
💡 Compute and texturing run at the same time on the GPU. If texture fetches hit the cache often enough, they overlap with arithmetic and increase overall GPU throughput.

I tried this idea:
✔️ Start with a shader that does everything using math.
✔️ Move some of that math into texture lookups.
✔️ Balance the load between compute and texturing to find the best speed.
✔️ Ensure the shader logic stays mostly the same.

This is a case study I created in a form of slides, I hope it's good enough to read!



Related stuff

How do I profile GPUs - article about GPU profiling basics


___

This was originally a linkedin post

You can like and comment here: <note to myelf: remember to update the link>


Hungry for more?

I share rendering and optimization insights every week.

Hungry for more?

I share rendering and optimization insights every week.

Hungry for more?

I share rendering and optimization insights every week.

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels

I write expert content on optimizing Unity games, customizing rendering pipelines, and enhancing the Unity Editor.

Copyright © 2025 Jan Mróz | Procedural Pixels