US 12,412,230 B2
Optimizing compilation of shaders
Ivan Nevraev, Redmond, WA (US); Cole Brooking, Woodinville, WA (US); J. Andrew Goossen, Issaquah, WA (US); Eric Christoffersen, Beaux Arts, WA (US); and Jason Strayer, Seattle, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jun. 7, 2022, as Appl. No. 17/834,889.
Application 17/834,889 is a division of application No. 16/263,778, filed on Jan. 31, 2019, granted, now 11,379,943.
Application 16/263,778 is a continuation of application No. 14/612,224, filed on Feb. 2, 2015, granted, now 10,210,591, issued on Feb. 19, 2019.
Prior Publication US 2022/0318945 A1, Oct. 6, 2022
Int. Cl. G06T 1/20 (2006.01); G09G 5/36 (2006.01)
CPC G06T 1/20 (2013.01) [G09G 5/363 (2013.01); G09G 2360/02 (2013.01); G09G 2360/10 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computing device, comprising:
one or more processors;
one or more hardware-based memory devices storing computer executable instructions which, when executed by the one or more processors, cause the computing device to:
capture a snapshot of an executing application, wherein the snapshot includes a data log of information about operation of the computing device while executing the application;
identify multiple shaders used in the snapshot;
obtain default compilation parameters for the multiple shaders;
determine variations of compilation parameters for each of the multiple shaders, wherein the variations of compilation parameters are based on a first limit on a number of registers that are allowed to be used during scheduling and a second limit on a number of registers that are allowed to be used during register allocation;
compile, by a shader compiler, the variations of compilation parameters for the multiple shaders into multiple compiled shaders; and
re-execute the snapshot using each of the multiple compiled shaders to compute performance metrics for each of the multiple compiled shaders during the snapshot.