Virtual texturing in software and hardware final
Virtual texturing in software and hardware final
Virtual texturing in software and hardware final
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
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