US9727339B2ActiveUtilityA1

Method and system for distributed shader optimization

Assignee: NVIDIA CORPPriority: Jul 18, 2013Filed: Jul 18, 2013Granted: Aug 8, 2017
Est. expiryJul 18, 2033(~7 yrs left)· nominal 20-yr term from priority
Inventors:Jeremy Zelsnack
G06F 8/443G06F 8/44G06F 9/38
81
PatentIndex Score
12
Cited by
4
References
22
Claims

Abstract

Embodiments of the present invention are operable to communicate a list of important shaders and their current best-known compilations to remote client devices over a communications network. Client devices are allowed to produce modified shader compilations by varying optimizations. If a client device produces a modified compilation that beats an important shader's current best-known compilation, embodiments of the present invention can communicate this new best-known shader compilation back to a host computer system. Furthermore, embodiments of the present invention may periodically broadcast the new best-known shader compilation back to client devices for possible further optimization or for efficient rendering operations using the best-known shader compilation.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of optimizing shader code, said method comprising:
 a client device performing optimization procedures on a shader to produce a modified shader compilation result, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; 
 comparing said modified shader compilation result to said current best-known shader compilation result to determine if said modified shader compilation result has a reduced compile time than said current best-known shader compilation result associated with said shader; and 
 provided said modified shader compilation result has a reduced compile time than said current best-known shader compilation result, communicating said modified shader compilation result to a remote device over a communication network for said remote device to communicate said modified shader compilation result to said plurality of client devices as a new best-known shader compilation result. 
 
     
     
       2. The method as described in  claim 1 , wherein said performing further comprises using a plurality of different optimization passes on said shader with a plurality of corresponding optimization parameters. 
     
     
       3. The method as described in  claim 1 , wherein said performing further comprises heuristically determining an order for executing optimization passes on said shader. 
     
     
       4. The method as described in  claim 1 , wherein said performing further comprises performing said optimization procedures responsive to receiving a communication from said remote device over said communications network concerning said shader. 
     
     
       5. The method as described in  claim 1 , wherein said comparing further comprises comparing shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent shader compile times. 
     
     
       6. The method as described in  claim 1 , wherein said modified shader compilation result comprises shader latency scores. 
     
     
       7. The method as described in  claim 6 , wherein said modified shader compilation result further comprises a set of optimization parameters and an order for executing optimization passes on said shader. 
     
     
       8. A system for optimizing shader code, said system comprising:
 a memory; 
 a processor coupled to said memory and configured to: receive a modified shader compilation result concerning a shader from a remote client device over a communication network, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; 
 compare said modified shader compilation result to said current best-known shader compilation result to determine a new best-known shader compilation result associated with said shader provided said modified shader compilation result has a reduced compile time than said current best-known shader compilation result; and 
 communicate said modified shader compilation result to a plurality of remote devices over said communication network, wherein said modified shader compilation result is said new best-known shader compilation result associated with said shader. 
 
     
     
       9. The system as described in  claim 8 , wherein said modified shader compilation result further comprises a shader latency score. 
     
     
       10. The system as described in  claim 9 , wherein said modified shader compilation result further comprises a set of optimization parameters and an order for executing optimization passes. 
     
     
       11. The system as described in  claim 8 , wherein said processor is further configured to compare shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent compile times. 
     
     
       12. The system as described in  claim 8 , wherein said modified shader compilation result comprises optimization parameters, an order for executing optimization passes on said shader, and a binary executable. 
     
     
       13. The system as described in  claim 8 , wherein said modified shader compilation result comprises a shader latency score and a binary executable. 
     
     
       14. The system as described in  claim 8 , wherein said processor is further configured to communicate a request for said plurality of client devices to optimize said modified shader compilation result. 
     
     
       15. A method of optimizing shader code, said method comprising:
 receiving a modified shader compilation result concerning a shader from a remote client device over a communication network, wherein said modified shader compilation result differs from a current best-known shader compilation result associated with said shader known among a plurality of client devices; 
 comparing said modified shader compilation result to said current best-known shader compilation result to determine a new best-known shader compilation result associated with said shader based on said modified shader compilation result having a reduced compile time compared to said current best-known shader compilation result; and 
 provided said modified shader compilation result is said new best-known shader compilation result associated with said shader, communicating said modified shader compilation result to a plurality of remote client devices over said communication network. 
 
     
     
       16. The method as described in  claim 15 , wherein said modified shader compilation result comprises a shader latency score. 
     
     
       17. The method as described in  claim 16 , wherein said shader latency score is based on a number of clock cycles used to compile said shader. 
     
     
       18. The method as described in  claim 15 , wherein said modified shader compilation result comprises a set of optimization parameters and an order for executing optimization passes. 
     
     
       19. The method as described in  claim 15 , wherein said comparing further comprises comparing shader latency scores associated with said modified shader compilation result and said current best-known shader compilation result, wherein said shader latency scores represent shader compile times. 
     
     
       20. The method as described in  claim 15 , wherein said modified shader compilation result comprises optimization parameters, an order for executing optimization passes on said shader, and a binary executable. 
     
     
       21. The method as described in  claim 15 , wherein said modified shader compilation result comprises a shader latency score and a binary executable. 
     
     
       22. The method as described in  claim 15 , wherein said communicating further comprises communicating a request for said plurality of remote client devices to optimize said modified shader compilation result.

Join the waitlist — get patent alerts

Track US9727339B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.