09.08.2012 Views

Virtual texturing in software and hardware final

Virtual texturing in software and hardware final

Virtual texturing in software and hardware final

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Edit this text to create a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit this text to create a Head<strong>in</strong>g<br />

<strong>Virtual</strong> Textur<strong>in</strong>g <strong>in</strong> Software <strong>and</strong> Hardware<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets Monday, are blue 6 August, 2:00pm - 3:30pm<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Juraj Obert<br />

� Longer bullets <strong>in</strong> the Advanced form Micro of a Devices paragraph are harder to<br />

read if there is <strong>in</strong>sufficient J.M.P. van l<strong>in</strong>e Waveren spac<strong>in</strong>g. This is the<br />

id Software<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

Graham Sellers<br />

Advanced Micro Devices


Edit Agenda this text to create a Head<strong>in</strong>g<br />

�� This Introduction subtitle to <strong>Virtual</strong> is 20 Textur<strong>in</strong>g po<strong>in</strong>ts<br />

�� Bullets Software are <strong>Virtual</strong> blue Textures (Megatexture) <strong>in</strong> RAGE<br />

�� They Partially have Resident 110% Textures l<strong>in</strong>e spac<strong>in</strong>g, (PRTs) 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� OpenGL sparse texture extension<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Demo (RAGE runn<strong>in</strong>g PRTs)<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� (seven). Conclusion & Discussion<br />

� Sub bullets look like this<br />

3


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets Introduction are blue to <strong>Virtual</strong> Textur<strong>in</strong>g<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Juraj Obert<br />

� Longer bullets <strong>in</strong> the Advanced form Micro of a Devices<br />

paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This Non-virtual subtitle textures is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� One (or multiple) physical textures per game object<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Game needs to b<strong>in</strong>d them all before a draw call<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

5


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This <strong>Virtual</strong> subtitle textures is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Only one texture needs to be bound at any given time<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� read Problem if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum � The texture recommended cannot possibly number fit <strong>in</strong>to video of memory l<strong>in</strong>es per slide<br />

(seven).<br />

� One massive virtual texture that conta<strong>in</strong>s data for the entire world<br />

� E.g., some RAGE virtual textures are 128K x 128K texels (64 GB)<br />

� Sub bullets look like this<br />

6


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This Pag<strong>in</strong>g subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� Mak<strong>in</strong>g only a part of the virtual texture resident <strong>in</strong> GPU memory<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Tile (page) granularity<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Work<strong>in</strong>g set – the set of texture tiles resident <strong>in</strong> GPU memory<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� Represented as another physical texture <strong>in</strong> GPU memory<br />

(seven).<br />

� Orders of magnitude smaller than the virtual texture (needs to fit <strong>in</strong> GPU memory)<br />

� Sub bullets look like this<br />

� Application decides based on FOV, map location, view direction, etc.<br />

7


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This Pag<strong>in</strong>g subtitle is 20 po<strong>in</strong>ts<br />

� Bullets � <strong>Virtual</strong> texture are blue subdivided <strong>in</strong>to tiles (pages)<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub <strong>Virtual</strong> bullets texture look like this<br />

Images courtesy of Sean Barrett<br />

8


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This Pag<strong>in</strong>g subtitle is 20 po<strong>in</strong>ts<br />

� Bullets � Tiles uploaded are blue <strong>in</strong>to the physical texture<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub <strong>Virtual</strong> bullets texture look like this Physical texture<br />

Images courtesy of Sean Barrett<br />

9


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This <strong>Virtual</strong> subtitle texture coord<strong>in</strong>ates is 20 po<strong>in</strong>ts are mapped to physical texture coord<strong>in</strong>ates through<br />

� Bullets a page table are texture blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub <strong>Virtual</strong> bullets texture look like this Physical texture<br />

Images courtesy of Sean Barrett<br />

10


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This SVT texture subtitle lookup is 20 po<strong>in</strong>ts<br />

uniform sampler2D samplerPageTable;<br />

�uniform Bullets sampler2D are samplerPhysTexture; blue<br />

// page table texture<br />

// physical texture<br />

<strong>in</strong> vec4 virtUV; // virtual texture coord<strong>in</strong>ates<br />

�out They vec4 color; have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 // po<strong>in</strong>ts output color before & after<br />

�vec2 Longer getPhysUV(vec4 bullets pte); <strong>in</strong> the form of a paragraph // translation are function harder to<br />

void ma<strong>in</strong>() read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

{<br />

vec4 pte = texture(samplerPageTable, virtUV.xy); // 1<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

vec2 physUV = getPhysUV(pte);<br />

(seven).<br />

// 2<br />

}<br />

color = texture(samplerPhysTexture, physUV.xy); // 3<br />

� Sub bullets look like this<br />

11


Edit <strong>Virtual</strong> this Textur<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

�� This Software subtitle virtual is 20 textures po<strong>in</strong>ts<br />

� Bullets � Powerful are tool to blue h<strong>and</strong>le massive datasets<br />

� They � Simple have <strong>in</strong> theory, 110% but hard l<strong>in</strong>e to implement spac<strong>in</strong>g, efficiently 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

12


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets Software are blue <strong>Virtual</strong> Textures <strong>in</strong> RAGE<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

J.M.P. van Waveren<br />

� Longer bullets <strong>in</strong> the form id Software<br />

of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit <strong>Virtual</strong> this Textures text to create <strong>in</strong> Software a Head<strong>in</strong>g<br />

�� This Motivation subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� Address Translation<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

�� Longer Texture bullets Filter<strong>in</strong>g <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

14


Edit RAGE this text to create a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

15


Edit RAGE this text to create a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

16


Edit Unique this Texture text to create Detail a Head<strong>in</strong>g<br />

�� This Desire subtitle for unique is detail 20 po<strong>in</strong>ts at a distance <strong>and</strong> up close.<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Til<strong>in</strong>g looks bad at a distance.<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Bil<strong>in</strong>ear magnification looks bad up close.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� (seven). Hunger for truly unique detail results <strong>in</strong> huge texture data set.<br />

� Texture mapp<strong>in</strong>g efficiently adds surface detail to geometric primitives.<br />

� Til<strong>in</strong>g, blend<strong>in</strong>g <strong>and</strong> decals are forms of manual texture compression.<br />

� Sub bullets look like this<br />

17


Edit Key Observations<br />

this text to create a Head<strong>in</strong>g<br />

�� This Massive subtitle amount is of 20 texture po<strong>in</strong>ts data <strong>and</strong> only so much physical memory.<br />

�� Bullets GPU compression are blue formats designed for render<strong>in</strong>g performance.<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Lossy compression is perfectly f<strong>in</strong>e for many use cases.<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Only small subset of texture data needed at any time.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� (seven). Temporarily fall back to slightly blurrier texture data without stall<strong>in</strong>g<br />

� Texture data can be stored highly compressed on secondary storage.<br />

execution � Sub bullets (trade look quality like vs. this performance).<br />

18


Edit <strong>Virtual</strong> this <strong>and</strong> text Physical to create Texture a Head<strong>in</strong>g Data<br />

�� This Massive subtitle amount is 20 of texture po<strong>in</strong>ts data <strong>in</strong> a virtual address space.<br />

� Bullets � Possibly are highly blue compressed <strong>in</strong> non-renderable format.<br />

�<br />

�<br />

They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Smaller resident subset <strong>in</strong> a physical address space.<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Possibly compressed <strong>in</strong> a GPU renderable format.<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

�<br />

maximum<br />

Translate virtual<br />

recommended<br />

texture addresses<br />

number<br />

to<br />

of<br />

physical<br />

l<strong>in</strong>es per<br />

addresses.<br />

slide<br />

(seven). � Various address translation schemes can be applied.<br />

� Sub bullets look like this<br />

19


Edit Address this text Translation to create Options a Head<strong>in</strong>g<br />

� Per Model.<br />

� This � LOD subtitle system where is each 20 geometry po<strong>in</strong>ts LOD has its own texture LOD.<br />

� Make a different texture resident for each LOD.<br />

� Bullets are blue<br />

� Per Vertex.<br />

� They � Modify have the geometry 110% texture l<strong>in</strong>e coord<strong>in</strong>ates spac<strong>in</strong>g, at run-time. 2 po<strong>in</strong>ts before & after<br />

�� Longer Per Fragment. bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Translate the texture address per fragment (or per texture lookup).<br />

read � Unwrap if there all UV isl<strong>and</strong>s is <strong>in</strong>sufficient onto one very large l<strong>in</strong>e texture. spac<strong>in</strong>g. This is the<br />

maximum � Divide this large recommended texture <strong>in</strong>to pages that number are made resident of l<strong>in</strong>es as needed. per slide<br />

� <strong>Virtual</strong> texture pages map to physical texture pages.<br />

(seven).<br />

� Use address translation to map virtual addresses to physical ones.<br />

� Per � Sub Po<strong>in</strong>t bullets Sample. look like this<br />

� Filter<strong>in</strong>g <strong>in</strong> <strong>software</strong> is rather expensive. Need <strong>hardware</strong> support!<br />

20


Edit ClipMap this text to create a Head<strong>in</strong>g<br />

�� This Back <strong>in</strong> subtitle the day is required 20 po<strong>in</strong>ts <strong>hardware</strong> support.<br />

�� Bullets Can easily are be blue implemented on programmable graphics <strong>hardware</strong>.<br />

�� They Texture have sub-square 110% resident l<strong>in</strong>e spac<strong>in</strong>g, around s<strong>in</strong>gle 2 po<strong>in</strong>ts focus before po<strong>in</strong>t on & texture. after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� No page table needed!<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� (seven). Limited to environments with natural spatial correlation between<br />

� S<strong>in</strong>gle region of <strong>in</strong>terest significantly simplifies the address translation.<br />

texture � Sub data bullets <strong>and</strong> look geometry. like this<br />

21


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets <strong>and</strong> texture are data. blue<br />

�� They Need more have flexible 110% texture l<strong>in</strong>e spac<strong>in</strong>g, management 2 po<strong>in</strong>ts <strong>and</strong> address before translation. & after<br />

�� Longer Need to map bullets arbitrary <strong>in</strong> the virtual form texture of a pages paragraph to physical are memory. harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Not all environments have a natural correlation between the geometry<br />

� Sub bullets look like this<br />

22


Edit <strong>Virtual</strong> this Textures text to create <strong>in</strong> RAGE a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

23


Edit <strong>Virtual</strong> this Textures text to create <strong>in</strong> RAGE a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

24


Edit <strong>Virtual</strong> this Textures text to create <strong>in</strong> RAGE a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

25


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

26


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

27


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

28


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

29


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

30


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

31


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

32


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

33


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

34


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

35


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

36


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

37


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

38


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

39


Edit Flexible this Address text to create Translation a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

40


Edit Page this Tables text to create a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

�� They One scale have value 110% if virtual l<strong>in</strong>e <strong>and</strong> spac<strong>in</strong>g, physical 2 textures po<strong>in</strong>ts are before square. & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Two scale values if us<strong>in</strong>g non-square virtual or physical texture.<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Two bias values to map virtual pages to arbitrary physical pages.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Scale is ratio between virtual mip level size <strong>and</strong> physical texture size.<br />

� The bias is offset to physical page m<strong>in</strong>us scaled offset to virtual page.<br />

� Sub bullets look like this<br />

41


Edit Page this Tables text to create a Head<strong>in</strong>g<br />

� Quad-tree<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� M<strong>in</strong>imal memory footpr<strong>in</strong>t.<br />

� Bullets � Quad-tree are updates blue are cheap.<br />

� Dependent lookup for each level accessed.<br />

�� They Hash table have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer � Small memory bullets footpr<strong>in</strong>t. <strong>in</strong> the form of a paragraph are harder to<br />

� Hash table updates are relatively cheap.<br />

read � Need if multiple there lookups is when <strong>in</strong>sufficient the desired page is l<strong>in</strong>e not resident. spac<strong>in</strong>g. This is the<br />

� maximum Page table texture recommended number of l<strong>in</strong>es per slide<br />

� Allows texture <strong>hardware</strong> to be used to directly f<strong>in</strong>d the scale & bias for a virtual address.<br />

(seven).<br />

� Larger memory footpr<strong>in</strong>t because it effectively stores the full quad-tree whether pages are resident or not.<br />

� Sub bullets look like this<br />

� Texels for pages that are not resident po<strong>in</strong>t to the nearest coarser resident page.<br />

� May need to update large squares of texels when a page is mapped or unmapped.<br />

42


Edit Page this Table text Textures to create a Head<strong>in</strong>g<br />

� Store complete quad-tree as a mip-mapped texture.<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Store full FP32x4 with scale <strong>and</strong> bias.<br />

� Bullets � Encode are scale blue <strong>and</strong> bias <strong>in</strong>to UINT16x4.<br />

�� They Use a page have table 110% plus l<strong>in</strong>e mapp<strong>in</strong>g spac<strong>in</strong>g, texture 2 to po<strong>in</strong>ts store the before scale <strong>and</strong> & after bias.<br />

� Longer � Store 8:8 bullets page table <strong>in</strong> texture the with form 1 texel of per a virtual paragraph page. are harder to<br />

� Store FP32x4 mapp<strong>in</strong>g texture with 1 texel per physical page.<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Calculate the scale <strong>and</strong> bias <strong>in</strong> a fragment program.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� Store physical page coord<strong>in</strong>ates <strong>and</strong> base-two logarithm of mip-level width <strong>in</strong> pages.<br />

(seven).<br />

� 8:8:8:8 = X:8 + Y:8 + W:16<br />

� 5:6:5 = X:5 + W:6 + Y:5<br />

� Sub bullets look like this<br />

� Pre DX10 <strong>hardware</strong> has different conversions from 8-bits to FP32.<br />

43


Edit Texture this Filter<strong>in</strong>g text to create a Head<strong>in</strong>g<br />

� Bil<strong>in</strong>ear filter<strong>in</strong>g without borders<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Adjacent virtual pages are not necessarily adjacent <strong>in</strong> the physical texture.<br />

� Bullets � Clamp at are border blue causes objectionable seams at mip level transitions.<br />

�� They Bil<strong>in</strong>ear have filter<strong>in</strong>g 110% with borders l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Need at least a 1 texel border.<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Tril<strong>in</strong>ear filter<strong>in</strong>g with borders.<br />

read � Mip if mapped there physical is <strong>in</strong>sufficient texture. l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Two address translations.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� Anisotropic filter<strong>in</strong>g with borders.<br />

(seven).<br />

� 4-texel border (max aniso = 4)<br />

�� Sub Explicit bullets derivatives look + TXD like (texgrad) this<br />

� Us<strong>in</strong>g implicit derivatives work surpris<strong>in</strong>gly well!<br />

44


Edit Anisotropic this text Texture to create Filter<strong>in</strong>g a Head<strong>in</strong>g<br />

� Page table is po<strong>in</strong>t sampled.<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

�� Bullets Page table are lookup blue unaware of anisotropic lookup that follows.<br />

�� They May end have up with 110% a page l<strong>in</strong>e that spac<strong>in</strong>g, is too coarse. 2 po<strong>in</strong>ts before & after<br />

�� Longer Not enough bullets texture <strong>in</strong> detail the for form the of anisotropic a paragraph texture are filter. harder to<br />

� read Bias the if there page table is <strong>in</strong>sufficient lookup based l<strong>in</strong>e on the spac<strong>in</strong>g. anisotropic This footpr<strong>in</strong>t. is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

45


Edit Anisotropic this text Page to create Table a Bias Head<strong>in</strong>g<br />

float m<strong>in</strong>AnisoBias = -2; // - log2( maxAniso = 4 )<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets float2 dx are = ddx( blue virtualTexCoords.xy );<br />

float2 dy = ddy( virtualTexCoords.xy );<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer float px bullets = dot( dx, <strong>in</strong> dx the ); form of a paragraph are harder to<br />

float py = dot( dy, dy );<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

float maxLod = 0.5 * log2( max( px, py ) ); // log2(sqrt()) = 0.5*log2()<br />

(seven).<br />

float m<strong>in</strong>Lod = 0.5 * log2( m<strong>in</strong>( px, py ) );<br />

� Sub bullets look like this<br />

float anisoBias = max( m<strong>in</strong>Lod - maxLod, m<strong>in</strong>AnisoBias );<br />

46


Edit Software this text <strong>Virtual</strong> to create Texture a Head<strong>in</strong>g Issues<br />

� Memory cost<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Page table textures can take up a fair amount of memory.<br />

� Bullets are blue<br />

� Performance cost<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Dependent texture lookup(s) for address translation.<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� read Texture if filter<strong>in</strong>g. there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Various trade-offs.<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� High quality filter<strong>in</strong>g is still costly.<br />

(seven).<br />

� Sub bullets look like this<br />

47


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are Partially blue Resident Textures<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Juraj Obert<br />

� Longer bullets <strong>in</strong> the Advanced form Micro of a Devices<br />

paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Memory subtitle requirements is 20 po<strong>in</strong>ts determ<strong>in</strong>ed by the number of<br />

� Bullets resident are tiles, blue not texture dimensions<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of Non-PRT l<strong>in</strong>es per PRT slide<br />

(seven).<br />

Memory 4096 kB 1536 kB<br />

� Sub bullets look like this<br />

RGBA8, 1024x1024, 64 tiles<br />

49


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This PRTs subtitle rely on is 3 20 core po<strong>in</strong>ts components:<br />

� Bullets are blue<br />

� They<br />

� Hardware virtual memory subsystem (HW VM)<br />

have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Shader core feedback<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� SW driver stack<br />

(seven).<br />

� Sub bullets look like this<br />

50


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

�� This Hardware subtitle virtual is 20 memory po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They<br />

� Latest generation GPUs use virtual addresses<br />

have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Page table <strong>in</strong> the on-board GPU memory<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� Address translation entirely <strong>in</strong> <strong>hardware</strong><br />

(seven).<br />

� Sub bullets look like this<br />

51


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

� This subtitle is texture(sampler, 20 po<strong>in</strong>ts uv);<br />

� Bullets are uv blue<br />

data<br />

virtual physical<br />

� They have 110% Texture l<strong>in</strong>e Unit<br />

address address<br />

spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

…<br />

� Longer virtual address bullets <strong>in</strong> the form data of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Memory l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). physical<br />

address data<br />

� Sub bullets look like this<br />

Physical Memory<br />

Page Table<br />

52


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

�� This Texture subtitle Unit is 20 po<strong>in</strong>ts<br />

� Bullets � UV to are virtual blue address translation<br />

� Hardware filter<strong>in</strong>g<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Cach<strong>in</strong>g<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Memory Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� <strong>Virtual</strong> to physical address translation<br />

(seven).<br />

� Page table<br />

�� Sub Cach<strong>in</strong>g bullets look like this<br />

53


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This SVT texture subtitle fetch is 20 po<strong>in</strong>ts<br />

uniform sampler2D samplerPageTable; // page table texture<br />

�uniform Bullets sampler2D are samplerPhysTexture; blue<br />

// physical texture<br />

<strong>in</strong> vec4 virtUV; // virtual texture coord<strong>in</strong>ates<br />

�out They vec4 color; have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 // po<strong>in</strong>ts output color before & after<br />

�vec2 Longer getPhysUV(vec4 bullets pte); <strong>in</strong> // the translation form of function a paragraph are harder to<br />

void ma<strong>in</strong>() read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

{<br />

vec4 pte = texture(samplerPageTable, virtUV.xy); // 1<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

}<br />

� Sub bullets look like this<br />

54


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

� This subtitle is texture(sampler, 20 po<strong>in</strong>ts uv);<br />

� Bullets are virtUV blue<br />

PTE<br />

virtual physical<br />

� They have 110% Texture l<strong>in</strong>e Unit<br />

address address<br />

spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

…<br />

� Longer virtual address bullets <strong>in</strong> the form data of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Memory l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). physical<br />

address data<br />

� Sub bullets look like this<br />

Physical Memory<br />

Page Table<br />

55


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This SVT texture subtitle fetch is 20 po<strong>in</strong>ts<br />

uniform sampler2D samplerPageTable;<br />

�uniform Bullets sampler2D are samplerPhysTexture; blue<br />

// page table texture<br />

// physical texture<br />

<strong>in</strong> vec4 virtUV; // virtual texture coord<strong>in</strong>ates<br />

�out They vec4 color; have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 // po<strong>in</strong>ts output color before & after<br />

�vec2 Longer getPhysUV(vec4 bullets pte); <strong>in</strong> // the translation form of function a paragraph are harder to<br />

void ma<strong>in</strong>() read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

{<br />

vec4 pte = texture(samplerPageTable, virtUV.xy); // 1<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

vec2 physUV = getPhysUV(pte);<br />

(seven).<br />

// 2<br />

}<br />

� Sub bullets look like this<br />

56


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This SVT texture subtitle fetch is 20 po<strong>in</strong>ts<br />

uniform sampler2D samplerPageTable;<br />

�uniform Bullets sampler2D are samplerPhysTexture; blue<br />

// page table texture<br />

// physical texture<br />

<strong>in</strong> vec4 virtUV; // virtual texture coord<strong>in</strong>ates<br />

�out They vec4 color; have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 // po<strong>in</strong>ts output color before & after<br />

�vec2 Longer getPhysUV(vec4 bullets pte); <strong>in</strong> // the translation form of function a paragraph are harder to<br />

void ma<strong>in</strong>() read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

{<br />

vec4 pte = texture(samplerPageTable, virtUV.xy); // 1<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

vec2 physUV = getPhysUV(pte);<br />

(seven).<br />

// 2<br />

}<br />

color = texture(samplerPhysTexture, physUV.xy); // 3<br />

� Sub bullets look like this<br />

57


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

� This subtitle is texture(sampler, 20 po<strong>in</strong>ts uv);<br />

� Bullets are physUV blue<br />

color<br />

virtual physical<br />

� They have 110% Texture l<strong>in</strong>e Unit<br />

address address<br />

spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

…<br />

� Longer virtual address bullets <strong>in</strong> the form data of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Memory l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). physical<br />

address data<br />

� Sub bullets look like this<br />

Physical Memory<br />

Page Table<br />

58


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This PRT texture subtitle fetch is 20 po<strong>in</strong>ts<br />

�uniform Bullets sampler2D are samplerPRT; blue<br />

// partially-resident texture<br />

<strong>in</strong> vec4 virtUV; // virtual texture coord<strong>in</strong>ates<br />

�out They vec4 color; have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 // po<strong>in</strong>ts output color before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

void ma<strong>in</strong>() read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

{<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

color = vec4(0.0);<br />

(seven).<br />

}<br />

texture(samplerPRT, virtUV.xy, color); // 3<br />

� Sub bullets look like this<br />

59


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – HW VM<br />

� This subtitle is texture(sampler, 20 po<strong>in</strong>ts uv);<br />

� Bullets are virtUV blue<br />

color<br />

virtual physical<br />

� They have 110% Texture l<strong>in</strong>e Unit<br />

address address<br />

spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

…<br />

� Longer virtual address bullets <strong>in</strong> the form data of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Memory l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). physical<br />

address data<br />

� Sub bullets look like this<br />

Physical Memory<br />

Page Table<br />

60


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This <strong>Virtual</strong> subtitle address is 20 space po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They<br />

� Segmented <strong>in</strong>to 64 kB tiles (pages)<br />

have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Each tile can be either mapped (resident)<br />

read or unmapped if there is (non-resident) <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Mapp<strong>in</strong>g/unmapp<strong>in</strong>g controller by the<br />

� Sub application/driver<br />

bullets look like this<br />

x x<br />

x x x x x<br />

x x x<br />

x x x x x<br />

61


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – NACK<br />

� This subtitle is texture(sampler, 20 po<strong>in</strong>ts uv);<br />

virtual<br />

address<br />

� Bullets are uv blue<br />

NACK<br />

� They have 110% Texture l<strong>in</strong>e Unit spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

…<br />

� Longer virtual address bullets <strong>in</strong> the form NACK<br />

NACK<br />

of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Memory l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

Controller<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

Physical Memory<br />

Page Table<br />

62


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This NACKs subtitle <strong>in</strong> shaders is 20 po<strong>in</strong>ts<br />

void ma<strong>in</strong>()<br />

�{ Bullets are blue<br />

vec4 outColor = vec4(1.0, 1.0, 1.0, 1.0);<br />

� They <strong>in</strong>t code have = sparseTexture(sampler, 110% l<strong>in</strong>e spac<strong>in</strong>g, texCoordVert.xy, 2 po<strong>in</strong>ts outColor); before & after<br />

� Longer if (code == bullets 0) <strong>in</strong> the form of a paragraph are harder to<br />

{<br />

// data resident<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

gl_FragColor = vec4(outColor.rgb, 1.0);<br />

} maximum else recommended number of l<strong>in</strong>es per slide<br />

{<br />

(seven). // NACK<br />

}<br />

gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);<br />

�} Sub bullets look like this<br />

63


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This What subtitle can be is sparse? 20 po<strong>in</strong>ts<br />

� Bullets � Any tile-aligned are blue sub-rectangle of a texture mipmap level<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

64


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This What subtitle can be is sparse? 20 po<strong>in</strong>ts<br />

� Bullets � An entire are mipmap blue level<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

65


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This What subtitle can be is sparse? 20 po<strong>in</strong>ts<br />

� Bullets � Any part are of blue any cubemap face (anyone ever used the bottom<br />

cubemap face for anyth<strong>in</strong>g useful?)<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

66


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Shader<br />

�� This What subtitle can be is sparse? 20 po<strong>in</strong>ts<br />

� Bullets � And any are comb<strong>in</strong>ation blue of everyth<strong>in</strong>g just mentioned<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� One limitation<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

� Everyth<strong>in</strong>g needs to be tile-aligned<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

67


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Driver<br />

�� This Driver subtitle SW stack is 20 functionality po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They<br />

� Create/destroy partially resident resources<br />

have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� Map/unmap <strong>in</strong>dividual tiles<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

� Back virtual allocations by physical memory<br />

(seven).<br />

� Sub bullets look like this<br />

68


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Driver<br />

�� This Back<strong>in</strong>g subtitle storage is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They<br />

� A set of physical allocations managed by the driver<br />

have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

� The goal is to f<strong>in</strong>d balance between the number of<br />

read resources if there <strong>and</strong> is unused <strong>in</strong>sufficient physical l<strong>in</strong>e memory spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Each application has different requirements<br />

� Sub bullets look like this<br />

69


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Driver<br />

0 1 2 3 x 8 9 10 11 x<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

16 17 18 19 x 20 21 22 23 x<br />

12 13 14 15 x 28 29 30 31 x<br />

� Bullets are blue<br />

x x x x x x x x x x<br />

� They have 110% 4 l<strong>in</strong>e 5 6 spac<strong>in</strong>g, 7 x x x 2 po<strong>in</strong>ts x x x before & after<br />

x x x x x x x 24 25 x<br />

� Longer bullets <strong>in</strong> x the x x form x x of x a x paragraph 26 27 x are harder to<br />

x x x x x x x x x x<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended<br />

PRT<br />

number of l<strong>in</strong>es per slide<br />

(seven).<br />

Chunk 1<br />

� Sub bullets look like this<br />

Chunk 2<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br />

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />

70


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g – Driver<br />

0 1 2 3 x 8 9 10 11 x<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

16 17 18 19 x 20 21 x x x<br />

12 13 14 15 x 28 29 x x x<br />

� Bullets are blue<br />

x x x x x x x x x x<br />

� They have 110% 4 l<strong>in</strong>e 5 6 spac<strong>in</strong>g, 7 x x x 2 po<strong>in</strong>ts x x x before & after<br />

x x x x x x x 24 25 x<br />

� Longer bullets <strong>in</strong> x the x x form x x of x a x paragraph 26 27 x are harder to<br />

x x x x x x x x x x<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended<br />

PRT<br />

number of l<strong>in</strong>es per slide<br />

(seven).<br />

Chunk 1<br />

� Sub bullets look like this<br />

Chunk 2<br />

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br />

16 17 18 19 20 21 x x 24 25 26 27 28 29 x x<br />

71


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Summary subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue SVTs PRTs<br />

Address translation Shader code HW page table<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

72


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Summary subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue SVTs PRTs<br />

Address translation Shader code HW page table<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Filter<strong>in</strong>g HW + shader code HW only<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

73


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Summary subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue SVTs PRTs<br />

Address translation Shader code HW page table<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Filter<strong>in</strong>g HW + shader code HW only<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

# read of texture if there fetches is <strong>in</strong>sufficient 2, dependent l<strong>in</strong>e spac<strong>in</strong>g. 1 This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

74


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Summary subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue SVTs PRTs<br />

Address translation Shader code HW page table<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Filter<strong>in</strong>g HW + shader code HW only<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

# read of texture if there fetches is <strong>in</strong>sufficient 2, dependent l<strong>in</strong>e spac<strong>in</strong>g. 1 This is the<br />

Supported maximum formats recommended The ones implemented number of l<strong>in</strong>es All supported per slide by HW<br />

(seven).<br />

� Sub bullets look like this<br />

75


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Summary subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue SVTs PRTs<br />

Address translation Shader code HW page table<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Filter<strong>in</strong>g HW + shader code HW only<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

# read of texture if there fetches is <strong>in</strong>sufficient 2, dependent l<strong>in</strong>e spac<strong>in</strong>g. 1 This is the<br />

Supported maximum formats recommended The ones implemented number of l<strong>in</strong>es All supported per slide by HW<br />

Supported (seven). texture types The ones implemented All supported by HW<br />

� Sub bullets look like this<br />

76


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are Sparse blue Textures <strong>in</strong> OpenGL<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

Graham Sellers<br />

� Longer bullets <strong>in</strong> the Advanced form Micro of a Devices<br />

paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit OpenGL this Extension<br />

text to create a Head<strong>in</strong>g<br />

• GL_AMD_sparse_texture<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

• Major design goals:<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer – M<strong>in</strong>imally bullets <strong>in</strong>vasive <strong>in</strong> the form to the of a OpenGL paragraph API are harder to<br />

read – Easy if there to retrofit is <strong>in</strong>sufficient <strong>in</strong>to exist<strong>in</strong>g l<strong>in</strong>e spac<strong>in</strong>g. application This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – Plays well with non-sparse textures<br />

�– Sub Easy bullets fallback look like path this<br />

78


Edit OpenGL this Extension<br />

text to create a Head<strong>in</strong>g<br />

• Most of the same code will work <strong>in</strong> the<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets absence are blue of the extension<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

�• Two parts to the extension<br />

Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read – Update if there to is the <strong>in</strong>sufficient API – 1 l<strong>in</strong>e function, spac<strong>in</strong>g. a h<strong>and</strong> This full is the of<br />

maximum tokens recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

– Update to the shad<strong>in</strong>g language<br />

� Sub bullets look like this<br />

79


Edit Example this text Us<strong>in</strong>g to Exist<strong>in</strong>g create a Head<strong>in</strong>g OpenGL API<br />

• Use of immutable texture storage<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets GLu<strong>in</strong>t are tex; blue<br />

� They have glGenTextures(1, 110% &tex); l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

glB<strong>in</strong>dTexture(GL_TEXTURE_2D, tex);<br />

glTexStorage2D(GL_TEXTURE_2D, 10, GL_RGBA8, 1024, 1024);<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1024, 1024,<br />

GL_RGBA, GL_UNSIGNED_BYTE, data);<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

• Exist<strong>in</strong>g OpenGL immutable storage API<br />

� Sub bullets look like this<br />

– Declare storage, specify image data<br />

80


Edit Example this text Us<strong>in</strong>g to New create Extension a Head<strong>in</strong>g<br />

• Use of sparse texture storage<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets GLu<strong>in</strong>t are tex; blue<br />

� They have glGenTextures(1, 110% &tex); l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

glB<strong>in</strong>dTexture(GL_TEXTURE_2D, tex);<br />

glTexStorageSparseAMD(GL_TEXTURE_2D, GL_RGBA, 1024, 1024, 1,<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

1, GL_TEXTURE_STORAGE_SPARSE_BIT_AMD);<br />

glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1024, 1024,<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

GL_RGBA, GL_UNSIGNED_BYTE, data);<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

• glTexStorageSparseAMD is the one new<br />

� Sub bullets look like this<br />

function <strong>in</strong> the extension<br />

81


Edit Control this Residency text to create With a Head<strong>in</strong>g Exist<strong>in</strong>g API<br />

• Previous example used glTexSubImage2D<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Upload sub-region of the texture<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Physical<br />

bullets<br />

pages<br />

<strong>in</strong> the<br />

allocated<br />

form of a<br />

on<br />

paragraph<br />

dem<strong>and</strong><br />

are<br />

by the<br />

harder to<br />

read OpenGL if there driver is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum – Unused recommended pages rema<strong>in</strong> number free of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

82


Edit Control this Residency text to create With a Head<strong>in</strong>g Exist<strong>in</strong>g API<br />

• Allocate disjo<strong>in</strong>t chunks<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

glTexStorageSparseAMD(GL_TEXTURE_2D, GL_RGBA, 1024, 1024, 1,<br />

10, GL_TEXTURE_STORAGE_SPARSE_BIT_AMD);<br />

� They have glTexSubImage2D(GL_TEXTURE_2D, 110% l<strong>in</strong>e spac<strong>in</strong>g, 0, 0, 2 0, 256, po<strong>in</strong>ts 256, before & after<br />

GL_RGBA, GL_UNSIGNED_BYTE, data1);<br />

� Longer glTexSubImage2D(GL_TEXTURE_2D, bullets <strong>in</strong> the form of 0, a 768, paragraph 768, 256, 256, are harder to<br />

GL_RGBA, GL_UNSIGNED_BYTE, data2);<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – Enough storage for two 256x256 regions allocated<br />

� Sub bullets look like this<br />

83


Edit Control this Residency text to create With a Head<strong>in</strong>g Exist<strong>in</strong>g API<br />

• Pass NULL to glTexSubImage2D<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 256,<br />

GL_RGBA, GL_UNSIGNED_BYTE, NULL);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer – Makes bullets pages <strong>in</strong> the non-resident form of a paragraph are harder to<br />

read – Driver if there returns is <strong>in</strong>sufficient physical l<strong>in</strong>e pages spac<strong>in</strong>g. to the This pool is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

84


Edit Determ<strong>in</strong><strong>in</strong>g this text Page to create Sizes a Head<strong>in</strong>g<br />

• Sparse Textures rely on VM subsystem<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Pages are 64 kilobytes <strong>in</strong> size on Southern Isl<strong>and</strong>s<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Size<br />

bullets<br />

of a page<br />

<strong>in</strong> the<br />

<strong>in</strong><br />

form<br />

texels<br />

of<br />

depends<br />

a paragraph<br />

on texture<br />

are harder<br />

format<br />

to<br />

read if BPP there is <strong>in</strong>sufficient Texels l<strong>in</strong>e BPP spac<strong>in</strong>g. Tile Width This Tile is Height the<br />

128 4096<br />

128 64 64<br />

maximum 64 recommended 8192 number BC2/3/5/6H/7 of l<strong>in</strong>es 256 per slide 256<br />

32 16384<br />

(seven). 16 32768<br />

8 65636<br />

� Sub bullets look like this<br />

64 128 64<br />

BC1/4 512 256<br />

32 128 128<br />

16 256 128<br />

8 256 256<br />

85


Edit Gett<strong>in</strong>g this Page text to Sizes create from a Head<strong>in</strong>g OpenGL<br />

• Reuse exist<strong>in</strong>g API: glGetInternalFormativ<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets GL<strong>in</strong>t are page_size_x; blue<br />

� They have glGetInternalFormativ(GL_TEXTURE_2D, 110% l<strong>in</strong>e spac<strong>in</strong>g, GL_RGBA8, 2 po<strong>in</strong>ts before & after<br />

GL_VIRTUAL_PAGE_SIZE_{X,Y,Z}_AMD,<br />

sizeof(GL<strong>in</strong>t), &page_size_{x,y,z});<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read – Given if there a target is <strong>in</strong>sufficient <strong>and</strong> format, l<strong>in</strong>e spac<strong>in</strong>g. returns the This page is the size<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

• (seven). It is not necessary to create a texture to get<br />

this <strong>in</strong>formation<br />

� Sub bullets look like this<br />

86


Edit Mipmaps<br />

this text to create a Head<strong>in</strong>g<br />

• Each LOD requires a<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets different are number blue of pages<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

– Each LOD requires fewer <strong>and</strong><br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

fewer pages<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum – Eventually, recommended one LOD does number not of l<strong>in</strong>es per slide<br />

(seven). fill a page<br />

� Sub bullets look like this<br />

– Now what?<br />

87


Edit Low this Resolution text to create Mipmaps a Head<strong>in</strong>g<br />

• Eventually, we make all LODs resident<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Use glGetInternalFormativ to retrieve the lowest<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

sparse level for a given target/format<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

GL<strong>in</strong>t m<strong>in</strong>_sparse_level;<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

glGetInternalFormativ(GL_TEXTURE_2D, GL_RGBA16F,<br />

maximum recommended GL_MIN_SPARSE_LEVEL_AMD, number of l<strong>in</strong>es per slide<br />

1, &m<strong>in</strong>_sparse_level);<br />

(seven).<br />

�– Sub All levels bullets below look like this reside <strong>in</strong> the same page<br />

<strong>and</strong> share residency 88


Edit LOD this Warn<strong>in</strong>gs<br />

text to create a Head<strong>in</strong>g<br />

• A per-texture low water mark is <strong>in</strong>cluded<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Set this to lowest LOD that’s fully resident<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– When<br />

bullets<br />

this is<br />

<strong>in</strong><br />

hit,<br />

the<br />

the<br />

form<br />

shader<br />

of a paragraph<br />

is signaled<br />

are harder to<br />

read – Returned if there is data <strong>in</strong>sufficient is still valid l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

– Start stream<strong>in</strong>g the next mip<br />

(seven).<br />

• Exposed us<strong>in</strong>g the glTexParameter API<br />

� Sub bullets look like this<br />

89


Edit Sett<strong>in</strong>g this the text LOD to create Watermark a Head<strong>in</strong>g<br />

• Exposed us<strong>in</strong>g the glTexParameter API<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets glTexParameteri(GL_TEXTURE_2D, are blue<br />

GL_MIN_WARNING_LOD_AMD, 4);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer – Here, bullets an LOD <strong>in</strong> the warn<strong>in</strong>g form of will a paragraph be returned are to harder the to<br />

read shader if there if <strong>hardware</strong> is <strong>in</strong>sufficient attempts l<strong>in</strong>e spac<strong>in</strong>g. to access This LOD is the 4 or<br />

maximum lower recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

• More on residency returns later...<br />

� Sub bullets look like this<br />

90


Edit Render<strong>in</strong>g this text to to a Sparse create a Texture Head<strong>in</strong>g<br />

• Render to a texture us<strong>in</strong>g an FBO<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

GLu<strong>in</strong>t prt, fbo; � Bullets are blue<br />

glGenTextures(1, &prt);<br />

�glB<strong>in</strong>dTexture(GL_TEXTURE_2D, They have 110% prt); l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

glTexStorageSparseAMD(GL_TEXTURE_2D, GL_RGBA, 1024, 1024,<br />

1, 1, GL_TEXTURE_STORAGE_SPARSE_BIT_AMD);<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1024, 1024, GL_RGBA, GL_UNSIGNED_BYTE, data);<br />

glGenFramebuffers(1, &fbo);<br />

glB<strong>in</strong>dFramebuffer(GL_FRAMEBUFFER, read if there is <strong>in</strong>sufficient fbo); l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, prt, 0);<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – Writes to unmapped regions are silently dropped<br />

� Sub bullets look like this<br />

91


Edit Read<strong>in</strong>g this text From to a create Sparse a Texture Head<strong>in</strong>g<br />

• Read data to memory us<strong>in</strong>g exist<strong>in</strong>g APIs<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Call glGetTexImage to read entire content<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read – B<strong>in</strong>d if there to FBO, is <strong>in</strong>sufficient use glReadPixels l<strong>in</strong>e spac<strong>in</strong>g. or This is the<br />

maximum glBlitFramebuffer recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, prt,<br />

0);<br />

glReadPixels(0, � Sub bullets 0, 1024, 1024, look GL_RGBA, like this GL_UNSIGNED_BYTE, data);<br />

glBlitFramebuffer(0, 0, 1024, 1024, 0, 0, 128, 128, GL_COLOR_BUFFER_BIT, GL_LINEAR);<br />

92


Edit Restrictions this text (or to create Lack Thereof)<br />

a Head<strong>in</strong>g<br />

• Sparse textures have some restrictions:<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Dimensions of the base level must be <strong>in</strong>teger<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

multiples of the page size<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

• This means... no sparse textures below this size<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum – No buffer recommended textures or “TBOs” number of l<strong>in</strong>es per slide<br />

(seven). – No depth or stencil textures, nor MSAA textures<br />

� Sub bullets look like this<br />

93


Edit Manag<strong>in</strong>g this text Failure<br />

to create a Head<strong>in</strong>g<br />

• <strong>Virtual</strong> address space is extremely large<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– It will run out eventually, but it’ll take a while<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– It’s still<br />

bullets<br />

possible<br />

<strong>in</strong> the<br />

to<br />

form<br />

run<br />

of<br />

out<br />

a paragraph<br />

of physical<br />

are<br />

memory<br />

harder to<br />

read – glTexSubImage2D if there is <strong>in</strong>sufficient etc., l<strong>in</strong>e may spac<strong>in</strong>g. fail This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

– Draw calls may fail<br />

(seven).<br />

� Sub bullets look like this<br />

94


Edit Manag<strong>in</strong>g this text Failure<br />

to create a Head<strong>in</strong>g<br />

• Physical memory is a limited resource<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Feel free to create a 4k x 4k x 4k volume<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Don’t<br />

bullets<br />

try to<br />

<strong>in</strong><br />

make<br />

the form<br />

it all<br />

of<br />

resident<br />

a paragraph<br />

at once!<br />

are harder to<br />

• read There if there are is no <strong>in</strong>sufficient sparse l<strong>in</strong>e read-backs spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – glGetTexImage could read gigabytes of data<br />

�– Sub This bullets will fail look like this<br />

95


Edit Sparse this Textures text to create <strong>in</strong> Shaders<br />

a Head<strong>in</strong>g<br />

• Texture type <strong>in</strong> GLSL is the ‘sampler’<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

• Several types of samplers exist...<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer – sampler2D, bullets <strong>in</strong> sampler3D, the form of samplerCUBE,<br />

a paragraph are harder to<br />

read sampler2DArray, if there is <strong>in</strong>sufficient etc. l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

• We didn’t add any new sampler types<br />

(seven).<br />

– Sparse <strong>and</strong> normal textures use the same types<br />

� Sub bullets look like this<br />

96


Edit Sparse this Textures text to create <strong>in</strong> Shaders a Head<strong>in</strong>g<br />

• Read textures us<strong>in</strong>g ‘texture’<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Built-<strong>in</strong> function, with several overloads<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

gvec4 texture(gsampler1D sampler, float P [, float bias]);<br />

�gvec4 Longer texture(gsampler2D bullets sampler, <strong>in</strong> the vec2 form P [, float of bias]); a paragraph are harder to<br />

gvec4 texture(gsampler2DArray sampler, vec3 P [, float bias]);<br />

gvec4 read textureLod(gsampler2D if there is <strong>in</strong>sufficient sampler, vec2 P, float l<strong>in</strong>e lod); spac<strong>in</strong>g. This is the<br />

gvec4 textureProj(gsampler2D sampler, vec4 P [, float bias]);<br />

gvec4 maximum textureOffset(gsampler2D recommended sampler, vec2 P, number ivec2 offset [, of float l<strong>in</strong>es bias]); per slide<br />

// ... etc.<br />

(seven).<br />

� Sub bullets look like this<br />

– We didn’t add any new overloads<br />

97


Edit Extend<strong>in</strong>g this text GLSL<br />

to create a Head<strong>in</strong>g<br />

• Add<strong>in</strong>g new function overloads is difficult<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Need to return a status code <strong>and</strong> a texel<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Need<br />

bullets<br />

user-specified<br />

<strong>in</strong> the form<br />

defaults<br />

of a paragraph<br />

with conditional<br />

are harder to<br />

read move if there like is functionality <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum – Optional recommended parameters <strong>in</strong> number exist<strong>in</strong>g of overloads l<strong>in</strong>es per slide made<br />

(seven). this very difficult<br />

� Sub bullets look like this<br />

98


Edit Extend<strong>in</strong>g this text GLSL to create a Head<strong>in</strong>g<br />

• Added new built-<strong>in</strong> functions<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Return both a status code <strong>and</strong> texel data:<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

<strong>in</strong>t sparseTexture(gsampler2D sampler, vec2 P, <strong>in</strong>out gvec4 texel [, float bias]);<br />

<strong>in</strong>t sparseTextureLod(gsampler2D sampler, vec2 P, float lod, <strong>in</strong>out gvec4 texel);<br />

�// ... Longer etc.<br />

bullets <strong>in</strong> the form of a paragraph are harder to<br />

read – Most if there exist<strong>in</strong>g is <strong>in</strong>sufficient texture functions l<strong>in</strong>e spac<strong>in</strong>g. have This a is the<br />

maximum<br />

sparseTexture<br />

recommended<br />

equivalent<br />

number of l<strong>in</strong>es per slide<br />

(seven).<br />

– Non-sparse textures work with new functions<br />

� Sub bullets look like this<br />

99


Edit Extend<strong>in</strong>g this text GLSL to create | sparseTexture a Head<strong>in</strong>g<br />

• sparseTexture returns two pieces of data:<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

�<strong>in</strong>t sparseTexture(gsampler2D Bullets are blue sampler, vec2 P, <strong>in</strong>out gvec4 texel [, float bias]);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Texel<br />

bullets<br />

data via<br />

<strong>in</strong> the<br />

<strong>in</strong>out<br />

form<br />

parameter<br />

of a paragraph are harder to<br />

read – Residency if there is status <strong>in</strong>sufficient code l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

100


Edit Extend<strong>in</strong>g this text GLSL to create | sparseTexture<br />

a Head<strong>in</strong>g<br />

• Texel data returned <strong>in</strong> <strong>in</strong>out parameter<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– If texel fetch fails, old data rema<strong>in</strong>s <strong>in</strong> variable<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Th<strong>in</strong>k<br />

bullets<br />

of it as<br />

<strong>in</strong><br />

a<br />

the<br />

CMOV<br />

form of<br />

type<br />

a paragraph<br />

operation<br />

are harder to<br />

• read Return if there code is <strong>in</strong>sufficient is <strong>hardware</strong>-dependent<br />

l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – More built-<strong>in</strong> functions for decod<strong>in</strong>g status codes<br />

� Sub bullets look like this<br />

101


Edit Extend<strong>in</strong>g this text GLSL to create | sparseTexture a Head<strong>in</strong>g<br />

• No direct support for ‘default value’<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– But this can be emulated easily:<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

vec4 texel = vec4(1.0, 0.0, 0.7, 1.0); // Default value<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

sparseTexture(s, texCoord, texel);<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

// On success, texel conta<strong>in</strong>s texture data. On failure, it has the shader-supplied<br />

// default value <strong>in</strong> it (p<strong>in</strong>kish magenta here).<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

102


Edit Extend<strong>in</strong>g this text GLSL to create | sparseTexture a Head<strong>in</strong>g<br />

• Orig<strong>in</strong>al functions work on sparse textures<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

vec4 texel = texture(s, texCoord);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer – Return bullets value <strong>in</strong> for the unmapped form of a paragraph regions undef<strong>in</strong>ed are harder to<br />

read – Useful if there when is <strong>in</strong>sufficient residency l<strong>in</strong>e is predeterm<strong>in</strong>ed<br />

spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

103


Edit GLSL this | Residency text to create Information a Head<strong>in</strong>g<br />

• Residency <strong>in</strong>formation returned to shader<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

�vec4 Bullets texel = vec4(1.0, are 0.0, blue 0.7, 1.0); // Default value<br />

<strong>in</strong>t code;<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

code = sparseTexture(s, texCoord, texel);<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

• read Code if there is <strong>in</strong>terpreted is <strong>in</strong>sufficient by l<strong>in</strong>e additional spac<strong>in</strong>g. This functions is the<br />

bool maximum sparseTexelResident(<strong>in</strong>t recommended code); number of l<strong>in</strong>es per slide<br />

bool sparseTexelM<strong>in</strong>LodWarn<strong>in</strong>g(<strong>in</strong>t code);<br />

<strong>in</strong>t sparseTexelLodWarn<strong>in</strong>gFetch(<strong>in</strong>t (seven).<br />

code);<br />

� Sub bullets look like this<br />

104


Edit GLSL this | Residency text to create Information a Head<strong>in</strong>g<br />

• Was texel resident?<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

bool sparseTexelResident(<strong>in</strong>t code);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Returns<br />

bullets<br />

true<br />

<strong>in</strong><br />

if<br />

the<br />

data<br />

form<br />

is valid,<br />

of a paragraph<br />

false otherwise<br />

are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

105


Edit GLSL this | Residency text to create Information a Head<strong>in</strong>g<br />

• Was texel resident?<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

bool sparseTexelResident(<strong>in</strong>t code);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Texel<br />

bullets<br />

miss<br />

<strong>in</strong><br />

is<br />

the<br />

generated<br />

form of<br />

if<br />

a<br />

any<br />

paragraph<br />

required<br />

are<br />

sample<br />

harder to<br />

read is if not there resident, is <strong>in</strong>sufficient <strong>in</strong>clud<strong>in</strong>g: l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum • Texels recommended required for bil<strong>in</strong>ear number or tril<strong>in</strong>ear of l<strong>in</strong>es sampl<strong>in</strong>g per slide<br />

(seven).<br />

• Miss<strong>in</strong>g mip maps, anisotropic filter taps, etc.<br />

� Sub bullets look like this<br />

106


Edit GLSL this | Low-Water text to create Mark a Head<strong>in</strong>g<br />

• Did I hit the low-water mark?<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

bool sparseTexelM<strong>in</strong>LodWarn<strong>in</strong>g(<strong>in</strong>t code);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Occurs<br />

bullets<br />

when<br />

<strong>in</strong> the<br />

generat<strong>in</strong>g<br />

form of a<br />

paragraph<br />

texel requires<br />

are harder<br />

data<br />

to<br />

read from if there an LOD is <strong>in</strong>sufficient lower than l<strong>in</strong>e the spac<strong>in</strong>g. low-water This mark is the<br />

maximum specified recommended by the application number of l<strong>in</strong>es per slide<br />

(seven). – This can be a signal to the application to start<br />

� Sub stream<strong>in</strong>g bullets look more like mip this levels<br />

107


Edit GLSL this | Low-Water text to create Mark a Head<strong>in</strong>g<br />

• What LOD caused the warn<strong>in</strong>g?<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

<strong>in</strong>t sparseTexelLodWarn<strong>in</strong>gFetch(<strong>in</strong>t code);<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– sparseTexelLodWarn<strong>in</strong>gFetch<br />

bullets <strong>in</strong> the form of a paragraph<br />

returns<br />

are<br />

0 if<br />

harder<br />

the<br />

to<br />

read warn<strong>in</strong>g if there was is <strong>in</strong>sufficient not hit l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

108


Edit Sparse this Textures text to create – Use a Cases<br />

Head<strong>in</strong>g<br />

• Drop-<strong>in</strong> replacement for traditional SVT<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Almost... maximum texture size hasn’t grown<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

�• Longer Extremely bullets large <strong>in</strong> the texture form of a arrays paragraph are harder to<br />

read – Only if there populate is <strong>in</strong>sufficient a sub-set l<strong>in</strong>e of spac<strong>in</strong>g. the slices This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – Can elim<strong>in</strong>ate texture b<strong>in</strong>ds <strong>in</strong> some applications<br />

� Sub bullets look like this<br />

109


Edit Sparse this Textures text to create – Use a Cases<br />

Head<strong>in</strong>g<br />

• Large volume textures<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Voxels, medical applications<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Use<br />

bullets<br />

maximum<br />

<strong>in</strong> the<br />

step<br />

form<br />

size<br />

of a<br />

as<br />

paragraph<br />

‘default’ value<br />

are harder to<br />

• read Variable if there size is <strong>in</strong>sufficient texture l<strong>in</strong>e arrays spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven). – Create a large array texture<br />

�– Sub Populate bullets different look like this mip levels <strong>in</strong> each slice<br />

110


Edit Future this Work<br />

text to create a Head<strong>in</strong>g<br />

• Plann<strong>in</strong>g further extension(s)<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

– Application-controlled physical pool<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer<br />

– Map<br />

bullets<br />

the same<br />

<strong>in</strong> the<br />

page<br />

form<br />

multiple<br />

of a paragraph<br />

times<br />

are harder to<br />

read – Partially if there resident is <strong>in</strong>sufficient buffers l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum<br />

•<br />

recommended number of l<strong>in</strong>es per slide<br />

Stream<strong>in</strong>g geometry<br />

(seven).<br />

• Lazy allocation for fragment lists<br />

� Sub bullets look like this<br />

111


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are Demo blue (RAGE runn<strong>in</strong>g PRTs)<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

J.M.P. van Waveren<br />

� Longer bullets <strong>in</strong> the form id Software of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient Graham l<strong>in</strong>e Sellers spac<strong>in</strong>g. This is the<br />

Advanced Micro Devices<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit PRTs this <strong>in</strong> RAGE text to create a Head<strong>in</strong>g<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this<br />

RAGE with PRTs (Image courtesy of id Software)<br />

113


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue Discussion<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit Conclusion<br />

this text to create a Head<strong>in</strong>g<br />

�• This Partially subtitle Resident is Textures 20 po<strong>in</strong>ts<br />

� Bullets – Hardware are implementation blue of virtual <strong>textur<strong>in</strong>g</strong><br />

• Hardware virtual memory subsystem<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

• Shader core feedback<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

– OpenGL extension available<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

• Developer feedback very important<br />

(seven).<br />

� Sub bullets look like this<br />

115


Edit this text to create a Head<strong>in</strong>g<br />

This slide has a 16:9 media w<strong>in</strong>dow<br />

� This subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue Backup<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer bullets <strong>in</strong> the form of a paragraph are harder to<br />

read if there is <strong>in</strong>sufficient l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� Sub bullets look like this


Edit Partially this Resident text to create Textures a Head<strong>in</strong>g<br />

�� This Pag<strong>in</strong>g subtitle is 20 po<strong>in</strong>ts<br />

� Bullets are blue<br />

(for simplicity, assume on-board memory)<br />

� They have 110% l<strong>in</strong>e spac<strong>in</strong>g, 2 po<strong>in</strong>ts before & after<br />

� Longer � H<strong>and</strong>led bullets by the <strong>in</strong> DirectX the form Graphics of a Kernel paragraph subsystem are <strong>and</strong> harder the to<br />

read kernel-mode if there is device <strong>in</strong>sufficient driver l<strong>in</strong>e spac<strong>in</strong>g. This is the<br />

maximum recommended number of l<strong>in</strong>es per slide<br />

(seven).<br />

� The process of mak<strong>in</strong>g resources resident <strong>in</strong> GPU-visible memory<br />

� Regular, non-PRT, resources (textures, buffers) paged <strong>in</strong>/out with<br />

resource granularity<br />

� Sub bullets look like this<br />

117

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!