Agenda GPU Hardware Queue Flip Queue CPU Queues

  • Slides: 45
Download presentation

Agenda

Agenda

GPU Hardware Queue Flip Queue CPU Queues CPU Threads

GPU Hardware Queue Flip Queue CPU Queues CPU Threads

Feature Level 9. 1 9. 3 Texture size 2048 x 2048 4096 x 4096

Feature Level 9. 1 9. 3 Texture size 2048 x 2048 4096 x 4096 Pixel shader instructions 64 arithmetic, 32 sample 512 total

I/O Cost 1 2 3 Operation Screen Fill w/Solid Color Screen Fill w/Texture &

I/O Cost 1 2 3 Operation Screen Fill w/Solid Color Screen Fill w/Texture & Alpha Blend

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

using namespace Windows: : Graphics: : Display; float Convert. Dips. To. Pixels(float dips) {

using namespace Windows: : Graphics: : Display; float Convert. Dips. To. Pixels(float dips) { static const float dips. Per. Inch = 96. 0 f; return floor(dips*Display. Properties: : Logical. Dpi/dips. Per. Inch+0. 5 f); } … Platform: : Agile<Windows: : UI: : Core. Window> m_window; float swapchain. Width = Convert. Dips. To. Pixels(m_window->Bounds. Width); float swapchain. Height = Convert. Dips. To. Pixels(m_window->Bounds. Height);

m_swap. Chain->Present(1, 0); // present the image on the display Com. Ptr<ID 3 D

m_swap. Chain->Present(1, 0); // present the image on the display Com. Ptr<ID 3 D 11 View> view; m_render. Target. View. As(&view); // get the view on the RT m_d 3 d. Context->Discard. View(view. Get()); // discard the view

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

Graphics memory GPU shader cores Memory bus

static const float bright. Threshold = 0. 5 f; Texture 2 D source. Texture

static const float bright. Threshold = 0. 5 f; Texture 2 D source. Texture : register(t 0); float 4 Down. Scale 3 x 3 Bright. Pass(Quad. Vertex. Shader. Output input) : SV_TARGET { float 3 bright. Color = 0; // Gather 16 adjacent pixels (each bilinear sample reads a 2 x 2 region) bright. Color = source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, -1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, 1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2( 1, 1)). rgb; bright. Color /= 4. 0 f; // Brightness thresholding bright. Color = max(0, bright. Color - bright. Threshold); return float 4(bright. Color, 1. 0 f); }

static const min 16 float bright. Threshold = (min 16 float)0. 5; Texture 2

static const min 16 float bright. Threshold = (min 16 float)0. 5; Texture 2 D<min 16 float 4> source. Texture : register(t 0); float 4 Down. Scale 3 x 3 Bright. Pass(Quad. Vertex. Shader. Output input) : SV_TARGET { min 16 float 3 bright. Color = 0; // Gather 16 adjacent pixels (each bilinear sample reads a 2 x 2 region) bright. Color = source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, -1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, 1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2( 1, 1)). rgb; bright. Color /= (min 16 float)4. 0; // Brightness thresholding bright. Color = max(0, bright. Color - bright. Threshold); return float 4(bright. Color, 1. 0 f); }

static const min 16 float bright. Threshold = (min 16 float)0. 5; Texture 2

static const min 16 float bright. Threshold = (min 16 float)0. 5; Texture 2 D<min 16 float 4> source. Texture : register(t 0); float 4 Down. Scale 3 x 3 Bright. Pass(Quad. Vertex. Shader. Output input) : SV_TARGET { min 16 float 3 bright. Color = 0; // Gather 16 adjacent pixels (each bilinear sample reads a 2 x 2 region) bright. Color = source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, -1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2(-1, 1)). rgb; bright. Color += source. Texture. Sample(linear. Sampler, input. tex, int 2( 1, 1)). rgb; bright. Color /= (min 10 int)4. 0; // Brightness thresholding bright. Color = max(0, bright. Color - bright. Threshold); return float 4(bright. Color, 1. 0 f); }

http: //blogs. msdn. com/b/dsvc/archive/2012/10/26/windows-rt-windows-store-appdebugging. aspx http: //code. msdn. microsoft. com/windowsapps/Geometry-Realization-963 be 8 b 7#content

http: //blogs. msdn. com/b/dsvc/archive/2012/10/26/windows-rt-windows-store-appdebugging. aspx http: //code. msdn. microsoft. com/windowsapps/Geometry-Realization-963 be 8 b 7#content http: //msdn. microsoft. com/enus/library/windows/desktop/jj 585574(v=vs. 85). aspx http: //msdn. microsoft. com/enus/library/windows/desktop/hh 404562(v=vs. 85). aspx

http: //msdn. microsoft. com/en. US/windows/apps/br 229512 http: //design. windows. com/ http: //code. msdn. microsoft.

http: //msdn. microsoft. com/en. US/windows/apps/br 229512 http: //design. windows. com/ http: //code. msdn. microsoft. com/windows apps/Windows-8 -Modern-Style-App. Samples http: //channel 9. msdn. com/Windows http: //aka. ms/Build. Sessions