Kharzette
Watcher of Overs
- 5,353
- 4,102
A little assembly does help! I wouldn't say for writing entire programs, but little bits and pieces are a good exercise. Branching and loads and stores and how the various calling conventions work.
How many times have you blown up something and landed in the debugger with no source? I can look at that and usually tell what it is doing at a glance.
As for how-has-this-helped-you-lately, I actually found a unity shader compiler bug just a year or two or three ago. That wasn't "at a glance" though, that was days of pain dual gpu debugging with the nsight tools. I had never seen the shader assembly I was looking at before, but once you know x86 you can usually figure out what you are seeing.
Try some fpu stuff too! It's wacky and different. Numbers are pushed onto a stack and can vary greatly in precision based on global control word settings. When I saw how all that worked I was amazed that anything using floating point doesn't just randomly break.
How many times have you blown up something and landed in the debugger with no source? I can look at that and usually tell what it is doing at a glance.
As for how-has-this-helped-you-lately, I actually found a unity shader compiler bug just a year or two or three ago. That wasn't "at a glance" though, that was days of pain dual gpu debugging with the nsight tools. I had never seen the shader assembly I was looking at before, but once you know x86 you can usually figure out what you are seeing.
Try some fpu stuff too! It's wacky and different. Numbers are pushed onto a stack and can vary greatly in precision based on global control word settings. When I saw how all that worked I was amazed that anything using floating point doesn't just randomly break.