System, method and computer program product for branching during programmable vertex processing
AssigneeNVIDIA Corporation
InventorsJohn Erik Lindholm, Simon S. Moy, Robert Steven Glanville
Life of this patent
Estimating the term…
Abstract
A system, method and computer program product are provided for branching during graphics processing. Initially, a first operation is performed on data. In response to the first operation, a branching operation is performed to a second operation. The first operation and the second operation are associated with instructions selected from a predetermined instruction set.
Claims21
A method for branching during graphics processing, comprising:
- performing a first operation on data;
- and
- in response to the first operation, branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching involves a swizzle operation;
- wherein the first operation and the second operation are selected from a group consisting of a branch operation, a call operation, a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A system for branching during graphics processing, comprising:
- means for performing a first operation on data, and
- means for branching to a second operation, in response to the first operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching involves a swizzle operation;
- wherein the first operation and the second operation are selected from a group consisting of a branch operation, a call operation, a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A computer program product for branching during graphics processing, comprising:
- computer code for performing a first operation on data;
- and
- computer code for branching to a second operation in response to the first operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching involves a swizzle operation;
- wherein the first operation and the second operation are selected from a group consisting of a branch operation, a call operation, a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
An application program interface data structure for branching during graphics processing, comprising:
- an instruction set for performing a first operation on data, and in response to the first operation, branching to a second operation;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching involves a swizzle operation;
- wherein the instruction set includes operations selected from a group consisting of a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A system for branching during graphics processing, comprising:
- a functional module adapted for performing a first operation on data, and branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching involves a swizzle operation;
- wherein the predetermined instruction set includes a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A method for branching during graphics processing, comprising:
- performing a first operation on data;
- and
- in response to the first operation, branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein at least one of the first operation and the second operation includes an operation selected from a group consisting of a branch operation, a call operation, a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A method for branching during graphics processing, comprising:
- performing a first operation on data;
- and
- in response to the first operation, branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the first operation and the second operation am selected from a group consisting of a branch operation, a call operation, a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A method for branching during graphics processing, comprising:
- performing a first operation on data;
- and
- in response to the first operation, branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching involves a swizzle operation;
- wherein at least one of the first operation and the second operation includes at least one of a fraction operation, a no 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 operation, a minimum operation, a maximum operation, an exponential operation, a logarithm operation, and a lighting operation.
A method for branching during graphics processing, comprising:
- performing a first operation on data;
- and
- in response to the first operation, branching to a second operation;
- wherein the first operation and the second operation are associated with instructions selected from a predetermined instruction set;
- wherein the branching to the second operation is performed based on a Boolean condition;
- wherein the branching to the second operation is performed based on a comparison;
- wherein the comparison includes a greater than operation, a less than operation, a greater than or equal operation, a less than or equal operation, an equal operation, and a not equal operation;
- wherein the branching is performed to a label;
- wherein the branching to the second operation is performed if content of a predetermined register is true;
- wherein the branching to the second operation is performed based on a comparison involving zero;
- wherein the branching involves a swizzle operation;
- wherein the predetermined instruction set includes a fraction instruction, a no instruction, a move instruction, a multiply instruction, an addition instruction, a multiply and addition instruction, a reciprocal instruction, a reciprocal square root instruction, a three component dot product instruction, a four component dot product instruction, a distance instruction, a minimum instruction, a maximum instruction, an exponential instruction, a logarithm instruction, and a lighting instruction;
- wherein the swizzling operation is performed on the data;
- wherein the swizzling operation involves vector components.
Dependencies are inferred from the claim text.