gxquickly / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

Optimize EGL/Renderer startup time #1014

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
There's possibly some work we can do here to speed up ANGLE.

Original issue reported on code.google.com by jmad...@chromium.org on 28 May 2015 at 5:30

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/57df19ce260fcf386f2ef0114d37d5bb4b0cc191

commit 57df19ce260fcf386f2ef0114d37d5bb4b0cc191
Author: Jamie Madill <jmadill@chromium.org>
Date: Thu May 28 17:32:21 2015

Add timing stats for Renderer11::initializeDevice.

This gives us insight to what we can optimize away.

BUG=angleproject:1014

Change-Id: I86208c5cbebe14905a05d0859b9e37368f4c25d4
Reviewed-on: https://chromium-review.googlesource.com/273862
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/57df19ce260fcf386f2ef0114d37d5bb4b0cc191/src/libANGLE/renderer/
d3d/d3d11/Renderer11.cpp

Original comment by bugdroid1@chromium.org on 28 May 2015 at 5:59

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/ce232678da987be0bc5f29dddf4ae96f7ff7b866

commit ce232678da987be0bc5f29dddf4ae96f7ff7b866
Author: Jamie Madill <jmadill@chromium.org>
Date: Thu May 28 17:26:02 2015

Add a perf test for eglInitialize.

Also shutdown performance, since it's not easy to only test one.

BUG=angleproject:1014

Change-Id: I9d06426788ed336031271f8876589b111f1294b7
Reviewed-on: https://chromium-review.googlesource.com/273974
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>

[modify] 
http://crrev.com/ce232678da987be0bc5f29dddf4ae96f7ff7b866/src/libANGLE/Display.c
pp
[modify] 
http://crrev.com/ce232678da987be0bc5f29dddf4ae96f7ff7b866/util/EGLWindow.cpp
[add] 
http://crrev.com/ce232678da987be0bc5f29dddf4ae96f7ff7b866/src/tests/perf_tests/E
GLInitializePerf.cpp
[modify] 
http://crrev.com/ce232678da987be0bc5f29dddf4ae96f7ff7b866/src/tests/angle_perfte
sts.gypi

Original comment by bugdroid1@chromium.org on 29 May 2015 at 5:54

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/10eb591a434c48f0ef9ad2cda2f4867bacd1c9f9

commit 10eb591a434c48f0ef9ad2cda2f4867bacd1c9f9
Author: Jamie Madill <jmadill@chromium.org>
Date: Thu May 28 17:26:03 2015

D3D11: Optimize sample caps checks.

We don't need to check NPOT sample counts. This should save us some
time on eglInitialize.

BUG=angleproject:1014

Change-Id: Id3b0a440689746d5de9a7fbc3641ff9452b18601
Reviewed-on: https://chromium-review.googlesource.com/274430
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>

[modify] 
http://crrev.com/10eb591a434c48f0ef9ad2cda2f4867bacd1c9f9/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.cpp

Original comment by bugdroid1@chromium.org on 2 Jun 2015 at 1:47

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/450a80a2c0e9e3115f00fb61553f901ece7c17a8

commit 450a80a2c0e9e3115f00fb61553f901ece7c17a8
Author: Jamie Madill <jmadill@chromium.org>
Date: Tue Jun 09 16:57:47 2015

d3d11: Add a histogram to capture DLL loading time.

This should complete the breakdown of the time we spent in
eglInitialize.

BUG=angleproject:1014
BUG=436191

Change-Id: I3b44f10c56322924f9391a56973df5f439fa83bb
Reviewed-on: https://chromium-review.googlesource.com/276268
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>

[modify] 
http://crrev.com/450a80a2c0e9e3115f00fb61553f901ece7c17a8/src/libANGLE/renderer/
d3d/d3d11/Renderer11.cpp

Original comment by bugdroid1@chromium.org on 9 Jun 2015 at 7:48

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/396ee48b639189465039cd62ef8409e86d5f6dd1

commit 396ee48b639189465039cd62ef8409e86d5f6dd1
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:07 2015

Add generated tables to mirror D3D11 format support.

These tables can save us on startup time. Instead of querying the
tables, we can keep certain assumptions about texture formats
because certain formats are guaranteed to be supported in various
feature levels.

Testing with angle_perftests indicates this patch series will save
about 50% of the time we spend in Renderer11::initializeDevice.

BUG=angleproject:1014

Change-Id: I84dbeaba1d1c635ad60c8413705cc41af8a51f06
Reviewed-on: https://chromium-review.googlesource.com/275772
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[add] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.h
[modify] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/Renderer11.cpp
[add] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.cpp
[add] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/tests/gl_tests/D3D
11FormatTablesTest.cpp
[modify] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libGLESv2.gypi
[modify] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/tests/angle_end2en
d_tests.gypi
[add] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[add] 
http://crrev.com/396ee48b639189465039cd62ef8409e86d5f6dd1/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 10:46

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/a3028ab99b70c216368a876cdffe44b0b2239fcf

commit a3028ab99b70c216368a876cdffe44b0b2239fcf
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:08 2015

Add baked DXGI format info for 2D/3D/Cube textures.

This saves us from querying a lot of the formats on startup.

BUG=angleproject:1014

Change-Id: I499625b9a131cf10791d1580d7a7b477a161045a
Reviewed-on: https://chromium-review.googlesource.com/275773
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/a3028ab99b70c216368a876cdffe44b0b2239fcf/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/a3028ab99b70c216368a876cdffe44b0b2239fcf/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[modify] 
http://crrev.com/a3028ab99b70c216368a876cdffe44b0b2239fcf/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 10:46

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/79ae150ed273f4c5e94b89be5d913c6b252ff1dd

commit 79ae150ed273f4c5e94b89be5d913c6b252ff1dd
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:52:00 2015

Revert "Add baked DXGI format info for 2D/3D/Cube textures."

Hidden conflict with Geoff's test refactor patch.

BUG=angleproject:1014

This reverts commit a3028ab99b70c216368a876cdffe44b0b2239fcf.

Change-Id: Ic202e377032e9c74f62450ba0ffcba85a1fc0cc7
Reviewed-on: https://chromium-review.googlesource.com/276773
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[modify] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 10:52

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c

commit 00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:52:51 2015

Revert "Add generated tables to mirror D3D11 format support."

Hidden conflict with Geoff's test refactor patch.

BUG=angleproject:1014

This reverts commit 396ee48b639189465039cd62ef8409e86d5f6dd1.

Change-Id: I8182acb350b61b31f4040a20c86652e23706905a
Reviewed-on: https://chromium-review.googlesource.com/276774
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[delete] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.h
[modify] 
http://crrev.com/00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c/src/libANGLE/renderer/
d3d/d3d11/Renderer11.cpp
[delete] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.cpp
[delete] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/tests/gl_tests/D3D
11FormatTablesTest.cpp
[modify] 
http://crrev.com/00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c/src/libGLESv2.gypi
[modify] 
http://crrev.com/00787935ebf0511a1edbc5cd53ba6fe8a50bbf8c/src/tests/angle_end2en
d_tests.gypi
[delete] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[delete] 
http://crrev.com/79ae150ed273f4c5e94b89be5d913c6b252ff1dd/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 10:53

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/5d121e1ef56340334d9b062f635b4e9e2e437317

commit 5d121e1ef56340334d9b062f635b4e9e2e437317
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:56:04 2015

Add generated tables to mirror D3D11 format support.

*re-land with fix for test build*

These tables can save us on startup time. Instead of querying the
tables, we can keep certain assumptions about texture formats
because certain formats are guaranteed to be supported in various
feature levels.

Testing with angle_perftests indicates this patch series will save
about 50% of the time we spend in Renderer11::initializeDevice.

BUG=angleproject:1014

Change-Id: I5477eea3e8433d36119cd099fb0c08eea168489a
Reviewed-on: https://chromium-review.googlesource.com/276758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[add] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.h
[modify] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/Renderer11.cpp
[add] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.cpp
[add] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/tests/gl_tests/D3D
11FormatTablesTest.cpp
[modify] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libGLESv2.gypi
[modify] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/tests/angle_end2en
d_tests.gypi
[add] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[add] 
http://crrev.com/5d121e1ef56340334d9b062f635b4e9e2e437317/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 10:59

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/22cebb0a7dd94f75746dc0bc6c51f2dadccd2703

commit 22cebb0a7dd94f75746dc0bc6c51f2dadccd2703
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:59:21 2015

Revert "Revert "Add baked DXGI format info for 2D/3D/Cube textures.""

Parent patch fixed.

BUG=angleproject:1014

This reverts commit 79ae150ed273f4c5e94b89be5d913c6b252ff1dd.

Change-Id: I6431d73e5a766d1937732ddb7964751d46465674
Reviewed-on: https://chromium-review.googlesource.com/276776
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/22cebb0a7dd94f75746dc0bc6c51f2dadccd2703/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/22cebb0a7dd94f75746dc0bc6c51f2dadccd2703/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[modify] 
http://crrev.com/22cebb0a7dd94f75746dc0bc6c51f2dadccd2703/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 10 Jun 2015 at 11:00

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/6ffeb744a6b9ca6c9e73cff7365d22dff75fd639

commit 6ffeb744a6b9ca6c9e73cff7365d22dff75fd639
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:06 2015

Add more detailed captures to EGL init perf test.

We can use the ANGLE platform to capture more specific information
than total number of iterations. We can also capture time spent
initializing DLLs, calling D3D11CreateDevice and allocating some
default resources.

BUG=angleproject:1014

Change-Id: If0f4965e7aac22eb09dfa0d2300ff449e7481f6e
Reviewed-on: https://chromium-review.googlesource.com/276631
Reviewed-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>

[modify] 
http://crrev.com/6ffeb744a6b9ca6c9e73cff7365d22dff75fd639/src/tests/perf_tests/E
GLInitializePerf.cpp

Original comment by bugdroid1@chromium.org on 11 Jun 2015 at 8:34

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/a986c834d339fc7addd435e8a58063649851c7f7

commit a986c834d339fc7addd435e8a58063649851c7f7
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:09 2015

Implement DXGI shader sample format tables.

This saves us some startup time in the D3D11 Renderer.

BUG=angleproject:1014

Change-Id: I5d2607b58a86ee0a8932032a0f8a31b21d39b525
Reviewed-on: https://chromium-review.googlesource.com/275774
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/a986c834d339fc7addd435e8a58063649851c7f7/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/a986c834d339fc7addd435e8a58063649851c7f7/src/libANGLE/renderer/
d3d/d3d11/gen_dxgi_support_tables.py
[modify] 
http://crrev.com/a986c834d339fc7addd435e8a58063649851c7f7/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 1:56

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/187d44529439ab8c7f6b6629d7ec3d5719a67492

commit 187d44529439ab8c7f6b6629d7ec3d5719a67492
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:10 2015

Add DXGI RenderTarget info to the format tables.

This will save us some time on D3D11 startup.

BUG=angleproject:1014

Change-Id: Ic00b3dfd9f6230d2d54e6e9bb74be55b923697fe
Reviewed-on: https://chromium-review.googlesource.com/275775
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/187d44529439ab8c7f6b6629d7ec3d5719a67492/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/187d44529439ab8c7f6b6629d7ec3d5719a67492/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 1:57

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/3973c7e3eabc60ed99656d0a096d604feaf94697

commit 3973c7e3eabc60ed99656d0a096d604feaf94697
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 18:54:11 2015

Add DXGI format info for depth-stencil.

This will save us some queries on D3D11 startup.

BUG=angleproject:1014

Change-Id: I5aaeec43d3b9bc73d011de17e2abac902ac3b7b9
Reviewed-on: https://chromium-review.googlesource.com/275776
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/3973c7e3eabc60ed99656d0a096d604feaf94697/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/3973c7e3eabc60ed99656d0a096d604feaf94697/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 1:57

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/8eeb2bd179ce5eb477331a2b34386dc395b69b56

commit 8eeb2bd179ce5eb477331a2b34386dc395b69b56
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:56:09 2015

Add multisample render target info to DXGI tables.

Saves us some time on startup. Also assume every multisample format
can support 1x multisampling, and that if we support a higher format
we support all lower sample counts (eg - if we support 16x we support
8x and 4x, etc)

BUG=angleproject:1014

Change-Id: I62143e5db561b717edd1a0c96f5e3acd4de3d154
Reviewed-on: https://chromium-review.googlesource.com/275777
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/8eeb2bd179ce5eb477331a2b34386dc395b69b56/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.cpp
[modify] 
http://crrev.com/8eeb2bd179ce5eb477331a2b34386dc395b69b56/src/libANGLE/Caps.cpp
[modify] 
http://crrev.com/8eeb2bd179ce5eb477331a2b34386dc395b69b56/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_table.cpp
[modify] 
http://crrev.com/8eeb2bd179ce5eb477331a2b34386dc395b69b56/src/libANGLE/renderer/
d3d/d3d11/dxgi_support_data.json

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 8:37

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/e636e140fe2b964eff6838a378532d2dff44a1a8

commit e636e140fe2b964eff6838a378532d2dff44a1a8
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:56:11 2015

Blit11: Defer built-in shader loads.

Introduce a 'DeferredShader' utility class. Other classes can use
DeferredShader to delay loading shader resources until we render
with them, which saves on loading time as well as memory, if we
aren't using particular shaders.

BUG=angleproject:1014

Change-Id: Ic6767c3c422a7fedbf23cce5d0c9d822aaf2e652
Reviewed-on: https://chromium-review.googlesource.com/275778
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/e636e140fe2b964eff6838a378532d2dff44a1a8/src/libANGLE/renderer/
d3d/d3d11/Blit11.cpp
[modify] 
http://crrev.com/e636e140fe2b964eff6838a378532d2dff44a1a8/src/libANGLE/renderer/
d3d/d3d11/Blit11.h
[modify] 
http://crrev.com/e636e140fe2b964eff6838a378532d2dff44a1a8/src/libANGLE/renderer/
d3d/d3d11/renderer11_utils.h

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 8:46

GoogleCodeExporter commented 9 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/3975ddec952c8910e0854d0b40c0f96955b018fb

commit 3975ddec952c8910e0854d0b40c0f96955b018fb
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jun 10 22:56:12 2015

Blit11: Defer loading some resources until we use them.

We can also defer loading InputLayouts and other resources in Blit11
if we don't need them immediately.

BUG=angleproject:1014

Change-Id: I859583e4696e5864dfd8d436143ed9ddbc2fd60d
Reviewed-on: https://chromium-review.googlesource.com/275779
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>

[modify] 
http://crrev.com/3975ddec952c8910e0854d0b40c0f96955b018fb/src/libANGLE/renderer/
d3d/d3d11/Blit11.cpp
[modify] 
http://crrev.com/3975ddec952c8910e0854d0b40c0f96955b018fb/src/libANGLE/renderer/
d3d/d3d11/Blit11.h

Original comment by bugdroid1@chromium.org on 12 Jun 2015 at 8:46