-
There are two main parts of Modern Computer Graphics i have found so far:
-
WTF is Gallium (computer graphics) again????????????
-
going deep again for linux enable unused monitor output - virtual monitor … https://discord.com/channels/1145943673826181174/1160658330453282859/1391078562546581634
- next to understand… how do those BatchBuffers work… do they exist everywhere or just on i915 (intel-gpu-driver)…
- also where are the compilers… can i pkg them in a way, where you can play around with them???
- next to understand… how do those BatchBuffers work… do they exist everywhere or just on i915 (intel-gpu-driver)…
-
next thing to research for me:
- opengl internals, how do we go from func like “draw a line” to info being transmitted to the gpu on how to fill a pixel buffer, what even is this info (vertexes????), how does opengl use shaders???
- see: OpenGL and Render Calls
- how to mmap a buffer that is on a device connected via pcie, usb, spi, …
- see: Memory Mapping
- finding a “Vulcan Loader” … Running cogentcore on Nix
- opengl internals, how do we go from func like “draw a line” to info being transmitted to the gpu on how to fill a pixel buffer, what even is this info (vertexes????), how does opengl use shaders???
things
- Tessellation: https://youtu.be/YGhfy3om9Ok?si=kf6YWfci-NwznKtQ&t=530
- “do stuff like: take this image/buffer, that was used in OpenGL and transition it be used for video encoding” to then send it out a network Socket for streaming to another host
- https://www.youtube.com/live/4PflCyiULO4?si=YewahDingTO7XyUF&t=27831
- that sounds an awful amount like the reason for Wayland Screenshot/Screenshare problems
- Arbitration
- this guy knows his stuff: https://www.youtube.com/watch?v=6Ov9GhEV3eE
- and just like me in my area talks about ppl not knowing, what’s possible
- Rendering Text
- with my 4k monitor conneted the Xserver (of host main at https://github.com/c2vi/nixos/commit/cfd9bfccbd25099d87f92d4c467e815f0b099dd5) is at a constant 20% CPU on my hp elitebook laptop with i5-1135G7
- i think smth is not fully using the GPU here…
- Mesa (computer graphics)
- “people use SDL 2 as a glorified OpenGL initializer… and then just uses OpenGL” - Tscoding daily … https://youtu.be/PuE98lipGU8?si=jba3NVdc-ML0t648&t=95
- 150 lines for a basic triangle with SDL_GPU api: https://youtu.be/PuE98lipGU8?si=nC5sSamowRpF16yS&t=4990
- for moderns graphics apis you have: Command Chains (computer graphics) and Swap Buffers (computer graphics) … https://youtu.be/PuE98lipGU8?si=cv8h7R980EmG4m2D&t=5710
- Running Desktop Games on Android…
- there are IOCTL = Input Output Controls like DRM_IOCTL_I915_GEM_EXECBUFFER2… meaning the userspace (OpenGL, Vulkan (graphics)… in the Mesa (computer graphics) codebase) must be aware of the different gpu types available… and have seperate drivers for that…
- the intel Vulkan driver is in Mesa (computer graphics)
- the AMD = Advanced Micro Devices driver is here: https://github.com/GPUOpen-Drivers/AMDVLK
- this uses the repo (AOSP) tool, to actually download the code from multiple repos…
some useful resources
- https://www.youtube.com/watch?v=b8OY4VtYx1s
- https://www.youtube.com/watch?v=g5hw5Nisd8k
- raw doging linux graphics
- basic guide to debugging OpenGL: https://youtu.be/BnXnUjPku84?si=5QCF51TriIL0mkMp
- quick extensible OpenGL renderer: https://youtu.be/NPnQF4yABwg?si=im9A5wDvZperWfCW
- the Linux GPU driver docs are actually quite good: https://docs.kernel.org/gpu/