Skip to content

Instantly share code, notes, and snippets.

@pixelmager
pixelmager / packing_floats.md
Last active October 23, 2024 13:01
packing floats
//note: we are writing 1bit boolean+8b fallback into a 16b float rendertarget (we can use 1 sign bit 10b mantissa... exponent is complexicated)
//      f32: 1S 8E 23M -> f16: 1S 5E 10M
//      f32: SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
//      f16: SEEEEEMMMMMMMMM
//      conversion: sign remains, exponent is converted, mantissa is truncated
//      (so we need to shift 13b to get into the valid 10b for float16 (assuming truncation))
//      f32: SxxxxxxxxMMMMMMMMMMxxxxxxxxxxxxx (valid f32 values to pack into)
//      f32: SxxxxxxxxMMMMMMMMMMxxxxxxxxxxxxx (packed f16 values read into f32)
//

code

Presentations from GDC 2022

MAIN GDC

AMD

https://gpuopen.com/events/gdc-2022/

  • FidelityFX, Super Resolution 2.0
  • A guided tour of Blackreef: rendering technologies in Deathloop
  • Performant Reflective Beauty, Hybrid Raytracing with Far Cry 6

From time to time I receive questions on the depth aware upsampling mentioned in the INSIDE-rendering presentation: https://loopit.dk/rendering_inside.pdf#page=39

noisy blur

The goal of this technique is to take the texture-output from a half-resolution pass, containing the results of sampling volumetric fog - and scale it up to full resolution. This presents two challenges:

  • Making sure samples from the low-resolution buffer, do not spill on top of foreground objects in the high-resolution buffer
  • Making sure the samples in the volumetric fog can be properly accumulated by TAA after upsampling

doom3 (bfg) https://github.com/id-Software/DOOM-3-BFG
lumberyard https://github.com/aws/lumberyard
filament https://github.com/google/filament
nvidia falcor https://github.com/nvidiagameworks/falcor
godot https://github.com/godotengine/godot
uchronia blender game engine https://github.com/UPBGE/upbge
-
@pixelmager
pixelmager / hash.md
Created March 26, 2020 13:31
glsl hash testing

just gathering the comments from https://www.shadertoy.com/view/WttXWX in a place I can actually find, which also has more markdown :)

OK, results are in: as 32 bit RNGs, the 3-round Wellons function here is marked as weak in just 2 tests, with no failures. The 2-round Wellons function has 4 weaks and 1 failure, the murmurhash derivative only slightly worse with 5 weaks and 1 failure. Jenkins and Wang have many failures (Wang fails almost everything) so aren't really in the running.

http://webhome.phy.duke.edu/~rgb/General/dieharder.php http://simul.iro.umontreal.ca/testu01/guideshorttestu01.pdf p 88-157 https://github.com/umontreal-simul/latticetester

Individual tests (just the negative results from the 50 or so tests):