A system, method and computer program product are provided for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline. Initially, a first instruction defined by the graphics application program interface is identif
A system, method and computer program product are provided for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline. Initially, a first instruction defined by the graphics application program interface is identified. A first operation is performed on graphics data based on the first instruction utilizing the hardware graphics pipeline. Any some point, the present technique may involve branching to an additional instruction defined by the graphics application program interface other than a subsequent sequential instruction. Next, another operation is performed on the graphics data based on the additional instruction utilizing the hardware graphics pipeline.
대표청구항▼
The invention claimed is: 1. A method for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: identifying a first instruction defined by the graphics application program interface; performing a fir
The invention claimed is: 1. A method for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: identifying a first instruction defined by the graphics application program interface; performing a first operation on graphics data based on the first instruction utilizing the hardware graphics pipeline; branching to an additional instruction defined by the graphics application program interface other than a subsequent sequential instruction; and performing another operation on the graphics data based on the additional instruction utilizing the hardware graphics pipeline; wherein the branching is used during a skinning operation. 2. The method as recited in claim 1, wherein the branching includes computing an index, looking up an entry in a table based on the index, and branching to the instruction associated with the entry. 3. The method as recited in claim 2, wherein the index is computed utilizing an address register. 4. The method as recited in claim 1, wherein the branching occurs conditionally. 5. The method as recited in claim 4, wherein the branching occurs conditionally utilizing a register. 6. The method as recited in claim 5, wherein the register includes a condition code register. 7. The method as recited in claim 6, wherein the condition code register includes a multi-component condition code register for storing a plurality of condition codes. 8. The method as recited in claim 7, wherein the condition codes are associated with x-values, y-values, z-values, and w-values. 9. The method as recited in claim 8, and further comprising writing the graphics data to a destination register, wherein the condition code register is used to mask the writing of the graphics data to the destination register. 10. The method as recited in claim 9, wherein the writing of the graphics data to the destination register is individually masked for each of the x-values, y-values, z-values, and w-values. 11. The method as recited in claim 7, wherein at least one instruction defined by the graphics application program interface is capable of modifying the condition codes. 12. The method as recited in claim 7, wherein each component of the condition code is selected from the group consisting of less than, equal to, greater than, and unordered. 13. The method as recited in claim 7, and further comprising performing tests with the condition codes, the tests selected from the group consisting of less than, greater than, greater than or equal, less than or equal, equal, not equal, false, and true. 14. The method as recited in claim 13, wherein the testing includes programmable testing. 15. The method as recited in claim 13, wherein the testing involves multiple tests. 16. The method as recited in claim 15, wherein the branching is conditioned upon results of the multiple tests. 17. The method as recited in claim 13, wherein the operation associated with the additional instruction is not performed if the test is false. 18. The method as recited in claim 13, wherein a result of the operation associated with the additional instruction is not written if the test is false. 19. The method as recited in claim 6, wherein a result of the operation associated with the additional instruction is used to update the condition code register. 20. The method as recited in claim 6, wherein the condition code register includes floating point components. 21. The method as recited in claim 1, wherein a result of the operation associated with the additional instruction is used to update a register. 22. The method as recited in claim 1, wherein a loop is executed utilizing the branching. 23. The method as recited in claim 1, wherein the additional instruction is associated with a predetermined subroutine. 24. The method as recited in claim 1, wherein the operation associated with the first instruction includes a return operation. 25. The method as recited in claim 1, wherein a plurality of subroutines are called in a nested fashion. 26. The method as recited in claim 25, wherein four or less levels of subroutines are called. 27. The method as recited in claim 1, and further comprising writing the graphics data to a register. 28. The method as recited in claim 27, and further comprising masking the graphics data written to the register. 29. The method as recited in claim 1, wherein the instructions are capable of writing to clip distance registers used to control primitive clipping. 30. The method as recited in claim 1, wherein a component-wise absolute value operation is capable of being performed on each of a plurality of operands loaded by one of the instructions. 31. The method as recited in claim 1, wherein the operations are selected from the group consisting of a branch operation, a call operation, a return operation, a set-on-equal-to operation, a set false operation, a set-on-greater-than operation, a set-on-less-than-or-equal operation, a set-on-not-equal-to operation, a set true operation, a no operation, an address register load with rounding operation, an address register add operation, a set sign operation, a move operation, a multiply operation, an addition operation, a multiply and addition operation, a reciprocal operation, a reciprocal square Toot operation, a three component dot product operation, a four component dot product operation, a distance vector operation, a minimum operation, a maximum operation, a set-on-less-than operation, a set-on-greater-or-equal-than operation, an exponential operation, a logarithm operation, and/or a light coefficients operation. 32. The method as recited in claim 1, wherein the operations include at least ten (10) operations selected from the group consisting of a branch operation, a call operation, a return operation, a cosine operation, a sine operation, a floor operation, a fraction operation, a set-on-equal-to operation, a set false operation, a set-on-greater-than operation, a set-on-less-than-or-equal operation, a set-on-not-equal-to operation, a set true operation, a no operation, an address register load operation, an address register load with rounding operation, an address register add operation, a set sign operation, a move operation, a multiply operation, an addition operation, a multiply and addition operation, a reciprocal operation, a reciprocal square root operation, a three component dot product operation, a four component dot product operation, a distance vector operation, a minimum operation, a maximum operation, a set-on-less-than operation, a set-on-greater-or-equal-than operation, an exponential base two (2) operation, a logarithm base two (2) operation, an exponential operation, a logarithm operation, and/or a light coefficients operation. 33. The method as recited in claim 1, wherein the operations include a branch operation, a call operation, a return operation, a cosine operation, a sine operation, a floor operation, a fraction operation, a set-on-equal-to operation, a set false operation, a set-on-greater-than operation, a set-on-less-than-or-equal operation, a set-on-not-equal-to operation, a set true operation, a no operation, an address register load operation, an address register load with rounding operation, an address register add operation, a set sign operation, a move operation, a multiply operation, an addition operation, a multiply and addition operation, a reciprocal operation, a reciprocal square root operation, a three component dot product operation, a four component dot product operation, a distance vector operation, a minimum operation, a maximum operation, a set-on-less-than operation, a set-on-greater-or-equal-than operation, an exponential base two (2) operation, a logarithm base two (2) operation, an exponential operation, a logarithm operation, and/or a light coefficients operation. 34. The method as recited in claim 1, wherein the graphics data includes vertex data. 35. The method as recited in claim 1, wherein the graphics data includes fragment data. 36. The method as recited in claim 1, wherein the branching is used to select a variable number of transformations during the skinning operation. 37. The method as recited in claim 1, wherein the skinning operation includes transformation of a single vertex by multiple matrices, and computation of a weighted sum of a transformed result. 38. The method as recited in claim 1, wherein the skinning operation includes a paletted skinning operation. 39. The method as recited in claim 1, wherein the skinning operation involves an Address Register Load instruction and an Address Register Load with Round instruction. 40. A computer program product for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: computer code for identifying a first instruction defined by the graphics application program interface; computer code for performing a first operation on graphics data based on the first instruction utilizing the hardware graphics pipeline; computer code for branching to an additional instruction defined by the graphics application program interface other than a subsequent sequential instruction; and computer code for performing another operation on the graphics data based on the additional instruction utilizing the hardware graphics pipelines; wherein the branching is used during a skinning operation. 41. A method for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: in response to a branching instruction associated with the graphics program written in accordance with an application program interface, computing an index, looking up an entry based on the index, branching to an additional instruction associated with the entry, and executing the additional instruction utilizing the hardware graphics pipelines; wherein the branching is used during a skinning operation. 42. A method for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: identifying an instruction defined by the graphics application program interface; performing an operation on graphics data based on the instruction utilizing the hardware graphics pipeline; identifying a branch command with an associated condition; determining whether the condition has been met; and if the condition has been met, branching to an additional instruction defined by the graphics application program interfaces wherein the branching is used during a skinning operation. 43. A data structure stored in memory for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: an instruction set defined by the graphics application program interface capable of carrying out a plurality of operations utilizing the hardware graphics pipeline; wherein the instruction set includes a branch operation for branching among different instructions out of sequential order; wherein the branching is used during a skinning operation. 44. A method for branching during programmable processing utilizing a graphics application program interface in conjunction with a hardware graphics pipeline, comprising: identifying a first instruction defined by the graphics application program interface, wherein the first instruction is first of a plurality of instructions associated with a graphics program written in accordance with the application program interface; performing a first operation on graphics data based on the first instruction; identifying a branch command with an associated condition; determining whether the condition has been met; if the condition has been met, branching to an additional instruction defined by the graphics application program interface utilizing an address register by: computing an index, looking up an entry in a table based on the index, if the entry is found, branching to the additional instruction associated with the entry, and if the entry is not found, terminating the graphics program; and performing another operation on the graphics data based on the additional instruction; wherein the branching is used during a skinning operation.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (49)
Duluk ; Jr. Jerome F. (Mountain View CA) Kasle David B. (Mountain View CA), Bounding box and projections detection of hidden polygons in three-dimensional spatial databases.
Sfarti Adrian ; Baker Nicholas Robert ; Laker Robert William ; Malamy Adam Craig, Controlling a real-time rendering engine using a list-based control mechanism.
Duluk ; Jr. Jerome F. ; Hessel Richard E. ; Arnold Vaughn T. ; Benkual Jack ; Bratt Joseph P. ; Cuan George ; Dodgen Stephen L. ; Fang Emerson S. ; Gong Zhaoyu ; Ho Thomas Y. ; Hsu Hengwei ; Li Sidon, Deferred shading graphics pipeline processor.
Duluk ; Jr. Jerome F. ; Hessel Richard E. ; Arnold Vaughn T. ; Benkual Jack ; Bratt Joseph P. ; Cuan George ; Dodgen Stephen L. ; Fang Emerson S. ; Gong Zhaoyu ; Ho Thomas Y. ; Hsu Hengwei ; Li Sidon, Deferred shading graphics pipeline processor.
Kimura Koichi,JPX ; Ogura Toshihiko,JPX ; Aotsu Hiroaki,JPX ; Ikegami Mitsuru,JPX ; Kuwabara Tadashi,JPX ; Enomoto Hiromichi,JPX ; Kyoda Tadashi,JPX, Graphic system including a plurality of one chip semiconductor integrated circuit devices for displaying pixel data on.
Chauvin Joseph W. ; Gabriel Steven A. ; Good Howard ; Griffin Kent E. ; Kenworthy Mark L. ; Powell ; III William Chambers ; Scott ; III George Easton ; Toelle Michael A. ; Torborg ; Jr. John G. ; Ver, Graphics rendering device and method for operating same.
Kuchkuda Roman ; Rigg John ; Enriquez Manuel Rey ; Henson James V. ; Stehley Curt, Method and apparatus for rendering of fractional pixel lists for anti-aliasing and transparency.
Elliott Conal M. ; Knoblock Todd B. ; Schechter Greg D. ; AbiEzzi Salim S. ; Campbell Colin L. ; Yeung Chun-Fu Ricky, Method and system for modeling and presenting integrated media with a declarative modeling language for representing re.
Krech ; Jr. Alan S. ; Rossin Theodore G. ; Rojas Edmundo ; McGrath Michael S ; Rakel Ted ; Strunk Glenn W ; Ashburn Jon L ; Tucker S Paul, ROM-based control unit in a geometry accelerator for a computer graphics system.
Fielder Dennis (Linton GBX) Derbyshire James (Willingham GBX) Gillingham Peter (Kanata CAX) Torrance Randy (Ottawa CAX) O\Connell Cormac (Kanata CAX), Single chip frame buffer and graphics accelerator.
Chen Chih-Kang (Santa Clara County CA) Duluk ; Jr. Jerome F. (Santa Clara County CA), System and method for cross correlation with application to video motion vector estimator.
Young Eric S. ; Zhao Randy X. ; Khurana Anoop ; Niu Roger ; Kuo Dong-Ying ; Kottapalli Sreenivas R., System and method for performing blending using an over sampling buffer.
Harris Kathleen A. ; Jensen Kimberly Wagner, System for distinguishing front facing and back facing primitives in a computer graphics system using area calculations in homogeneous coordinates.
Lindholm John Erik ; Moy Simon ; Dawallu Kevin ; Yang Mingjian ; Montrym John ; Kirk David B. ; Sabella Paolo E. ; Papakipos Matthew N. ; Voorhies Douglas A. ; Foskett Nicholas J., Transform, lighting and rasterization system embodied on a single semiconductor platform.
Westerhoff, Malte; Stalling, Detlev; Seebass, Martin, Image segmentation assignment of a volume by comparing and correlating slice histograms with an anatomic atlas of average histograms.
Brown, Patrick R.; Lichtenbelt, Barthold B.; Dodd, Christopher T.; Kilgard, Mark J., Methods and systems for processing a geometry shader program developed in a high-level shading language.
Brown,Patrick R.; Kilgard,Mark J.; Glanville,Robert Steven, System and method for converting a vertex program to a binary format capable of being executed by a hardware graphics pipeline.
Lindholm, John Erik; Moy, Simon S.; Glanville, Robert Steven, System, method and computer program product for branching during programmable vertex processing.
Boyd, Charles N.; Boland, Michele B.; Toelle, Michael A.; Kancherla, Anantha Rao; Patel, Amar; Tarassov, Iouri; Wright, Stephen H., Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques.
Boyd, Charles N.; Boland, Michele B.; Toelle, Michael A.; Kancherla, Anantha Rao; Patel, Amar; Tarassov, Iouri; Wright, Stephen H., Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques.
Boyd, Charles N.; Boland, Michele B.; Toelle, Michael A.; Kancherla, Anantha Rao; Patel, Amar; Tarassov, Iouri; Wright, Stephen H., Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques.
Boyd, Charles N.; Boland, Michele B.; Toelle, Michael A.; Kancherla, Anantha Rao; Patel, Amar; Tarassov, Iouri; Wright, Stephen H., Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques.
Boyd, Charles N.; Boland, Michele B.; Toelle, Michael A.; Kancherla, Anantha Rao; Patel, Amar; Tarassov, Iouri; Wright, Stephen H., Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.