Nvidia GeForce 4090 GPU, 100 Million points, X-Fractal

Subscribers:
821
Published on ● Video Link: https://www.youtube.com/watch?v=ZRrEumzRjRI



Duration: 1:55
454 views
11


2024-06-16. Nvidia GeForce RTX 4090 Laptop GPU running on my Alienware m18 R2.

WHAT:

105,000,000 dots uploaded to the GPU with a vertex buffer, colors included. (I know bandwidth would be better to ignore the color, but it's also much more ugly and harder to discern.) I only update the camera position matrices each frame. Consider there is only 2.1 million pixels on a 1920x1080 screen -- and this is drawing 105 million points. That's a 50x overdraw even if every pixel were filled, and evenly so.

HARDWARE:

I bought my Alienware m18 R2 with the 4090 GPU the first day Dell made it available, on January 23, 2024. And this is what I decided to do to show it off. Yep. Dots.
- NVIDIA GeForce RTX 4090 16GB GDDR6 (laptop version)
- 14th Gen Intel Core i9 14900HX (24-Core, 36MB L3 Cache, up to 5.8GHz Max Turbo Frequency)
- (16 E-Cores, and 8 P-Cores hyperthreaded = 32 V-Cores total)
- 64 GB: 2 x 32 GB, DDR5, 5200 MT/s, non-ECC, dual-channel
- 18" FHD+ (1920 x 1200) 480Hz, 3ms, ComfortView Plus, NVIDIA G-SYNC + DDS, 100% DCI-P3, FHD IR Camera
- AlienFX RGB backlit Alienware CherryMX ultra low-profile mechanical keyboard
- 4 TB, M.2, PCIe NVMe, SSD

WHY?

This is all to answer: How many can a GPU do? :)

Back in the 90's, the demo scene would often ask the viewer "how many dots?" or state "X number of dots" and showcase a stunning display of rotating or dots in motion. HeartQuake by Iguana (1994) showed 24,000 dots in 320x200 x 256 VGA Mode-X. I even programmed my own highly optimize pixel writer to get 70,000+ at the VGA framerate (70 Hz) on a decently fast 486.

FRACTAL:

The fractal is my own design, which I call "X-Fractal". It's a 3x3 cube where any face of the cube is an X (5 dots). The center dot is missing; all other dots are the faces. The fractal is recursive, where each dot is the same shape. There are 7 levels of recursion of that, making for over 100,000,000 dots!

RECORDING ARTIFACTS:

For fidelity to avoid artifacts, I am rendering to a smaller pixel grid, then upscaling it. This has no impact on speed, but makes it easier to see the dots when there are less of them. It starts at 8x8 size and drops to 1x1 size, on a 1920x1080 resolution back buffer. The final video has been upscaled to 4K to help YouTube maintain fidelity again.

DEMONSTRATION:

Camera motion attempts to stay close to the action. I have some improvements here that I'll add for the next videos. But the quick jump is kind of cool (probably a lot smoother on my 480 Hz monitor than 60 Hz YouTube though!), so I left it in for this one. I'll likely add manual control via gamepad to show off the next dot-image.

Playlists:
--------------
- Xona System 8: https://youtube.com/watch?v=PqFQv60p-0E&list=PLjnbT4UISq0YwheLThIhm3LDxIkwpmKeb
- Nvidia 4090: https://youtube.com/watch?v=ZRrEumzRjRI&list=PLjnbT4UISq0ahlLnsM1EJlmy_sj8LruMW
- Voxel: https://youtube.com/watch?v=uadGU-stF-w&list=PLjnbT4UISq0bQF1g85tE9jTrKfEtdRYlY
- Ray Cast: https://youtube.com/watch?v=SkaPYZOKPQg&list=PLjnbT4UISq0YcFtRFjFQqK0g6ONNCtrvY
- Graph-All: https://youtube.com/watch?v=kLSc7bZW2Bs&list=PLjnbT4UISq0YLgynFSpLzml4BMC6TDZL2
- Scroll Shmup: https://youtube.com/watch?v=l9bIYkZepPo&list=PLjnbT4UISq0Y_7IAN_zUzxgZnfhXxo_0Q
- Road: https://youtube.com/watch?v=rA4g4VX7ys8&list=PLjnbT4UISq0bnfd1RC3M4PgTgkmhlkikV
- Arena Shmup: https://youtube.com/watch?v=VKjiuq437t0&list=PLjnbT4UISq0adw__Y9B2eXA0LL35TyORU
- Wave Function: https://youtube.com/watch?v=ngctVd9VK8I&list=PLjnbT4UISq0Y8vYnrSauHkBKgOBHXFFdf
- 3D Polygon: https://youtube.com/watch?v=0Qq_euAMP48&list=PLjnbT4UISq0YyjqBGG8Q34Kng5gqDmYrT
- GW-BASIC: https://youtube.com/watch?v=QMQJ7o8e-GI&list=PLjnbT4UISq0bMjb81xFBIWOLhBKFCVkuB

Websites:
---------------
- GitHub: https://github.com/JDoucette
- Blog: http://thefirstpixel.com
- Studio: http://xona.com







Tags:
gamedev
monogame
indie
development
graphics
engine
xona
firstpixel
pixel
pixelart
retro
coding
wolf3d
raycast
raycasting
software
custom
shader