Skip to content

Geometry buffer memory bandwidth requirements

Dale Weiler edited this page Sep 1, 2018 · 1 revision

HDR rendering pipeline (PBR properties)

Geometry buffer

10-bit HDR

Framebuffer

The geometry buffer layout

R11G11B10: (4 bytes)
	R11 albedo (diffuse) red
	G11 albedo (diffuse) green
	B10 albedo (diffuse) blue
R8G8B8A8: (4 bytes)
	R8 specular
	G8 metalness
	B8 tangent normal R
	A8 tangent normal G
D24S8: (4 bytes)
	D24 depth
	S8  stencil

Metrics

Metrics for the geometry buffer, specifically how much memory per frame and bandwidth needed for common resolutions and framerates.

total size per fragment: 12 B
total size for 720p:  (1280 x 720)  11059200 B (10.5 MiB) per frame
total size for 1080p: (1920 x 1080) 24883200 B (23.7 MiB) per frame
total size for 1440p: (2560 x 1440) 44236800 B (42.1 MiB) per frame
total size for 2160p: (3840 × 2160) 99532800 B (94.9 MiB) per frame

total bandwidth for 30fps (30 frames):
	720p:  331776000 B  (316.40 MiB/s)
	1080p: 746496000 B  (711.91 MiB/s)
	1440p: 1327104000 B (1.23 GiB/s)
	2160p: 2985984000 B (2.78 GiB/s)

total bandwidth for 60fps (60 frames):
	720p:  663552000 B (632.81 MiB/s)
	1080p: 1492992000 B (1.39 GiB/s)
	1440p: 2654208000 B (2.47 GiB/s)
	2160p: 5971968000 B (5.56 GiB/s)

total bandwidth for 144fps (144 frames):
	720p:  1592524800 B (1.48 GiB/s)
	1080p: 3583180800 B (3.33 GiB/s)
	1440p: 6370099200 B (5.93 GiB/s)
	2160p: 14332723200 B (13.34 GiB/s)

16-bit HDR

Framebuffer

The geometry buffer layout

R16G16B16A16: (8 bytes)
	R16 albedo (diffuse) red
	G16 albedo (diffuse) green
	B16 albedo (diffuse) blue
	A16 split into two 8-bit quanities
		A16[lo]: specular
		A16[hi]: metalness
R8G8: (2 bytes)
	R8 tangent normal R
	G8 tangent normal G
D24S8: (4 bytes)
	D24 depth
	S8  stencil

Metrics

Metrics for the geometry buffer, specifically how much memory per frame and bandwidth needed for common resolutions and framerates

total size per fragment: 14 B
total size for 720p:  (1280 x 720)  12902400 B (12.3 MiB) per frame
total size for 1080p: (1920 x 1080) 29030400 B (27.6 MiB) per frame
total size for 1440p: (2560 x 1440) 51609600 B (49.2 MiB) per frame
total size for 2160p: (3840 × 2160) 116121600 B (110.7 MiB) per frame

total bandwidth for 30fps (30 frames):
	720p:  387072000 B  (369.14 MiB/s)
	1080p: 870912000 B  (830.56 MiB/s)
	1440p: 1548288000 B (1.44 GiB/s)
	2160p: 3483648000 B (3.24 GiB/s)

total bandwidth for 60fps (60 frames):
	720p:  774144000 B (738.28 MiB/s)
	1080p: 1741824000 B (1.62 GiB/s)
	1440p: 3096576000 B (2.88 GiB/s)
	2160p: 6967296000 B (6.48 GiB/s)

total bandwidth for 144fps (144 frames):
	720p:  1857945600 B (1.73 GiB/s)
	1080p: 4180377600 B (3.89 GiB/s)
	1440p: 7431782400 B (6.92 GiB/s)
	2160p: 16721510400 B (15.57 GiB/s)

Differences in 10-bit and 16-bit HDR

This is the additional amount of memory bandwidth needed per second when going from 10-bit HDR to 16-bit HDR for common resolutions and framerates.

total additional bandwidth needed for 16-bit over 10-bit @ 30fps
	720p:  55296000 B (52.73 MiB/s)
	1080p: 124416000 B (118.65 MiB/s)
	1440p: 221184000 B (210.93 MiB/s)
	2160p: 497664000 B (474.60 MiB/s)

total additional bandwidth needed for 16-bit over 10-bit @ 60fps
	720p:  110592000 B (105.46 MiB/s)
	1080p: 248832000 B (237.30 MiB/s)
	1440p: 442368000 B (421.87 MiB/s)
	2160p: 995328000 B (949.21 MiB/s)

total additional bandwidth needed for 16-bit over 10-bit @ 144fps
	720p:  265420800 B (253.12 MiB/s)
	1080p: 597196800 B (569.53 MiB/s)
	1440p: 1061683200 B (1012.50 MiB/s)
	2160p: 2388787200 B (2.22 GiB/s)