Fast reconfiguration of graphics pipeline state
First Claim
Patent Images
1. A method for assigning resources used by a plurality of shaders of a graphics pipeline to particular slots of a processing unit, comprising:
- identifying a particular resource/slot arrangement of a first shader;
identifying a particular resource/slot arrangement of a second shader;
identifying a particular resource/slot arrangement of a third shader;
determining a common resource/slot arrangement for at least the first, second and third shaders as an arrangement having a cost lower than a predetermined cost metric, the common resource/slot arrangement based upon the first shader associating a first resource with a first slot, the second shader associating the first resource with the first slot, and the third shader associating the first resource with a second slot different than the first slot; and
binding the first resource to the first slot for the plurality of shaders based upon the determined common resource/slot arrangement, such that the third shader is modified to associate the first resource with the first slot instead of the second slot,at least some of at least one of the identifying a particular resource/slot arrangement of a first shader, identifying a particular resource/slot arrangement of a second shader, identifying a particular resource/slot arrangement of a third shader, determining, binding, and modifying implemented at least in part via a microprocessor.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and technologies are provided for binding resources to particular slots associated with shaders in a graphics pipeline. Resource dependencies between resources being utilized by each shader can be determined, and, based on these resource dependencies, common resource/slot associations can be computed. Each common resource/slot association identifies a particular one of the resources to be associated with a particular one of the slots.
34 Citations
19 Claims
-
1. A method for assigning resources used by a plurality of shaders of a graphics pipeline to particular slots of a processing unit, comprising:
-
identifying a particular resource/slot arrangement of a first shader; identifying a particular resource/slot arrangement of a second shader; identifying a particular resource/slot arrangement of a third shader; determining a common resource/slot arrangement for at least the first, second and third shaders as an arrangement having a cost lower than a predetermined cost metric, the common resource/slot arrangement based upon the first shader associating a first resource with a first slot, the second shader associating the first resource with the first slot, and the third shader associating the first resource with a second slot different than the first slot; and binding the first resource to the first slot for the plurality of shaders based upon the determined common resource/slot arrangement, such that the third shader is modified to associate the first resource with the first slot instead of the second slot, at least some of at least one of the identifying a particular resource/slot arrangement of a first shader, identifying a particular resource/slot arrangement of a second shader, identifying a particular resource/slot arrangement of a third shader, determining, binding, and modifying implemented at least in part via a microprocessor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable storage device comprising computer executable instructions that when executed via a processor on a computer perform a method for assigning resources used by at least two shaders of a graphics pipeline to particular slots of a graphics processing unit, comprising:
-
identifying a first shader assigning a first resource to a first slot; identifying a second shader assigning the first resource to a second slot, the second slot different than the first slot; and reassigning, at the second shader, the first resource to the first slot to achieve a cost lower than a predetermined cost metric. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method for modifying a configuration of at least one shader having a particular resource/slot association, comprising:
-
scanning respective resource dependencies in a dependency tree, respective resources bound to respective slots of a parent object in the dependency tree, the parent object representative of a shader; computing a cost associated with a number of resource configurations of the dependency tree; selecting a particular resource configuration of the dependency tree which reduces a number of device reconfigurations when switching between different shaders; and modifying a configuration of at least one shader based upon the particular resource configuration that is selected such that a resource that was bound to a first slot for the at least one shader is bound to a second slot, at least some of at least one of the scanning, computing, selecting, and modifying implemented at least in part via a microprocessor. - View Dependent Claims (17, 18, 19)
-
Specification