3 ms·
It’s easy to think this sort of thing requires an incredibly level of knowledge but it’s often more about dedication and a little lateral thinking. You need a b
by aardvark179 6y ago
It’s easy to think this sort of thing requires an incredibly level of knowledge but it’s often more about dedication and a little lateral thinking. You need a broad understanding of the process of putting something on screen, the ability to construct a program that does something, some way to observe the result, and the willingness to experiment.
Back in the 80s lots of kids that age wrote computer games and often found novel ways to use the hardware because even though video controllers might not be fully documented you still knew where their control registers were in memory and could just try altering the values in them.
Now, modern graphics hardware is more complex and controlled by things like command buffers and shaders, but you can apply similar ideas, and you’ve probably got easier tools for examining the state of your process. Write a program that does a simple thing and dump its state. Do a slightly different thing and compare the states. When you think you understand things either change your program and see if you’re correct or use a debugger to alter the state at runtime and see if you can change the visible result.
- astrange 6y agoThe M1 is actually especially forgiving about this, because it's good about isolating errors to your process, i.e. if you do something wrong only your test program will crash. For many GPUs, if you feed them garbage the whole machine panics.