111
Ingo Esser, Robert Menzel, 3/20/2019 UPDATES ON PROFESSIONAL VR & TURING VRWORKS

UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

Ingo Esser, Robert Menzel, 3/20/2019

UPDATES ON PROFESSIONAL VR & TURING VRWORKS

Page 2: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

2

AGENDA

Motivation

VR SLI – Multi-GPU Rendering

Multi-View Rendering (new in Turing)

Variable Rate Shading (new in Turing)

Page 3: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

3

MOTIVATION

Page 4: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

4

GRAPHICS PIPELINEVR Workloads

2000

2200

2000

2160

3840

Page 5: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

5

GRAPHICS PIPELINEVR Workloads

2000

2200

2000

249M Pix/sN vertices

30 Hz(4K display)

792M Pix/s2N vertices

90 Hz(Vive Pro /w

oversampling)

2160

3840

Page 6: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

6

GRAPHICS PIPELINEVR Workloads

2000

2200

2000

249M Pix/sN vertices

30 Hz(4K display)

792M Pix/s2N vertices

90 Hz(Vive Pro /w

oversampling)

2160

3840

3x

6xGeometric

Pipeline

Rasterization

Fragment Shader

Application6x

Driver6x

Page 7: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

7

GRAPHICS PIPELINEVR Workloads

2000

2200

2000

249M Pix/sN vertices

30 Hz(4K display)

792M Pix/s2N vertices

90 Hz(Vive Pro /w

oversampling)

2160

3840

3x

6xGeometric

Pipeline

Rasterization

Fragment Shader

Application6x

Driver6x

VR SLI

VRS

bMVR

Page 8: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

9

HMD RESOLUTIONS2013 to 2018

Pimax 8K7680x2160

Pimax 5K5120x1440Vive Pro

2880x1600

Rift / Vive2160x1200

DK11280x800

640x800per eye

Page 9: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

10

NVIDIA VRWORKSComprehensive SDK for VR Developers

GRAPHICS SIMULATION

VIDEO

PROFESSIONALHEADSET

Page 10: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

11

VR SLISCALING & NVLINK

Page 11: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

12

VR SLICrash course

Geometry

Materials

Left view data

Right view data

L

R

R

Page 12: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

13

VR SLIScaling 1 vs 2 GPUs

App Left App Right

GPU L GPU R GPU L

GPU R Copy

10ms

𝑆𝑐𝑎𝑙𝑖𝑛𝑔 𝑓𝑎𝑐𝑡𝑜𝑟 𝑓 =2 ∗ (𝑡 − 𝑐)

𝑡

𝑓𝑟𝑎𝑚𝑒 𝑡𝑖𝑚𝑒 𝑡 = 10𝑚𝑠 𝑐𝑜𝑝𝑦 𝑡𝑖𝑚𝑒 𝑐 =𝑓𝑟𝑎𝑚𝑒 𝑠𝑖𝑧𝑒

𝑡𝑟𝑎𝑛𝑠𝑓𝑒𝑟 𝑠𝑝𝑒𝑒𝑑

App Both

10ms

Page 13: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

14

GPU L

GPU R

VR SLI

𝑆𝑐𝑎𝑙𝑖𝑛𝑔 𝑓 =2 ∗ (𝑡 − 𝑐)

𝑡

Typical render* resolution for Vive

1512 x 1680 (per eye)

Copy time over PCIe3 (@10GB/s)

~1 ms

Max scaling with 11ms frame time

2 ∗(10𝑚𝑠−1𝑚𝑠)

10𝑚𝑠= 1. 8

* Vive HMD runtime requests 1.4² larger resolution than display resolution

Max scaling determined by copy time

GPU L GPU R

10ms

C

9ms

Page 14: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

15

𝑆𝑐𝑎𝑙𝑖𝑛𝑔 𝑓 =2 ∗ (𝑡 − 𝑐)

𝑡

Typical render* resolution for Vive Pro

2016 x 2240 (per eye)

Copy time over PCIe3 (@10GB/s)

~1.6 ms

Max scaling with 11ms frame time

2 ∗(10𝑚𝑠−1.6𝑚𝑠)

10𝑚𝑠= 1. 68

* Vive HMD runtime requests larger resolution than display resolution

GPU L

GPU R

VR SLIMax scaling determined by copy time

GPU L GPU R

10ms

C

8.4ms

Page 15: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

16

VR SLI

Low-res HMDs show screen door effect

HMDs increase resolutions to improve experience

Vive Pro [Eye]: 1.6ms 1.68x

Pimax 5K Plus: 2.5ms 1.5x

Higher resolutions limit scalability

1.8x

ViveVive Pro

1.68x

Pimax 5K

1.5x

1

1.2

1.4

1.6

1.8

2

0 1 2 3 4 5 6 7 8 9

Max S

caling [

]

Display Resolution per Eye [M Pixels]

PCIe3x16

Page 16: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

17

Copy times can hurt scaling with higer resolutions

Quadro RTX 6000 NVLINK: 50GB/s (100GB/s full duplex)

Quadro RTX 5000 NVLINK: 25GB/s (50GB/s full duplex)

NVLink is used automatically if present

No bandwidth sharing with other traffic

Independent of underlying hardware

VR SLIImprove scaling using NVLink

Page 17: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

18

1

1.2

1.4

1.6

1.8

2

0 1 2 3 4 5 6 7 8 9

Max S

caling [

]

Display Resolution per Eye [M Pixels]

PCIe3x16

NVLINK 25

NVLINK 50

VR SLI

NVLINK outperforms PCIe easily

Pimax 5K Plus: 2560 x 1440

PCIe3x16: 2.5ms 1.5x

NVLINK 50: 0.7ms 1.86x

Pimax 8K: 3840 x 2160

PCIe3x16: 6.1ms 0.79x

NVLINK 50: 1.7ms 1.66x

NVLINK allows scaling with Hi-Res HMDs

Pimax 8K

1.66x

Vive Pro

1.86x

Pimax 5K

1.5x

Page 18: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

19

NVLINK

NVLINK is transparent – VR SLI automagically uses NVLINK if present

nvidia-smi allows to print link information

nvidia-smi nvlink

-s : Status-sc 0bz : Set counter 0-r 0 : Reset counter 0-g 0 : Get value

Location:

$(ProgramFiles)\NVIDIA Corporation\NVSMI

DCH system: $(windir)\system32

Side note: How to NVLINK

Page 19: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

20

NVLINK

NVML API (installed with CUDA SDK) allows to query NVLINK state & topology

Enumerate devices, get PCI info, get number of linksnvmlDeviceGetCount (&device_count);

nvmlDeviceGetHandleByIndex (i, &device);nvmlDeviceGetPciInfo (device, &pci); getUInt (device, NVML_FI_DEV_NVLINK_LINK_COUNT, &numLinks);

Get link state, speed, remote device PCI info (topology information)nvmlDeviceGetNvLinkState (device, j, &isActive);getUInt (device, NVML_FI_DEV_NVLINK_SPEED_MBPS_L0 + j, &speed);nvmlDeviceGetNvLinkRemotePciInfo (device, j, &pci);

Additional API to query link capabilities, error/data counters, etc.

NVML API support

Page 20: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

21

NVLINK

NVLINK API is getting comparable functionality

Enumerate devicesNvAPI_EnumPhysicalGPUs (

NvPhysicalGpuHandle nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS],NvU32 *pGpuCount );

Get link number, speed, topologyNvAPI_GPU_NVLINK_GetStatus (

NvPhysicalGpuHandle hPhysicalGpu,NVLINK_GET_STATUS* statusParams );

NVAPI also allows to query capabilities, error / data counters, etc.

NVAPI access – under development

Page 21: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

22

NVLINK

NVIDIA Quadro Control Panel

Workstation -> View System Topology

NVLINK information

NVIDIA Quadro Control Panel – under development

Page 22: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

23

VR SLIOPENGL MULTICAST 2

Page 23: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

24

OPENGL VR SLI: MULTICAST 2

Command & data broadcast

BufferSubData to specific GPU

CopyImageSubData & CopyBufferSubData

GPU-GPU Framebuffer Blit

Global barrier & directed sync functions

GPU Masks

Per-GPU sample locations

Per-GPU queries

Feedback on Multicast led to new functionality

Dynamic Multicast toggle(WGL_NV_multigpu_context)

GPU_ID built-in in GLSL shader

Per-GPU viewports & scissors

Texture & Buffer upload mask

Asynchronous copies

Page 24: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

25

New extension WGL_NV_multigpu_context: Request SLI mode per context

No need to restart application

Possible to share resourcesbetween contexts

MULTICAST 2

Data Context

Dynamic SLI mode

Geometry

Materials

Left view

Right view

Multicast Context

Page 25: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

26

New extension WGL_NV_multigpu_context: Request SLI mode per context

No need to restart application

Possible to share resourcesbetween contexts

On toggle:

Clean up per-GPU resources

Keep scene data

Alternate Frame Rendering (AFR)

MULTICAST 2

Data Context

Dynamic SLI mode

Geometry

Materials

Left view

Right view

Multicast ContextAFR Context

Frame i

Frame i+1

Page 26: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

27

MULTICAST 2

Multicast v1 required per-GPU uploads

Larger code changes in some renderers

Add shader built-in: gl_DeviceIndex

Upload all views to all GPUs

Use per-GPU data in shaders

Renderer can remain unchanged

Just modify shaders instead

GPU ID built-in: gl_DeviceIndex

Geometry

Materials

Left view

Right view

Geometry

Materials

Views

Page 27: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

28

MULTICAST 2

Add new function to set viewports and scissors per GPU

glMulticastViewportArrayvNVX( ... );

glMulticastScissorArrayvNVX( ... );

Per-GPU Lens Matched Shading

Per-GPU Viewports & Scissors

Page 28: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

29

MULTICAST 2

Add new function to set viewports and scissors per GPU

glMulticastViewportArrayvNVX( ... );

glMulticastScissorArrayvNVX( ... );

Per-GPU Lens Matched Shading

Per-GPU Multi Resolution Shading

Per-GPU Viewports & Scissors

Page 29: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

30

MULTICAST 2

Add new function to set viewports and scissors per GPU

glMulticastViewportArrayvNVX( ... );

glMulticastScissorArrayvNVX( ... );

Per-GPU Lens Matched Shading

Per-GPU Multi Resolution Shading

Easily set up Split Frame Rendering (SFR)

Per-GPU Viewports & Scissors

Page 30: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

31

MULTICAST 2

Multicast provides per-GPU buffer uploads

Asymmetrical functionality wrt texture upload functions

Add new mask function to modify texture & buffer uploads

glUploadGpuMaskNVX( GLbitfield mask );

Useful for simpler per-GPU texture streaming

Conserve PCIe bandwidth

Texture & Buffer Upload Mask

L

R

Page 31: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

32

Multicast copies stall source GPU while copy takes place

Easy to use because of implicit synchronization

New copy functions do not stall, but also need more synchronization

glAsyncCopyBufferSubDataNVX( ... );

glAsyncCopyImageSubDataNVX( ... );

Copy while both GPUs can continue rendering

Allows for more complex rendering algorithms

MULTICAST 2Asynchronous Copies

Copy

GPU L1 GPU L2

GPU R1 GPU R2

Page 32: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

33

MULTICAST 2

Render shadow maps (SM)

Start async copies of SMs to other GPU

Render z-prepass per GPU & eye

Wait for copy to finish

Render output images

Asynchronous Copies – Use case

SM_0.. SM_N

Z Left Z Right

SM_0.. SM_i SM_i+1.. SM_N

Page 33: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

34

VR SLI+ QUADRO SYNC

Page 34: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

35

QUADRO SYNC + VR SLISupport for new hardware configurations

Use case

CAVE systems

Each node generates L / R image

Scan out through Quad Buffered Stereo

Perfect for VR SLI

VR SLI + Quadro Sync + Quad Buffered Stereo supported with 418.81 and newer

QSync

QSync

QSync

Stereo Out

Stereo Out

Page 35: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

36

QUADRO SYNC + VR SLI + QBSSynthetic Speed-Of-Light Benchmark

Frame time for 0..800 M triangles

Render stereo, compare VR SLI on/off

System performance nearly doubles:

16ms: 240M vs 125M triangles

32ms: 495M vs 250M triangles

Stereo: Rendering scene twice per frame

2x Quadro RTX6000 + NVLINK:480M triangles in 16ms

0

16.66

33.32

49.98

66.64

83.3

99.96

116.62

133.28

0 100 200 300 400 500 600 700 800

Fra

me T

ime [

ms]

Scene Size [M triangles]

SLI OFF

SLI ON

Page 36: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

37

VR SLIVULKAN DEVICE GROUPS

Page 37: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

38

VR SLI

Vulkan provides VR SLI through the VK_KHR_device_group extension

Similar per-GPU functionality

Uploads

Render commands

GPU-GPU transfers

Vulkan - subsetAllocation

Geometry

Materials

Left view data

Right view data

Page 38: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

39

VR SLI

Vulkan provides VR SLI through the VK_KHR_device_group extension

Similar per-GPU functionality

Uploads

Render commands

GPU-GPU transfers

Upcoming support:

Per-GPU memory allocations

Vulkan - subsetAllocation

Geometries 0 Materials 0

Geometries 1 Materials 1

Page 39: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

40

VR SLI

VR SLI covers a wide variety of workloads

Almost perfect load balancing betweenleft/right eye and two GPUs

Copy overhead and view independentworkloads limit scaling

NVLink can help improve scaling

OpenGL: GL_NV_gpu_multicast / GL_NVX_gpu_multicast2

Vulkan: VK_KHR_device_group (core in VK 1.1)

DX11: NVAPI

Recap

VR SLI

Geometric

Pipeline

Rasterization

Fragment Shader

Application

Driver

Page 40: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

41

MULTI-VIEW RENDERING

Page 41: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

42

TWO PASS STEREO RENDERING2 Full Geometry Passes

Left Eye (Pass 1) Right Eye (Pass 2)

Page 42: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

43

TWO PASS RENDERING

Workload in all steps of the pipeline double.

Getting CPU bound fast, especially in CAD!

Mono to Stereo

2x

2xGeometric

Pipeline

Rasterization

Fragment Shader

Application2x

Driver2x

Page 43: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

44

SINGLE-PASS-STEREO1 Pass on Pascal

Left Eye

Right Eye

Page 44: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

45

SINGLE-PASS-STEREO

Cut CPU time in half

Cut VTG processing (nearly) in half

No change in raster & shading

DX: NVAPI

Vulkan: VK_KHR_Multiview (core in VK 1.1) & VK_NVX_multiview_per_view_attributes

OpenGL: GL_NV_stereo_view_rendering

Mono to Stereo

2x

~1xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver1x

Page 45: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

46

SINGLE-PASS-STEREO

Two views only

Limitations

2x

~1xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver1xDisplay

✓ 2 Displays per eye

Page 46: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

47

Canted displays (wide FoV)

SINGLE-PASS-STEREO

Two views only

Only change X-coordinate

Limitations

2x

~1xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver1x

Display

Display✓

Page 47: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

48

MULTI-VIEW RENDERINGNext Generation Single-Pass-Stereo

Left Eye

Right Eye

Page 48: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

49

MULTI-VIEW RENDERING

Up to 4 arbitrary views in hardware.

Up to 32 arbitrary views in software.

Turing

2x

1xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver1x

Page 49: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

50

MULTI-VIEW RENDERING

Up to 32 arbitrary views in software.

Still significant reduction in CPU overhead.

Reduces number of code paths.

Pre-Turing

2x

2xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver>1x

Page 50: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

51

MULTI-VIEW RENDERING

DX11: NVAPI

DX12: via View Instancing

Vulkan: VK_KHR_Multiview (core in VK 1.1)

OpenGL: GL_OVR_multiview & GL_OVR_multiview2

APIs

2x

2xGeometric

Pipeline

Rasterization

Fragment Shader

Application1x

Driver>1x

Page 51: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

52

MULTI-VIEW RENDERINGNon-VR Use-cases

Multiple Shadow Maps in one pass(multiple light sources, cascaded shadow maps etc.)

Page 52: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

53

MULTI-VIEW RENDERING

Render to multiple layers (just like Single-Pass-Stereo)

Provide data for all views to Vertex Shader

Handle view dependent operations via new built-in gl_ViewID_OVR

Minimize number of varyings dependent on gl_ViewID_OVR!

Example: OpenGL

Page 53: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

54

MULTI-VIEW RENDERING

mat4 modelViewProjection = viewProjMatrix[gl_ViewID_OVR] * model;

gl_Position = modelViewProjection * vertexPos;

Example: OpenGL

Page 54: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

55

MULTI-VIEW RENDERING

mat4 modelViewProjection = viewProjMatrix[0] * model;

gl_Position = modelViewProjection * vertexPos;

if (gl_ViewID_OVR == 1) {

mat4 modelViewProjection2 = viewProjMatrix[1] * model;

vec4 pos = modelViewProjection2 * vertexPos;

gl_Position.x = pos.x; // hint that only X depends on the viewID to mimic SPS

}

Example: OpenGL

Page 55: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

56

MULTI-VIEW RENDERING

Mesh Shaders can be used with Multi-View Rendering!

But:

not implicitly like Vertex/Tessellation/Geometry Shaders

but explicitly in the Mesh Shader

max 4 views

Turing Mesh Shaders

Page 56: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

57

MULTI-VIEW RENDERINGTuring Mesh Shaders

Mesh Shader:

out gl_MeshPerVertexNV {

vec4 gl_Position;

} gl_MeshVerticesNV[];

gl_MeshVerticesNV[i].gl_Position = MVP * vertex;

Mesh Shader with explicit Multi-View Rendering

out gl_MeshPerVertexNV {

perviewNV vec4 gl_PositionPerViewNV[];

} gl_MeshVerticesNV[];

gl_MeshVerticesNV[i].gl_PositionPerViewNV[ v ] = MVP[ v ] * vertex;

Page 57: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

58

MULTI-VIEW RENDERING

Only apply to OpenGL!

(Limitations come from GL_OVR_multiview/2)

No multisampling

No Geometry Shader

No Tessellation Shader

We‘re working on it!

Limitations

MVR

Geometric

Pipeline

Rasterization

Fragment Shader

Application

Driver

Page 58: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

59

MULTI-VIEW RENDERING

Reduces geometric load and CPU overhead

More flexible than SPS

Software fallback for pre-Turing GPUs

Performance boost depends on number of view dependent attributes

DX11: NVAPI | DX12: via View Instancing

Vulkan: VK_KHR_Multiview (core in VK 1.1)

OpenGL: GL_OVR_multiview & GL_OVR_multiview2

Recap

MVR

Geometric

Pipeline

Rasterization

Fragment Shader

Application

Driver

Page 59: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

60

VARIABLE RATE SHADING

Page 60: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

61

VARIABLE RATE SHADINGMotivation

High Resolution

Medium Resolution

Low Resolution

Due to the lens distortion theimage is warped before sending itto the HMD. Good opportunity to save unnecessaryrendering work.

Page 61: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

62

RECAP: MAXWELLMulti-Resolution Shading

High Resolution

Low Resolution

9 Viewports9 areas in which the resolution is constant

Page 62: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

63

RECAP: PASCALLens Matched Shading

High Resolution

Low Resolution

4 Viewports4 areas in which the resolution gets reduced towards the corners

Page 63: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

64

NEW: TURINGVariable Rate Shading

High Resolution

1 ViewportMany small areas in which the shading rate is constant

Medium Resolution

Low Resolution

Page 64: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

65

COMPARING MRS, LMS, VRSFrom our DX11 VRWorks Samples

Page 65: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

66

COMPARING MRS, LMS, VRSFrom our DX11 VRWorks Samples

MRS LMS VRSMRS

LMS

VRS

Density: 0.25 Coefficient: 2.0 Shading Rate: 4x4

Page 66: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

67

VARIABLE RATE SHADING

Pixel

Rasterization

Page 67: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

68

VARIABLE RATE SHADING

Pixel

Sampling position

Rasterization

Page 68: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

69

VARIABLE RATE SHADING

Pixel

Sampling position

Pixels: Samples covered: F.Shader invocations*:

404040

* (not counting helper threads)

Rasterization

Page 69: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

70

VARIABLE RATE SHADING

Pixel

Sampling position

Pixels: Samples covered: F.Shader invocations:

446944

Multi Sampling Rasterization

Page 70: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

71

VARIABLE RATE SHADING

Pixels: Samples covered: F.Shader invocations:

446944

Shading result stored forone sampling position

Shading result stored fortwo sampling position

Multi Sampling Rasterization

Page 71: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

72

VARIABLE RATE SHADING

Pixel

Sampling position

Fragment Shader Invocation

Page 72: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

73

VARIABLE RATE SHADING

Page 73: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

74

VARIABLE RATE SHADING

Shading result stored forone pixel

Shading result stored fortwo pixels

Shading result stored forfour pixels

Page 74: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

75

VARIABLE RATE SHADING

Pixels: Samples covered: F.Shader invocations:

404014

Page 75: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

76

VARIABLE RATE SHADING

1x1 Shading RatePixels: Samples covered: F.Shader invocations:

477477477

Page 76: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

77

VARIABLE RATE SHADING

2x2 Shading RatePixels: Samples covered: F.Shader invocations:

477477128

Page 77: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

78

VARIABLE RATE SHADING

4x4 Shading RatePixels: Samples covered: F.Shader invocations:

47747742

Page 78: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

79

VARIABLE RATE SHADING

Page 79: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

80

VARIABLE RATE SHADING

1x1

Shading Rate

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate2x2

Shading Rate

2x2

Shading Rate

Page 80: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

81

VARIABLE RATE SHADING

1x1

Shading Rate

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate2x2

Shading Rate

2x2

Shading Rate

Shading Rate Lookup

Page 81: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

82

VARIABLE RATE SHADING

0

0

0

1

2

2

2

Framebuffer Shading Rate Image

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate

1

2

Palette

2x4

Shading Rate3

Shading Rate Lookup

Page 82: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

83

VARIABLE RATE SHADING

0

0

0

1

2

2

2

Framebuffer Shading Rate Image(8 bit integer)

1

2

Palette(16 entries)

3

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate

2x4

Shading Rate

Shading Rate Lookup

Page 83: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

84

VARIABLE RATE SHADING

0

1

2

Layered Framebuffer Shading Rate Image Array(8 bit integer)

Per Viewport Palette(16 entries)

3

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate

2x4

Shading Rate

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate

2x4

Shading Rate

1x1

Shading Rate

4x4

Shading Rate

2x2

Shading Rate

2x4

Shading Rate

Shading Rate Lookup

Page 84: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

85

VARIABLE RATE SHADINGShading Modes: GL_SHADING_RATE_

NO_INVOCATIONS_NV

1_INVOCATION_PER_2X2_PIXELS_NV

1_INVOCATION_PER_PIXEL_NV

1_INVOCATION_PER_2X4_PIXELS_NV

1_INVOCATION_PER_1X2_PIXELS_NV

1_INVOCATION_PER_4X2_PIXELS_NV

1_INVOCATION_PER_2X1_PIXELS_NV

1_INVOCATION_PER_4X4_PIXELS_NV

Page 85: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

86

VARIABLE RATE SHADINGFoveated Rendering

Page 86: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

87

VARIABLE RATE SHADINGFoveated Rendering

Foveation pattern in Shading Rate Image

For layered rendering (e.g. Multi-View

Rendering): Use texture array for SRI

Page 87: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

88

VARIABLE RATE SHADINGFoveated Rendering

Lens Matched With Eye Tracking

Page 88: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

89

VARIABLE RATE SHADINGContent Adaptive Shading Rate

Page 89: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

90

VARIABLE RATE SHADINGContent Adaptive Shading Rate

Two Viewports:

Both span full framebuffer

Each has own Shading Rate Palette

Select matching viewport in VTG Shader

Page 90: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

91

VARIABLE RATE SHADINGContent Adaptive Shading Rate

Legend:Cold → Finer ShadingHot → Coarse Shading

Content-adaptive Super Sampling for Text

Page 91: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

92

VARIABLE RATE SHADING

So far: reduced shading rate

Also possible: increase shading rate (where needed)

Increased Shading Rate

Page 92: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

93

VARIABLE RATE SHADINGShading Modes: Multi-Sample Framebuffers

GL_SHADING_RATE_

2_INVOCATIONS_PER_PIXEL_NV 4_INVOCATIONS_PER_PIXEL_NV 8_INVOCATIONS_PER_PIXEL_NV

Page 93: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

94

VARIABLE RATE SHADING

Idea:

Render to a MSAA buffer

1x shading for most of the scene (regular MSAA)

GL_SHADING_RATE_X_INVOCATIONS_PER_PIXEL_NV for important objects or materials

( X: 2,4,8 )

Increased Shading Rate

(OpenGL) Sample from VRWorks

Page 94: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

95

VARIABLE RATE SHADINGIncreased Shading Rate: Animated Material

VRS MSAA

Page 95: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

96

VARIABLE RATE SHADINGIncreased Shading Rate: Procedural Material

(OpenGL) Sample from VRWorks

Page 96: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

97

VARIABLE RATE SHADINGIncreased Shading Rate: Procedural Material

VRS MSAA

Page 97: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

98

VARIABLE RATE SHADING

Edge quality: MSAA

Shading quality: MSAA OR like Super-Sampling (depending on requirement)

Performance: Adjustable between MSAA and Super-Sampling

Increased Shading Rate

Page 98: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

99

VARIABLE RATE SHADINGVarying Extrapolation

Page 99: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

100

VARIABLE RATE SHADINGVarying Extrapolation

Page 100: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

101

VARIABLE RATE SHADINGVarying Extrapolation

Page 101: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

102

VARIABLE RATE SHADINGVarying Extrapolation

Varyings are interpolated in the Pixel center

Page 102: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

103

VARIABLE RATE SHADINGVarying Extrapolation

which means extrapolation for some(but just a small amount)

Page 103: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

104

VARIABLE RATE SHADINGVarying Extrapolation

unless they are defined as centroid

Page 104: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

105

VARIABLE RATE SHADINGVarying Extrapolation

Page 105: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

106

VARIABLE RATE SHADINGVarying Extrapolation

Varyings are interpolated in thecoarse pixel center

Significantly more extrapolation compared to MSAA: Use centroid to avoid artifacts!

Page 106: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

107

VARIABLE RATE SHADINGVarying Extrapolation

Varyings are interpolated in thecoarse pixel center

Significantly more extrapolation compared to MSAA: Use centroid to avoid artifacts!

Page 107: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

108

VARIABLE RATE SHADING

Reduces Fragment load

Allows to tailor workload to needs

Fine-grained control over shading rate

Performance boost depends on shading complexity and triangle size

DX11: NVAPI

Vulkan: VK_NV_shading_rate_image

OpenGL: GL_NV_shading_rate_image

Recap

VRS

Geometric

Pipeline

Rasterization

Fragment Shader

Application

Driver

Page 108: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

109

VARIABLE RATE SHADINGRecap

Foveated Rendering Content Adaptive ShadingLens Optimized Shading

Page 109: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

110

VR VILLAGE

Explore the VR Village to get hands-on with the latest advances in virtual reality

VR THEATER

Go to the VR Theater to see and experience narrated VR demos built by our partners

VR PARTNERS

Explore a great lineup of VR partners around the VR Village showcasing their groundbreaking technology

COME EXPLORE ALL THINGS VR AT GTC 2019

VR VILLAGE HOURS Wednesday: 12:00pm - 7:00pm Thursday: 11:00am - 2:00pm

See More VR on the Exhibition Floor

Expo Hall 3, Concourse Level

Page 110: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)

111

TRY IT OUT!

NVIDIA VRWorks SDK provides OpenGL, Direct3D & Vulkan samples

developer.nvidia.com/vrworks

Upcoming Zerolight VR talk discussing MVR, VRS and VR SLI

S9209 - Advances in Real-Time Automotive Visualisation – Thu, 11:00 – 11:50, Room 230A

More detail in our previous GTC talks:

2018 – S8695 – NVIDIA VR Update

2017 – S7191 – Vulkan Technology Update

2016 – S6338 – VR Multi GPU Acceleration Featuring Autodesk VRED

2015 – S5668 – VR Direct: How NVIDIA Technology Is Improving The VR Experience

..and more information

Page 111: UPDATES ON PROFESSIONAL VR & TURING VRWORKS · UPDATES ON PROFESSIONAL VR & TURING VRWORKS. 2 AGENDA Motivation VR SLI –Multi-GPU Rendering Multi-View Rendering (new in Turing)