CN103871020A - Hidden surface removal in graphics processsing systems - Google Patents
Hidden surface removal in graphics processsing systems Download PDFInfo
- Publication number
- CN103871020A CN103871020A CN201310692576.4A CN201310692576A CN103871020A CN 103871020 A CN103871020 A CN 103871020A CN 201310692576 A CN201310692576 A CN 201310692576A CN 103871020 A CN103871020 A CN 103871020A
- Authority
- CN
- China
- Prior art keywords
- fragment
- sampled point
- test
- processing
- early stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000012634 fragment Substances 0.000 claims abstract description 1017
- 238000012360 testing method Methods 0.000 claims abstract description 548
- 238000012545 processing Methods 0.000 claims abstract description 527
- 238000000034 method Methods 0.000 claims description 113
- 230000008569 process Effects 0.000 claims description 90
- 230000004044 response Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 description 46
- 238000011084 recovery Methods 0.000 description 33
- 230000005540 biological transmission Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000001960 triggered effect Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 238000009877 rendering Methods 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 7
- 238000007689 inspection Methods 0.000 description 7
- 238000002156 mixing Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 6
- 238000002203 pretreatment Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000000889 atomisation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000004087 circulation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
The early depth test stages 4, 13 of a graphics processing pipeline 1 are configured to broadcast information 9, 10, 11, 14 about fragments, etc., that pass those early depth tests to other stages 3, 4, 6, 12 in the pipeline. The other stages in the pipeline then use the early depth test pass information to determine if the processing of any fragments that they are currently processing can be stopped.
Description
Technical field
The present invention relates to computer graphical processing, and specifically, the hidden surface relating in graphics process is eliminated.
Background technology
As known in the art, conventionally carry out graphics process by following steps: first graphics process (playing up) output (such as the frame that will show) is divided into multiple similar basic compositions (being called " primitive ") to make it possible to carrying out more easily graphics process operation.These " primitives " adopt the form of simple polygon (such as triangle) conventionally.
Conventionally the graphic plotting instruction (request) that utilizes the application (for example game) from needing graphics process to receive for the primitive of output (such as the frame that will show) is generated by the application programming interfaces for graphic system.
Each primitive is common by one group of summit restriction and by its expression in this stage.Each summit of primitive is associated with the one group of data (such as position, color, texture and other attribute data) that represent described summit.Subsequently for example when described summit (primitive relevant to described summit) being carried out to rasterizing and while playing up, using this data, for example, for showing.
Once generate and define primitive and their summit, they can be processed by graphic system, with for example display frame.
This processing relates to following steps substantially: determine which sampled point in a series of sampled points of covering output area to be processed is covered by primitive, and determine that subsequently each sampled point outward appearance that should have (for example, with regard to its color etc. with regard to) is to represent primitive at described sampled point.These are processed and are conventionally known as respectively rasterizing and play up.
Rasterizing is processed and is determined the sampled point (, for example be used for, in (x, the y) position of playing up the sampled point of expression primitive in output (frame that, show)) that be used for primitive.This utilizes the position on the summit of primitive to realize conventionally.
Playing up processing therefore derives at described sampled point and represents the data that primitive is required, such as red, green and blue (RGB) color value and " Alpha " (transparency) value (, being each sampled point " painted ").As known in the art, this process can relate to and applies texture, mixes sampled point data value etc.
(in 3D figure document, term " rasterizing " is generally used for meaning primitive and is converted to sampling location and plays up these two.But herein, " rasterizing " will be only for representing primitive data-switching to sampled point address.)
These processing are carried out by following steps conventionally: one or more sampled points of the many groups of test, and generate discrete graphic entity (so-called " fragment " carries out graphics process operation (such as playing up) thereon) for each group of sampled point of the sampled point of finding (just tested) primitive interior (or being covered by described primitive) that is included in concern subsequently.Therefore, the sampled point of covering is in fact processed as fragment, described fragment by for pay close attention to sampled point play up primitive." fragment " is the graphic entity through playing up processing (rendering pipeline).According to the configuration mode of graphic system, each fragment that generates and process can for example represent single sampled point or one group of multiple sampled point.
(therefore, " fragment " is the effective one group of primitive data (with described one group of primitive data correlation) that are interpolated in the given output region sampled point of primitive." fragment " also can comprise every primitive and locate as painted needed other status data of primitive at the sampled point (fragment position) of paying close attention to.Each graphics fragment conventionally can with output pixel (for example, output frame) there is same size and in same position (because pixel is singular point in final demonstration, therefore carrying out can shining upon one by one between " fragment " of work (playing up) and the pixel of demonstration in graphic process unit).But, can there is between fragment and display pixel not situation one to one, for example, before showing final image, on the image of playing up, carry out the aftertreatment of concrete form, such as reduction sampling.)
(also there is such situation: along with given position for example can affect each other (for example, due to transparency and/or mixing) from multiple fragments of the overlapping primitive of difference, final pixel output can be depending on the multiple or whole fragments at this location of pixels.)
(accordingly, can be corresponding one by one between sampled point and display picture element, but the correspondence that more generally differs between sampled point and display picture element, owing to can carrying out reduction sampling to generate for showing the output pixel value of final image in the sampled value of playing up.Similarly, along with given position for example affect each other (for example, due to transparency and/or mixing) from multiple sampling point value of the overlapping primitive of difference, final pixel is exported the multiple overlapping sampled value also depending at this location of pixels.)
In a known technology of so-called " Immediate Mode " graphics process or the graphics process played up, primitive is processed along with generation (rasterizing and play up) one by one.
In this system, primitive (their summit) is delivered to graphics system according to the principle of first processing first, and therefore plays up primitive according to the reception order of primitive.
Also known, in graphic system, use so-called " based on piece " to play up or " delay " play up.Playing up in processing based on piece, not the whole output (frame of for example effectively processing in a system of playing up according to Immediate Mode) of playing up, but the output of playing up of the frame that for example will show is divided into multiple less subregions, so-called " piece ".Each piece (subregion) is played up (conventionally one by one playing up) independently, and the piece of playing up (subregion) subsequently recombinant so that the complete output of playing up to be provided, for example, for the frame showing.In these arrangements, play up the subregion (piece) (they are generally for example square or rectangle) that output is divided into regular size and shape conventionally, but this is dispensable.
Process in these two in Immediate Mode with based on playing up of piece, rasterizing will generally include a series of graph commands that will be carried out by graphic process unit with the input of playing up processing.As known in the art, should " command list (CLIST) " will comprise that indicating graphic processor draws the order of primitive and indicate the order (changing, start and finish piece order (in the system based on piece) etc. such as rendering state) of other graphics process.
In Immediate Mode is played up, this command list (CLIST) will be listed the order that will one by one carry out simply, and based in the playing up of piece, described list can and be divided into " piece " (, will listing order for each piece (being independent of the order for other piece)) conventionally.
A shortcoming of current graphic system is, because primitive is by processed in sequence, and be not according to perfect sequential processes from front to back conventionally, so along with an output processed (for example, for showing), given sampled point (and then fragment and pixel) can be repeatedly painted.In the time that first primitive that receives and play up is covered by primitive afterwards subsequently, this thing happens, thereby in fact can't see in the pixel (and sampled point) of paying close attention to the first primitive of playing up.Primitive can be written many times in this manner, and this for example causes, conventionally for the coloured operation of playing up that each plays up output (frame) and carry out multiple final redundancies.This phenomenon so-called " repeating to play up ".
The result of carrying out the operation of these final redundancies comprises that frame per second reduces and memory bandwidth demand increases (for example,, as the result for the primitive being override by primitive afterwards being obtained to data).These two is all less desirable, and has reduced the overall performance of graphic system.Become large and become more complicated (as will be occurred more multiaspect in potential Visual Graph) along with playing up output (such as the frame that will play up), and along with the painted use of programmable fragment increases (relatively larger along with utilizing programmable fragment to be colored as the expense of given fragment shading), it is serious that these problems will often become.
By send primitive and can obviously reduce for playing up the problem of " repeating to play up " according to order from front to back.But other graphics process demand (such as the relevant entrance demand for resource (such as texture) and minimize the demand of number of times of the API Calls of every frame) is ratified other preferred order demand of primitive conventionally.In addition, still keeping primitive in enough operational throughpuies of Graphics Processing Unit, before playing up, completely from front to back primitive being sorted may be unactual.It is normally impossible or less desirable in practice that these and other factor for example means, for the sequence from front to back of the given primitive of playing up output (frame).
Therefore, other multiple technologies when the amount (the redundancy treatment capacity of hidden surface) of processing execution " repeating to play up " while playing up output (such as the frame for showing) (, avoid playing up sightless primitive and/or fragment etc.) have been proposed to attempt to reduce.
For example, known to sending primitive and/or fragment to carry out various forms of hidden surfaces eliminations before playing up, whether will be covered by coloured primitive (not needing in this case, to play up new fragment and/or primitive) to observe primitive or fragment etc.This hidden surface is eliminated and can be comprised for example early stage occlusion culling, all early stage Z(degree of depth as known in the art) and/or template test processing.
These arrangements are attempted identification before fragment is afterwards sent to rendering pipeline and for example will be blocked the fragment of (and therefore not needing to process) by treated primitive.In these arrangements, for the fragment position in depth buffer, the depth value of for example new segment to be processed and current depth value are compared, to determine whether new segment is blocked.This can help avoid by rendering pipeline and send the fragment of being blocked by treated primitive.
But these " in early days " (before playing up) hidden surface technology for eliminating have only considered to have completed the fragment of their processing (being played up) when for example new primitive or fragment (just carrying out primitive or the fragment of " in early days " test) are just tested.This is because relevant test data (such as Z-impact damper) only comprises the data from processed fragment.
Summary of the invention
Therefore, applicant believes and still has living space to improve the technology of eliminating for the hidden surface of graphic system.
According to a first aspect of the invention, a kind of method that operates graphics processing pipeline is provided, described graphics processing pipeline comprises multiple processing stage, it comprises: rasterizing device, it carries out rasterizing to generate graphics fragment to be processed to input primitive, and each graphics fragment has one or more sampled point associated with it; And renderer, it processes the fragment being generated by rasterizing device, to generate output chip segment data, said method comprising the steps of:
Be sent to renderer with before processing in the fragment being generated by rasterizing device, about carrying out early stage rejection test with at least one sampled point of this fragment association; And
If at least one sampled point is by early stage rejection test, send forward fragment to process, and pass through early stage rejection test in response at least one sampled point, determine whether the processing of another sampled point in graphics processing pipeline should slow down.
According to a second aspect of the invention, provide a kind of graphics processing pipeline, this graphics processing pipeline comprises:
The processing stage of multiple, it comprises: rasterizing device, and it carries out rasterizing to generate graphics fragment to be processed to input primitive, and each graphics fragment has one or more sampled point associated with it; Renderer, it processes the fragment being generated by rasterizing device to generate output chip segment data; And the early stage rejection test stage, be sent to renderer with before processing in the fragment being generated by rasterizing device, about carrying out early stage rejection test with the sampled point of described fragment association; Wherein, described graphics processing pipeline is configured to:
In response to passing through early stage rejection test with at least one sampled point of the fragment association being generated by rasterizing device, send forward fragment to process, and determine whether the processing of another sampled point in graphics processing pipeline should slow down.
Graphics processing pipeline of the present invention comprised early stage rejection test before the renderer stage of graphics processing pipeline, such as early stage depth test, before processing by renderer at graphic entity (such as sampled point, fragment and/or primitive), attempt rejecting them, as known in the art.
But, pass through early stage rejection test in response to sampled point, the present invention also determines the processing of another sampled point of just processing in graphics processing pipeline whether should slow down (whether the processing priority of the graphics processing pipeline of another sampled point of for example, just processing in graphics processing pipeline can reduce).In other words, the present invention extends the effect of early stage rejection test in the rasterizing stage or after the rasterizing stage, thereby makes to affect potentially the processing speed with the sampled point of the primitive processed by rasterizing the remainder that is sent to streamline.
As will be discussed further below, this can then make the result of early stage rejection test can be used in to be avoided and/or stop processing (" termination ") sampled point of the primitive in streamline, rather than stop simply new primitive (for example, being blocked) sampled point in case its played up.The advantage of doing is like this, for example, for the previous sampled point of the primitive by early stage rejection test in streamline, if generated before they finish dealing with blocking their fragment of primitive after a while, still can stop their processing.
Therefore, for example, be different from prior art, in fact the present invention also can be played up primitive after a while in order in primitive and/or fragment and reduce blocking or avoid " repeating to play up ".
The effect of doing is like this, compared with existing early stage depth test technology for example, the present invention can further be reduced in the degree that in graphics processing pipeline, hidden surface is unnecessarily processed.In addition,, before playing up, do not need to carry out every sampling or the sequence of every fragment of expensive sampling/fragment.
In fact, a significant advantage of the present invention is, when the primitive order arranging best (, from front to back) time, in fact it will not interfere, thereby in this case, on " standard " early stage depth test arrangement, obtaining minimum expense increases, but when primitive order " non-the best ", the present invention will be worked, and make to process them with the primitive of eliminating from back to front.Use expense of the present invention to be also independent of the level of the anti-aliased processing of used multi-point sampling, thereby relatively inexpensively use the anti-aliased processing (and the use of the more high-grade anti-aliased processing of multi-point sampling is more cheap) of more high-grade multi-point sampling.
In addition, because the present invention has reduced the sampled point in streamline by the processing speed of streamline, so the present invention be still used in carry out may not determine when early stage rejection test new primitive (fragment) whether by fact blocking in the situation of the sampled point in streamline (and unlike for example abandoning immediately the sampled point in streamline, in this case, the sampled point in streamline can only determine that new fragment is dropped blocking them in the time carrying out early stage rejection test).Therefore, this means, compared with the situation that may occur with the test that for example abandons simply immediately the sampled point in streamline or fragment, the present invention can be used for (potentially) affects and stops the processing of more sampled point and fragment.
For example, when can causing fragment, the new segment of early stage rejection test is dropped one or more state of (abandoning such as tinter is conditional) as a part for its state in it is processed, (for example can not reject in early days making, the degree of depth) test phase knows when fragment whether will be in fact manifests (conclude while making in early days rejection test whether new segment will clearly block processing other fragment in streamline) playing up in output, can use the present invention.
In fact, applicant has been found that for many graphic contents and processing, and fragment can have the conditional discarding state associated with them relatively at large.As will be discussed further below, the present invention can be used for stopping processing fragment and/or the sampled point in (" terminations ") streamline, even if early stage rejection test is tested and can not be done so immediately because new segment has associated with it conditional abandoning.
The rasterizing device of graphics processing pipeline can be configured to operate according to any mode suitable and that expect, for example, as according to known rasterizing arrangement.As known in the art, rasterizing device should operate to generate for the treatment of graphics fragment, based on this, the sampled point (or organizing sampled point) in a series of sampled points of the output area of the given primitive receiving by rasterizing device etc. (at least in part) covering cover graphics processing streamline more.Rasterizing device is for each sampled point just being covered by (each) primitive of rasterizing, and/or for example, preferably generates graphics fragment for the each group of multiple sampled points (, sampling mask) that just comprise the sampled point being covered by (each) primitive of rasterizing.
Each fragment being generated by rasterizing device can represent single sampled point or multiple sampled point (associated with single sampled point or multiple sampled point) as required.In a preferred embodiment, each fragment represents one group of multiple (preferably four (2x2)) sampled point.
Rasterizing device can be configured to once generate a fragment, but in a preferred embodiment, can (simultaneously) once generate multiple fragments (for example, cover sampled point adjacent on multiple spaces or organize sampled point more at primitive).In this case, if rasterizing device generates one group of multiple fragment simultaneously, the fragment in described group is still preferably processed separately by the fragment processing section (such as fragment shader) of streamline.Rasterizing device generates multiple fragments simultaneously and contributes to form back pressure, thereby makes " to be full of " in rendering pipeline fragment.
In especially preferred embodiment, rasterizing device is classification rasterizing device, it operates to test primitive repeatedly with respect to the more and more less sticking patch of sampled point until (being preferably scheduled to) minimum patch size of preferably selecting, thereby abandon any sticking patch that does not cover (at least in part) primitive, and generate subsequently one or more fragments, play up with the one or more sticking patch corresponding to the sampled point being covered at least in part by primitive.Preferably each sticking patch of the sampled point of test is corresponding to integer fragment, such as 16x16,8x8,4x4 and/or 2x2 fragment.
Rasterizing device preferably starts and tests the primitive of paying close attention to whether in this sticking patch from playing up the large sticking patch of target area.If not, abandon whole sticking patch, and test next sticking patch, etc.On the other hand, if find primitive (to cover at least in part described sticking patch) in described sticking patch, described sticking patch is preferably divided into 4 parts again, and test each " sub-sticking patch " according to same way subsequently, etc., until reach minimum patch size (in a preferred embodiment, minimum patch size is corresponding to 2x2 slice groups) (but can be for example independent sampled point, independent fragment or the slice groups of different size).
In this arrangement, minimum patch size comprises multiple sampled points, and in final sticking patch, rasterizing device is preferably tested independent sampled point subsequently to determine whether they are covered by primitive, and generates accordingly fragment subsequently.
Can be with many groups of multiple sampled points associated (and corresponding to the multiple sampled points of many groups the multiple sampled points of the many groups of expression) in the fragment being generated by rasterizing device, each this graphics fragment preferably which sampled point in described one group of sampled point corresponding with indication and fragment is capped (for example, preferably, the primitive being just sampled covers) data correlation,, in fact, the data correlation of those sampled points in described one group of sampled point corresponding with described fragment with indication, described fragment is just being used to play up.
Indicate the sampled point of which covering of described fragment being just used to the information played up preferably associated with a part (such as RGB and the transparent value of fragment) for the fragment data of the fragment by renderer.Preferably, adopt the form of coverage mask, for each sampling location of one group of sampled point of described fragment association, whether its indication sampling location capped, that is, and in fact, whether fragment is just being used to play up sampled point (,, for this sampled point, whether its data should be stored).Preferably, this coverage mask adopts the form of bitmap, and it represents sampling location.Rasterizing device preferably generates coverage mask.
The early stage rejection test that operation of the present invention is used can comprise any suitable this test, such as blocking in early days test, such as the degree of depth (Z) test and/or early stage template test.In especially preferred embodiment, the early stage rejection test that operation of the present invention is used comprises the early stage degree of depth (Z) test (or multiple test).In a preferred embodiment, the early stage rejection test that operation of the present invention is used comprise the early stage degree of depth and early stage template test the two.
Any or all in the available early stage rejection test (early stage rejection test stage) of graphics processing pipeline can be configured to operate (trigger action) according to mode of the present invention.In the time that graphics processing pipeline comprises an above early stage rejection test (early stage rejection test stage), preferably, all early stage rejection test stages can be triggered the operation according to mode of the present invention.Therefore, in streamline, preferably there is an above early stage rejection test.
The early stage rejection test stage can operate on the sticking patch of (many groups) multiple fragments.For example, in the time that rasterizing device can turn to the sticking patch of multiple fragments by primitive grid, these sticking patch can be made the as a whole early stage rejection test that stands subsequently.In this case, (therefore early stage rejection test will relate to one group of multiple fragment, the sticking patch of considered fragment), and about with at least one sampled point of fragment association carry out early stage rejection test by comprise about at least one group (sticking patch) of the multiple fragments that generated by rasterizing device carry out early stage rejection test (really about carrying out rejection test with at least one sampled point of fragment association, this be due to its for described one group of multiple fragment in all sampled points of fragment association effectively carry out early stage rejection test).
Therefore, in a preferred embodiment, streamline comprises the early stage degree of depth (or the early stage degree of depth and template) tester of the sticking patch (group) of the multiple fragments of common test.The sticking patch (group) of multiple fragments that the primitive that this test is preferably only concerned for complete (intactly) covers is carried out, and preferably uses the depth value scope of the sticking patch (group) of multiple fragments.
Any sticking patch (group) of multiple fragments of preferably, for example, testing by early stage " sticking patch " rejecting (, the degree of depth and/or template) can trigger the operation according to mode of the present invention.
Early stage rejection test can (in addition or as an alternative) preferably, and (in addition) preferably operates on individual chip.Therefore, streamline preferably includes the early stage rejection test device of the independent fragment of test, preferably, and the early stage degree of depth (or the early stage degree of depth and template) tester.The fragment that the primitive that this test is preferably only concerned for complete (intactly) covers is carried out, and preferably uses depth value scope or single depth value for fragment entirety.
Preferably, for example, can trigger the operation according to mode of the present invention by this (individual chip) early stage any fragment of rejecting (, the degree of depth and/or template) test.
In a preferred embodiment, early stage rejection test (having early stage rejection test) (in addition or as an alternative), and many groups sampled point that preferably (in addition) comprises less sampled point compared with single sampled point and/or many groups sampled point associated with given fragment (such as, for four sampled points of fragment association in two) upper operation (test).In this case, early stage rejection test preferably operates on single (covering) sampled point.In this case, each sampled point by the associated depth value having for rejection test, that is, will have depth value (can share with other sampled point) for each sampled point.
For example, moreover preferably, any sampled point of rejecting in early days (, the degree of depth and/or template) test by this sampled point can trigger the operation according to mode of the present invention.
In especially preferred embodiment, streamline comprises that the test multiple fragments of many groups and/or independent fragment are (about this, can trigger the operation according to mode of the present invention) early stage rejection test, then be the early stage rejection test of the independent sampled point of test (again, preferably, about this, can trigger the operation according to mode of the present invention).This can make the present invention to generate hidden surface elimination event from complete piece to the individual chip and/or sampled point particle that for example covers primitive then.
In especially preferred embodiment, described system comprises early stage rejection test, it compares depth value the scope associated position with sampled point, fragment or the one group of multiple fragment (sticking patch) paid close attention to of the depth value scope associated with sampled point, fragment and/or one group of multiple fragment (sticking patch) and storage, to determine that whether just tested sampled point, fragment or one group of multiple fragment (sticking patch) are by early stage rejection test.
Preferably for each sticking patch storage depth value scope of (rejection test) fragment that can consider.
Early stage rejection test itself can be carried out according to any mode suitable and that expect, for example, carries out according to the mode using in the graphic system of normal mode as known in the art and/or concern.For example, they can test described sampled point (or each sampled point) particularly, even or they do not test particularly described sampled point (or each sampled point), also can be the test of the effect with test sample point.
In especially preferred embodiment, early stage rejection test is (in response to this early stage rejection test, determine whether the processing of another sampled point can slow down) be a kind of conservative early stage depth test, whether it preferably mainly operates with the sampled point that rejection test stage forecast (determining) is new in early days and/or fragment by (at the end of the streamline) depth test of the later stage by existing in streamline.
In especially preferred embodiment, (for example playing up one group of primitive, call for piece or drafting) before, system (with rasterizing device preferably) for each sampling location, organize the sticking patch of sampling location, fragment, fragment position, fragment more and/or organize the depth value that fragment position generates and/or storage is expected and the depth value scope of preferably expecting more, in the time testing primitive and the fragment etc. being generated by rasterizing device, rejection test can and preferably carry out within the scope of this depth value.The depth value scope of these expectations should be for all possible result of expression (containing) depth values such as the sticking patch of paying close attention to, and preferably along with continuing rasterizing and playing up and utilize and upgrade for depth value and the depth value scope of the sticking patch of independent sampling location, fragment, fragment etc., the sticking patch of described independent sampling location, fragment, fragment is generated and is stored as sampled point and fragment, and they experience early stage and later stage depth test in the time processing by graphics processing pipeline.
Early stage rejection test can be embodied as a for example part for rasterizing device, or after rasterizing device (but before renderer), or for example, as their combination (, having an above early stage rejection test).In a preferred embodiment, it or they be embodied as a part for rasterizing processing and/or after rasterizing device but before the remainder of graphics processing pipeline.
If just tested sampled point or one or more fragment for example, by early stage rejection test (, find be blocked), preferably " rejecting " in the further processing from streamline of this sampled point or one or more fragment, as known in the art.
Can realize (with providing) this rejecting according to any expectation and suitable mode.For example, rejection test be about whole fragment (or one group of multiple whole fragment) time, preferably described fragment or one group of multiple fragment do not send forward to process (for example, playing up) (by streamline, they " disallowable "), as known in the art.
On the other hand, if rejection test is about than with all sampled points of the fragment association that will play up sampled point still less, preferably prevent the sampled point of (stopping) concern (, do not pass through rejection test) further processing, for example, for example, by sampled point (is labeled as to " inefficacy ", by indicating them not covered with the coverage mask of the fragment association of paying close attention to), or according to any other suitable mode, but the fragment of paying close attention to still (is passed through streamline) and sent forward, make with " not rejecting " sampled point of fragment association still processed.
If at least one just tested sampled point is by early stage rejection test, tested sampled point (, the fragment associated with sampled point), fragment or one group of multiple fragment are sent forward to process (for example, towards renderer), still as known in the art.But, in this case, in response to sampled point by early stage rejection test (as sampled point by the result of early stage rejection test), the processing of also determining another sampled point in streamline whether should slow down (and if in response to sampled point by early stage rejection test etc. (as sampled point by the result of early stage rejection test etc.), definite processing of the sampled point in streamline should be slowed down, and the processing of sampled point is preferably slowed down subsequently).
In this, processing can operate in sampled point level (resolution) (but not for example about whole fragment), and therefore tests, and slows down and the processing of the independent sampled point of the fragment association in streamline.When rejection test is tested independent sampled point in early days, this can be especially suitable, and will make for example described processing can " remove " with streamline in fragment association sampled point (for example, once make to determine all (covering) sampled points of " slowing down " and fragment association, the processing of whole fragment just can be slowed down subsequently).
Similarly, processing can be configured in addition or alternatively about whole fragment operation, that is, if make whole fragment (or one group of multiple fragment) by early stage rejection test, determine whether the processing of any fragment in streamline should slow down.Rejection test test fragment and while testing alternatively independent sampled point in early days, this can be especially suitable.
Therefore, in a preferred embodiment, early stage rejection test test fragment and/or organize multiple fragments more, and if just tested fragment or one group of fragment are by early stage rejection test, as fragment or one group of fragment by the result of early stage rejection test, determine whether the processing of the fragment in streamline and/or one group of multiple fragment should slow down.
The multiple fragments of each group are preferably one group of four fragment, are preferably 2x2 slice groups.
The resolution of the entity that operates thereon with rendering pipeline in a preferred embodiment, (such as (preferably) fragment or organize multiple fragments (for example 2x2 group fragment)) is carried out and is describedly determined more.
By the result of early stage rejection test, preferably determine whether any the processing in multiple sampled points and/or the fragment in streamline should slow down as at least one sampled point and/or fragment.
Although can carry out according to the operation of mode of the present invention (with the processing of other fragment of slowing down in graphics pipeline etc. about each fragment by early stage rejection test (associated with the sampled point by early stage rejection test), " termination " described other fragment potentially subsequently), but in especially preferred embodiment, only about (and by early stage rejection test) fragment of selecting (preferably meeting the fragment of specific selected (preferably predetermined) standard) execution according to the operation of mode of the present invention.
Therefore, in especially preferred embodiment, whether whether the determine fragment based on by early stage rejection test at least in part and/or the sampled point that should slow down to the processing of any other sampled point in streamline and/or fragment also have specifically (preferably selecting) one or more attributes ((selection) standard that meets necessity with (have required attribute with) (potentially) slow down the processing of another sampled point), and if described fragments etc. do not have described attribute, preferably do not determine by early stage rejection test whether the processing of another sampled point in graphics processing pipeline should slow down in response at least one sampled point).
Therefore, in a preferred embodiment, definite experience that whether should slow down to the processing of sampled point and/or fragment further checks and/or standard.
Similarly, in a preferred embodiment, if other attribute that first fragment (or sampled point) by early stage rejection test, checks fragment (or sampled point) is to determine before processing in the fragment (or sampled point) slowing down in streamline whether its (or they) processing should slow down (potentially).
Trigger subsequently according to the standard of the fragment of the operation of mode of the present invention and can be any selected and suitable standard by early stage rejection test.
In especially preferred embodiment, in this, just that (whether fragment and/or sampled point abandon test using the conditional of a part being subject to as its processing by the early stage fragment of rejection test and/or the particular community of sampled point, there is the state that the indication fragment associated with it and/or sampled point can be abandoned after a while in the time that it is processed by graphics processing pipeline, for example and preferably, in the tinter associated with it, there is conditional abandoning).(some fragments that play up as known in the art, can be subject to for example, testing or state as various conditional the abandoning that these fragments () are dropped that cause of a part of playing up processing.This for example can be used in the time of the leaf of playing up on fence or tree (in this case, use and abandon for the space between leaf/fence).These fragments are preferably to apply fragment of the present invention.)
Therefore, in a preferred embodiment, described standard preferably includes one or more the conditional fragment that abandons test being subject to as a part for its processing.In a preferred embodiment, they comprise following one or more and preferably whole: the fragment that has full RGB and write mask; Do not there is the fragment of the mixed function that depends on previous RGBA value; Be used for the coloration program of the fragment not reading from piece impact damper; Complete opaque fragment; And do not force (passing through application programmer) to carry out the fragment that the later stage degree of depth is upgraded, wherein carry out the later stage degree of depth based on following reason and upgrade: transparent test; Be clear to covering; Tinter comprises and abandons; Mixing tinter comprises and abandons; Or the fragment early in tinter with same position forces to carry out later stage degree of depth renewal.
In other words, preferably, allow (use) due to transparent test, be clear to coverage test, tinter comprises and abandons, mixing tinter comprises and abandons, or the fragment compared with early in tinter is forced to carry out later stage degree of depth renewal and is executed the fragment that the later stage degree of depth upgrades and trigger the operation according to mode of the present invention, with (potentially) the slow down processing of other fragment and/or sampled point, but not allowing (not using) to execute for any other reason fragment that later stage degree of depth upgrades triggers according to the operation of mode of the present invention with (potentially) the slow down processing of other fragment and/or sampled point.
In especially preferred embodiment, except other, whether determining based on sampled point and/or the fragment by rejection test of whether should slowing down to the processing of any other sampled point in streamline and/or fragment can repeat to play up (and preferably, whether they can block) sampled point in streamline and/or fragment be (if because sampled point after a while and/or fragment are by for example early stage depth test, can represent these sampled points and/or fragment can be arranged in expression before any sampled point and/or fragment of the same position of streamline (and if they are opaque, (potentially) block described any sampled point and/or fragment)).
Therefore, preferably, carry out rejection test in early days by one or more stages after a while of graphics processing pipeline and " pass through " determining of those sampled points that should be slowed down to its processing in event and/or fragment, any sampled point and/or the fragment that can repeat to play up by the one or more sampled points by early stage rejection test and/or one or more fragment (suitably) potentially of described one or more stage identifications (determining) its current comprising (for example, processing) after a while.
Can carry out this processing according to any mode suitable and that expect, but preferably by by one in the current sampled point that occupies flow line stage and/or fragment or some or all (for example, (x, y)) position and sampled point by early stage rejection test and/or fragment (for example, (x, y)) position compares to realize.
In the time considering sampled point (with respect to whole fragment), this point is passed through by " reality " position of the sampled point of paying close attention to (but in a preferred embodiment, by by the position of the fragment of the sampled point of paying close attention to) compare to realize (for example, based on the coverage mask of fragment association) with the relative position of sampled point in fragment.
Considering when fragment, this point is preferably by comparing the position of in the current fragment that occupies flow line stage or some or all to realize with the position of the fragment by early stage rejection test.
Considering one group of multiple fragment (, by early stage rejection test) time, this is preferably by occupying the fragment of flow line stage or organize of fragment or the position of some or all compares to realize with the scope of the position (region) of the fragment covering by described one group of multiple fragment of early stage rejection test more current.
Occupy same position (playing up in output (plane) Yu by sampled point and/or the fragment (suitably) of early stage rejection test, there is identical (x, y) position) any current sampling point and/or the processing of fragment therefore can slow down (and preferably) (optionally) (for example, being as the criterion with other standard of the processing of the sampled point that slows down that meets equally).
In a preferred embodiment, determining of whether should slowing down to the processing of sampled point and/or fragment is as the criterion with other inspection and/or standard.Preferably, first check that the processing of its in streamline (for example will be slowed down potentially, to be blocked potentially) other attribute of fragment (or sampled point), with before the processing of the fragment (or sampled point) in streamline that slows down, determine whether its (or they) processing still should be carried out with normal priority (with normal speed) based on any other reason, and described other reason is for example because it has such as the spinoff that be still required associated with the occlusion query being still required.Whether this inspection preferably includes determines the fragment in streamline (or sampled point) because occlusion query (having its subsidiary effective occlusion query) or because other spinoff (in this case, preferably do not slow down it is processed) and be required.
Therefore, in especially preferred embodiment, graphics processing pipeline is configured to, in response to at least one sampled point of fragment association by early stage rejection test, the processing of optionally the slow down sampled point in streamline and/or one or more fragments.
When sampled point or one or more fragment are during by early stage rejection test, can implement to determine the operation whether processing of any sampled point in streamline and/or fragment should slow down according to any mode suitable and that expect.
Preferably, sampled point or the one or more fragment Event triggered by early stage rejection test (and meet any other required standard slow down with (potentially) processing of other fragment etc.) by relevant information (such as, and preferably by the sampled point of test or the position of fragment) be broadcast to process in streamline other (for example, stage after a while), those other (for example, after a while) stage preferably utilizes described information to estimate that they work as any sampled point of pre-treatment or whether the processing of fragment (for example should slow down subsequently, and preferably, according to mode discussed above).
In the time testing about whole fragment, this positional information preferably includes (x, y) position of the fragment of concern, as discussion above.In the time testing about one group of multiple fragment, this positional information preferably includes the scope (discussion still as above) of (x, the y) position being covered by the fragment in described one group of multiple fragment of paying close attention to.In the time testing about sampled point, positional information preferably includes (x, y) position of the fragment associated with sampled point, and is which indication (preferably, with the form of coverage mask, as discussion above) for the sampling point position of fragment about sampled point.
Therefore, in especially preferred embodiment, graphic system is configured to, if pass through early stage rejection test with at least one sampled point of fragment association, by the information broadcasting about at least one sampled point by early stage rejection test (and/or fragment of paying close attention to), at least one of graphics processing pipeline, (preferably other is (and preferably, stage after a while)), and at least one stage of graphics processing pipeline is configured to utilization is broadcast determines with any fragment of current fragment association in this stage and/or the processing of sampled point whether should slow down with the information of at least one sampled point by early stage rejection test and/or fragment association.According to discussion above, preferably, only at least one sampled point by early stage rejection test and/or fragment also meet other standard (such as, and preferably, to be dropped and to be as the criterion potentially in the time that it is processed by graphics processing pipeline) time by described information broadcasting other stage to graphics processing pipeline.
As discussion above, most preferably, early stage rejection test comprises early stage depth test, and/or at least one stage of graphics processing pipeline is configured to, and utilization is broadcast determines with sampled point by early stage rejection test and/or the information of fragment association whether current any sampled point in this stage and/or fragment repeat the sampled point and/or the fragment that are passed early stage rejection test to play up potentially, and if there is any such sampled point or fragment, optionally slowing down, these repeat the sampled point played up and/or the later processing of fragment potentially.
Therefore,, in especially preferred embodiment, graphics processing pipeline is configured to:
Sending forward fragment by streamline with before processing, for carrying out early stage depth test with at least one sampled point of fragment association and/or at least one fragment being generated by rasterizing device;
If at least one sampled point or at least one fragment are by early stage depth test (and in a preferred embodiment, if at least one sampled point or at least one fragment are dropped potentially in the time that it is processed by graphics processing pipeline), send forward fragment to process, and by the information broadcasting of at least one sampled point about by early stage depth test or at least one fragment at least one (preferably after a while) stage to graphics processing pipeline; And
At least one stage of graphics processing pipeline is configured to, with determining with at least one sampled point by early stage depth test or the broadcast message of at least one fragment association whether current any sampled point in the described stage and/or fragment repeat at least one sampled point or at least one fragment that are passed potentially early stage depth test to play up, and if there is any such sampled point or fragment, optionally slow down those are repeated to the sampled point played up and/or the further processing of fragment potentially.
As discussion above, most preferably, the information that is broadcast to the stage of graphics processing pipeline comprises by the sampled point of early stage rejection test and/or the position of fragment, and/or at least one stage of graphics processing pipeline is configured to, and utilization is broadcast determines with sampled point by early stage rejection test and/or the positional information of fragment association whether current any sampled point in this stage and/or fragment (are for example playing up target (destination impact damper) with sampled point and/or fragment by early stage rejection test, just processed piece) in occupy same position, and optionally slow down and in target, occupy any sampled point of same position and/or the later processing of fragment with sampled point by early stage rejection test and/or fragment playing up.
Rejection test " passes through " in event to determine that one or more stages of the processing the streamline whether processing of any sampled point and/or fragment can slow down can comprise any expectation of graphics processing pipeline and suitable stage in early days.At least one stage after a while that they preferably include graphics processing pipeline (, in early days the stage after rejection test and/or rasterizing device).For this reason, described processing streamline can be divided into many stages as required.
In a preferred implementation, this stage is the renderer (this determine realized by renderer) of graphics processing pipeline.Likely, for example, the single phase process that renderer operates according to mode of the present invention as a whole, or the phase process of multiple separation of working independently of one another as (and being divided into).Therefore, in a preferred embodiment, early stage rejection test " passes through " event information and is broadcast to by (at least) one or more parts (one or more parts of renderer or renderer operate according to mode of the present invention subsequently) of renderer and/or the renderer of graphics processing pipeline.
Rejection test " passes through " in event to determine that one or more stages of the processing the streamline whether processing of any sampled point or fragment can slow down preferably comprise other stage that for example can effectively reject the streamline of fragment in addition or alternatively in early days, (thereby attempt slowing down the processing of the fragment (for example after a while in early days the fragment in rejection test streamline) that for example still experiences early stage rejection test, and/or rasterizing device (thereby processing of the fragment (and/or sticking patch of fragment) early that for example still experiences rasterizing of attempting slowing down (not completely rasterizing)) such as early stage rejection test.
In especially preferred embodiment, multiple fragments (and preferably all fragments in the stage) and/or sampled point can concurrent testings.This be conducive to subsequently effectively utilize can a test case as the early stage rejection test of the sticking patch of multiple fragments.Preferably, arrangement is to make flow line stage can generate the processing of sampled point and fragment etc. of slowing down of speed that the speed of potential " slowing down " chance is identical by event with early stage rejection test.
According to discussion above, in the time that the processing of determining sampled point and/or fragment should be slowed down, the fragment that preferably slows down and/or sampled point are by the processing of streamline.
" slowing down ", fragment etc. should be more processed than more slowly with normal phase, but the degree that slows down of the processing of sampled point and/or fragment can be selected as required.Here should note, what expect is, the processing of sampled point and/or fragment is just slowed down or postpones for the speed of streamline normal process with respect to it, but not sampled point and/or fragment now " slowed down " abandon (forever stopping) thus be not further processed by streamline.Therefore, although the processing of fragment etc. slowed down, described fragment etc. no (in the time slowing down) thus be not dropped and be further processed by streamline.
In especially preferred embodiment, fragment in streamline and/or the processing of sampled point are slowed down and are comprised the fragment that postpones in streamline and/or the processing of sampled point, make to trigger in the streamline that slows down and exceed the fragment of concern of " slowing down " fragment or sampled point or sampled point or the fragment of the processing of sampled point, and be preferably to trigger the slow down sampled point of the fragment paid close attention to or the processing of sampled point or fragment and should (and preferably) before the processing that completes " slowing down " fragment in streamline or sampled point, in streamline, complete its one or more conditional tests that abandon.As by the description after a while, this makes subsequently " triggering " fragment or sampled point can be used in (potentially) and abandons fragment that (" termination ") slow down etc., in case stop-pass is crossed the further processing of streamline.
Slow down and determine its processing sampled point that should slow down and/or the processing of fragment according to any expectation and suitable mode.
In a preferred implementation, fragment in streamline and/or the processing of sampled point are slowed down and are comprised the fragment suspended in streamline and/or the processing of sampled point, (for example, and preferably, until " triggering " fragment and/or sampled point have completed its one or more conditional tests that abandon).
Can realize as required the time-out that fragment in this streamline etc. is processed.In a preferred implementation, the fragment of time-out etc. is arranged in " pond of ossifing " (their processing here suspends).
In another preferred embodiment, the processing of the fragment in streamline and/or sampled point slow down and comprise (for example and preferably) go the preferentially fragment of (de-prioritising) streamline and/or the processing of sampled point (reducing its priority) by giving for " slowing down " fragment for buffer area access and/or for the lower priority of other processing by streamline (with respect to the fragment not slowing down etc.).
Can realize or expect this processing of going preferential fragment etc. by streamline.
In especially preferred embodiment, the fragment with instruction to be processed is arranged in fragment pond, in the time completing instruction, and prepares for the cache hit carried out and when instruction, suitable fragment is taken out and carried out subsequently from fragment pond when existing.By allowing to increase priority state as extra Consideration when fragment is taken out from fragment pond when determining whether, fragment can make their processing priority reduce subsequently.
In a preferred embodiment, fragment etc. is by making a return journey the sampled point identifying and/or fragment label preferentially for " going preferential " (having the processing priority of reduction).The relevant treatment stage can be subsequently for example checks whether sampled point and/or fragment have been gone preferentially before sampled point and/or fragment are carried out to any processing, and therefore had the fragment etc. of normal or priority that reduce with aftertreatment.This is by the processing of then slow down preferential sampled point and/or fragment.
With regard to sampled point, for pay close attention to fragment, preferably by the metadata such as sampled point mask suitably settings sampled point is labeled as preferentially.
When considering fragment when entirety, each fragment can for example have " go preferential " bit associated with it (for example as its associated fragment data a part), if this bit is set up, indicates the processing of fragment to be gone preferentially.In a preferred implementation, be exactly to do like this.Processing stage can check subsequently " going preferential " bit of each fragment that they receive to process.If all sampled points of preferential and fragment association are finally removed in the test of sampled point separately, this bit can be set.
The arrangement of alternative (such as the fragment queue operating as buffer area that makes to have preferential label arrange fragment remove preferential label time discharge queue (buffer area) OK) can be used as substituting or use in addition as required.
Once fragment and/or sampled point have triggered the fragment of other in streamline etc. that slows down, in especially preferred embodiment, once (this triggering fragment completes (with passing through) its all discarding states that can stand, carry out and allly conditionally abandoned test and be not dropped), whether the processing of further determining subsequently any fragment early in streamline still etc. can stop (for example, will shelter from (are not dropped and will be not dropped because of it) such as those other fragments based on known " triggerings " fragment etc.).For example, process once " triggering " fragment completes it by streamline, once and/or its final conditional test that abandons of its experience (and passing through), just can achieve this end.
Therefore, in especially preferred embodiment, abandon test (if trigger in advance sampled point and/or the fragment of the processing of slow down other fragment in streamline and/or sampled point by the conditional of all its associations, be not dropped), whether another sampled point of just processing in definite graphics processing pipeline and/or the processing of fragment can stop.
Therefore, this means that fragment can be used for avoiding by all its conditional results that abandon test and/or stops processing (" terminations ") still sampled point of the primitive of morning in streamline.
Here should note, this operation when with operation of the present invention in conjunction with when slowing down or to postpone the processing of the fragment that can be blocked by the fragment after early stage rejection test potentially etc., mean " slowing down " trigger fragment by its conditional result that abandons test can be subsequently for the fragment that slows down at those by streamline any " fragment slowing down " that thoroughly for example " termination " triggering fragment exceedes and the fragment that is in fact triggered is blocked at streamline before processing.Like this, even in early days rejection test (for example depth test) stage enough determine far and away in fact whether new fragment (for example) will block the fragment in streamline, also make subsequently fragment after a while can be used in to carry out hidden surface about the fragment early before the fragment after a while in streamline to eliminate.
Therefore, for example, and unlike prior art, can use the present invention to reduce or to avoid in fact being played up in order primitive after a while " repeating to play up " blocking in primitive and/or fragment.The effect of doing is like this, compared with existing early stage depth test technology for example, the present invention can further be reduced in the degree of unnecessarily processing hidden surface in graphics processing pipeline.
Applicant further recognizes, " slowing down " of the fragment in streamline that can exceed in streamline new triggering fragment etc. is more, and this operation will be more effective.Therefore,, according to discussion above, preferably, being treated to such as making to trigger fragment of the fragment that slows down etc. can exceed its some (and preferably whole) fragments that " slow down " etc.
It is believed that, use sampled point and/or fragment in graphics processing pipeline by the conditional result that abandons test to determine in streamline that idea itself that whether processing of fragment early etc. can stop can be novel and useful.
Therefore, according to a further aspect in the invention, a kind of method that operates graphics processing pipeline is provided, described graphics processing pipeline comprises multiple processing stage, the processing stage of the plurality of, comprise: rasterizing device, its rasterizing input primitive is to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with it; And renderer, it processes the fragment being generated by rasterizing device to generate output chip segment data, said method comprising the steps of:
About carrying out the conditional test that abandons with at least one sampled point of the fragment association being generated by rasterizing device; And
If at least one sampled point abandons test by conditional, in streamline, send forward fragment, and by the conditional result that abandons test, determine whether the processing of another sampled point in graphics processing pipeline can stop as at least one sampled point.
According to a further aspect in the invention, provide a kind of graphics processing pipeline, this graphics processing pipeline comprises:
The processing stage of multiple, the processing stage of the plurality of, comprise: rasterizing device, its rasterizing input primitive is to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with it; Renderer, processes the fragment being generated by rasterizing device to generate output chip segment data, and wherein:
Can be about carrying out the conditional test that abandons with the sampled point of the fragment association being generated by rasterizing device; And
Wherein, described graphics processing pipeline is configured to:
In response to abandoning test with at least one sampled point of the fragment association being generated by rasterizing device by conditional, in streamline, send forward fragment, and by the conditional result abandoning, determine whether the processing of another sampled point in graphics processing pipeline can stop as at least one sampled point.
Operation of the present invention is used conditionally abandons test and comprises any suitable this test, such as the test of the form using in the time playing up leaf or fence.
Available conditional of any or all of graphics processing pipeline abandons test (the conditional test phase that abandons) and can be configured to operate in this manner (trigger action in this manner).Preferably, final conditionally abandon test once fragment etc. will stand by it, just determine.
One or morely conditionally abandon test itself and can carry out according to any mode suitable and that expect, for example, carry out and/or graphic system for paying close attention to according to normal mode as known in the art.
On the other hand, abandon test (if trigger conditional that one or more sampled points of processing of other fragment of slowing down in streamline etc. or one or more fragment will not stand by it, as the conditional result that abandons test, be dropped), applicant recognizes any fragment that the fragment by paying close attention to that can not abandon safely in streamline slows down etc. (this is because triggering fragment has been dropped, will in fact not block " slowing down " fragment thereby trigger fragment etc.).Therefore, in this case, it is processed by graphics processing pipeline that any fragment slowing down by the result of early stage rejection test as the fragment of paying close attention to etc. etc. should continue (and preferably still).
In this case, " slow down " fragment etc. will continue processed with slower speed simply.But, in especially preferred embodiment, being dropped subsequently if trigger their fragment etc. of processing of slowing down, the fragments that " slow down " etc. are restored with according to higher (and preferably according to normal) (they " recovery ") processed.Preferably, if triggering fragment etc. for example rely on operation of the present invention to be dropped (" termination ") based on any other reason, can realize this point.
Therefore, these embodiments and aspect of the present invention preferably also comprise: if at least one sampled point does not abandon test (being dropped) by conditional, abandon not by conditional at least one sampled point that abandons test, and not by the conditional result that abandons test, determine whether the processing of another sampled point in graphics processing pipeline should recover as at least one sampled point.
Can realize as required this " recovery " of the fragment that previously slows down etc." recovery " signal of suitable " recovery " of the fragment of by transmission, triggering being paid close attention in a preferred embodiment, etc. is realized.
These " terminations " and " recovery " are processed and can be operated in sampled point level (resolution) (but not for example about whole fragment), and therefore test, and stop further processing or recovery and the independent sampled point of the fragment association of morning in streamline.Conditional while abandoning the independent sampled point of test test, this can be especially suitable, and will make for example described processing can " remove " with the sampled point of the fragment association in streamline still (for example, until all " stopping " (or recoveries) of its sampled point now can abandon (or " recovery ") whole fragment subsequently).
Similarly, described processing can be configured to operate in addition or alternatively about whole fragment,,, if make whole fragment (or one group of multiple fragment) abandon test by (finally) is conditional, determine whether the still processing of any fragment in streamline can stop.
In a preferred embodiment, if just tested fragment entirety is by (or not passing through) conditional test, as fragment by (or not passing through) the conditional result that abandons test, determine whether the processing of the fragment early in streamline can stop (or recovering respectively).
The resolution of the entity (such as (preferably) fragment) operating thereon with rendering pipeline in a preferred embodiment, is carried out described definite.
Preferably, by (or not passing through respectively) the conditional result that abandons test, determine whether any the processing in multiple sampled points and/or the fragment early in streamline can stop (or recovery) as at least one sampled point and/or fragment.
Determining of whether can stopping the processing of any other sampled point early in streamline and/or fragment can be based on any expectation and suitable standard.In especially preferred embodiment, based on whether playing up sampled point in (and preferably whether they will block) streamline and/or fragment (if because sampled point and/or fragment abandon test (with early stage depth test) by all they conditional, should indicate these sampled points and/or fragment entering any sampled point and/or fragment front (also therefore blocking (if they are opaque) described any sampled point and/or fragment) of expression same position of streamline before them) by repeating by all their conditional sampled point and/or fragments that abandon test.
Therefore, conditional abandon test " pass through " event in to no longer needing determining of those processed sampled points and/or fragment preferably to carry out by one or more stages of graphics processing pipeline, any sampled point and/or fragment that described one or more stages are identified (determining) its current comprising (for example processing) repeat to play up by being passed conditional one or more sampled points and/or the one or more fragment (suitably) that abandons test.
To the processing of any other sampled point in streamline and/or fragment whether recoverable determine can be similarly based on any expectation and suitable standard.In especially preferred embodiment, this sampled point slowing down based in streamline and/or fragment whether can be not no longer be repeated to play up (and preferably whether they can no longer be blocked) (if do not tested and be dropped by conditional abandoning due to sampled point and/or fragment, will meaning that these sampled points and/or fragment be not by before any sampled point and/or fragment of expression same position that entered streamline before them (and therefore not blocking (if they are opaque) described any sampled point and/or fragment)) by conditional sampled point and/or the fragment that abandons test.
Therefore, conditional abandon test " do not pass through " event in to recoverable these sampled points and/or fragment determine preferably carry out by one or more stages of graphics processing pipeline, described one or more stage identify (determining) its current comprising (for example, process) now can be not by not by conditional one or more sampled points of test and/or any sampled point and/or the fragment that one or more fragment (suitably) repeats to play up of abandoning.
Can carry out these processing according to any mode suitable and that expect, but preferably by for example, by the current sampled point of flow line stage and/or or the ((x of some or all of fragment of occupying, y)) position with abandon the sampled point of test and/or (for example (x, y)) position of fragment compares to carry out by (or not passing through) is conditional.
In the time considering sampled point (with respect to whole fragment), by by pay close attention to sampled point " reality " position (but in a preferred embodiment, by by the position of the fragment of the sampled point of paying close attention to) for example, compare to carry out with the relative position (, based on the coverage mask of fragment association) of sampled point in fragment.
Considering when fragment, preferably by by the position of in the current fragment that occupies flow line stage or some or all with by or do not compare to carry out by the position of the conditional fragment that abandons test.
(for example considering, by later stage rejection test) when one group of multiple fragment, preferably, compare to carry out by the scope of position (region) that the position of in the current fragment that occupies flow line stage or some or all and the fragment by the conditional described one group of multiple fragment that abandon test are covered.
Preferably about whether should " stopping " than the definite fragment of executions such as the fragment slowing down etc. " older " (before described fragment in streamline) fragment etc. that triggers them or the processing of " recovery ".Primitive to be processed (and then fragment and/or sampled point) can be associated with timestamp to be conducive to this.
Occupy same position (playing up in output (plane) Yu by (or not passing through) conditional (suitable) sampled point and/or fragment that abandons test, there is identical (x, y) position) any older sampled point and/or the processing of fragment subsequently (and preferably subsequently) (optionally) stop (or recovering respectively) (for example, being as the criterion with other standard of the processing that stops (or recovery) sampled point that meets equally).
In a preferred embodiment, sampled point and/or whether discardable in case the determining of being subject to further processing of fragment are as the criterion with other inspection and/or standard.Preferably, first stop to checking before the processing of fragment (or sampled point) potential be dropped (for example, by what be blocked) other attribute of fragment (or sampled point) in streamline, with determine fragment (or sampled point) whether should based on any other former carry on as before processed, described reason for example because it has such as the spinoff that be still required associated with occlusion query.Described inspection preferably includes, and determines that whether fragment (or sampled point) is because of occlusion query (having its subsidiary effective occlusion query) or because other spinoff is still required (should not be abandoned in this case).
Therefore, in especially preferred embodiment, graphics processing pipeline is configured to, in response to by least one sampled point of the conditional fragment association that abandons test, optionally stop the processing of the sampled point in streamline and/or one or more fragments.
When sampled point or one or more fragment by or not by conditional while abandoning test, determine that the operation whether processing of any sampled point in streamline and/or fragment can stop or recovering can carry out according to any mode suitable and expectation.
Preferably, sampled point or one or more fragment by and/or not by the conditional Event triggered that abandons test by relevant information (such as, and preferably, by the sampled point of (or not passing through) test or the position of fragment) be broadcast to process in streamline other (for example, early) stage, described other (for example, early) stage preferably utilizes described information to estimate that they work as any sampled point of pre-treatment or whether the processing of fragment can (for example stop or recovering, and preferably, according to mode discussed above).
In the time testing about whole fragment, according to discussion above, this positional information preferably includes (x, y) position of the fragment of concern.In the time testing about one group of multiple fragment, this positional information preferably includes the scope (still basis discussion above) of (x, the y) position being covered by the fragment in described one group of multiple fragment of paying close attention to.In the time testing about sampled point, positional information preferably includes the (x of the fragment associated with sampled point, y) position, and about described sample in the indication of which sampling point position of described fragment (preferably with the form of coverage mask, according to discussion above).
Broadcast message preferably also comprise the conditional fragment that abandons test of indication experience etc. " newness degree " timestamp (and broadcast of trigger message) and/or to indicate described signal be " recoverys " or " termination " (" stopping processing ") signal.
Therefore, in especially preferred embodiment, graphic system is configured to, if with at least one sampled point of fragment association that triggers in advance slow down sampled point in streamline and/or fragment by its final conditional test that abandons, at least one (preferably other (and preferably early)) stage to graphics processing pipeline by the information broadcasting of at least one sampled point (and/or fragment) about by the conditional concern that abandons test, and at least one stage of graphics processing pipeline is configured to use and determines with any fragment of current fragment association in the described stage and/or the processing of sampled point whether can stop by conditional at least one sampled point of test and/or the broadcast message of fragment association of abandoning.
Similarly, in especially preferred embodiment, graphic system is configured to, if do not abandon test by conditional with at least one sampled point of the fragment association that triggers in advance slow down sampled point in streamline and/or fragment, by at least one (preferably other (and preferably early)) stage to graphics processing pipeline about the information broadcasting by conditional at least one sampled point that abandons test (and/or fragment of paying close attention to) not, and at least one stage of graphics processing pipeline is configured to use and does not determine with any fragment of current fragment association in the described stage and/or the processing of sampled point whether can recover by conditional at least one sampled point of test and/or the broadcast message of fragment association of abandoning.
Preferably, graphics processing pipeline is configured to carry out these two and processes (, trigger in advance slow down sampled point in streamline and/or each fragment of fragment and will trigger broadcast " recovery " or " termination " signal, this depends on the conditional result that abandons test of its experience).
Therefore,, in especially preferred embodiment, described graphics processing pipeline is configured to:
For carrying out the conditional test that abandons with at least one sampled point of the fragment association being generated by rasterizing device that triggers in advance slow down sampled point in streamline and/or fragment;
If at least one sampled point abandons test by conditional, at least one (preferably early) stage to graphics processing pipeline by the information broadcasting about by conditional at least one sampled point that abandons test; And
At least one stage of graphics processing pipeline is configured to use and determines by the associated broadcast message of conditional at least one sampled point that abandons test whether current any sampled point in this stage repeats to play up by being passed conditional at least one sampled point that abandons test, and if there is any such sampled point, optionally stop the further processing of these sampled points that repeat to play up.
Similarly, in especially preferred embodiment, graphics processing pipeline is configured to:
For carrying out the conditional test that abandons with at least one sampled point of the fragment association being generated by rasterizing device that triggers in advance slow down sampled point in streamline and/or fragment;
If at least one sampled point does not abandon test by conditional, by least one (preferably early) stage to graphics processing pipeline about the information broadcasting by conditional at least one sampled point that abandons test not; And
At least one stage of graphics processing pipeline is configured to use and does not determine by the associated broadcast message of conditional at least one sampled point that abandons test whether current any sampled point in this stage will not repeated to play up by conditional at least one sampled point that abandons test, and if there is any such sampled point, the processing that optionally recovers these sampled points.
According to discussion above, most preferably, the information that is broadcast to the stage of graphics processing pipeline comprises by (or not passing through) the conditional sampled point of test and/or the position of fragment and the newness degree preferably of abandoning, and/or at least one stage of graphics processing pipeline is configured to, with with by or do not determine by the conditional positional information that abandons the sampled point of test and/or the broadcast of fragment association whether current any sampled point and/or fragment in this stage (is for example playing up target (destination impact damper), processed piece) in by or do not occupy same position by conditional sampled point and/or the fragment that abandons test, and optionally stop respectively or recover play up in target with respectively by or do not occupy any sampled point of same position and/or the later processing of fragment by conditional sampled point and/or the fragment that abandons test.
Conditional abandon that test " is passed through " or " not passing through " event in, determine whether any sampled point and/or fragment no longer need one or more stages of the processed processing streamline that maybe should be resumed can comprise any expectation of graphics processing pipeline and suitable stage.What they preferably included graphics processing pipeline can determine by the result of one or more early stage rejection tests at least one or more the stage whether processing of fragment etc. should be slowed down as sampled point.For this reason, process streamline and can be divided into as required many stages.
In especially preferred embodiment, multiple fragments (and preferably all fragments in the described stage) and/or sampled point can be tested concurrently.This be then conducive to effectively utilize can one time test case abandon test as the sticking patch of multiple fragments conditional.
Determine that sampled point that its processing can stop and/or the processing of fragment can stop and/or omitting according to any expectation and suitable mode.Preferably, this is by the sampled point identifying and/or fragment label are realized for " termination " (invalid), and the relevant treatment stage checked whether sampled point and/or fragment do not stop (effectively) subsequently before it is carried out to any further processing.This will be avoided and/or stop any non-essential processing of these sampled points and/or fragment subsequently.
In the time will considering independent sampled point, sampled point preferably by for pay close attention to fragment in coverage mask, arrange suitably its value be marked as invalid.
In the time considering fragment entirety, each fragment (for example can for example have " termination " (engineering noise) bit associated with it, as a part for its associated fragment data), when this bit is set up, indication fragment does not need processed (and can be dropped).In a preferred implementation, do like this.Processing stage can for example check subsequently that the invalid bit of each fragment that their receive is to process.If it is invalid that the test of independent sampled point finally makes with all sampled points of fragment association, this bit also can be set.
The arrangement (such as making the fragment queue operating as buffer area with effective label discharge queue (buffer area) OK in the time that the invalid label of fragment is set) of alternative can be used as substituting, or uses in addition as required.
Although still in streamline (but untreated) of any " termination " fragment, in a preferred embodiment, takes steps to remove invalid fragments from streamline.This point can preferably realize by one or more compression stages that can operate to remove (they receive) invalid fragments from streamline are set in streamline.Described compression stage can comprise for example FIFO(first in first out) queue, along with fragment is advanced by FIFO, queue operates to remove any invalid fragments (to remove any room).
With regard to determining the sampled point and/or fragment that " recover " its processing, can carry out according to any expectation and suitable mode.How this processing that can first depend on such as fragment etc. slows down.
In a preferred embodiment, increase its processing priority by (" slow down " and remove priority status with respect to it) and recover fragment etc.Preferably, fragment etc. is restored to its initial (normally) processing priority and speed.
When its processing is slowed down by suspending them the processing of the fragment being slowed down and/or sampled point by the processing of streamline, fragment and/or sampled point preferably recover by " stopping suspending " (no longer suspending) their processing.
In a preferred implementation, treat that the fragment etc. of the time-out of " recovery " is taken out from " pond of ossifing " (their processing suspends) here, and be back to streamline with according to normal mode processing.
Its process by the processing of the fragment being slowed down and/or sampled point by by by the sampled point identifying and/or fragment label for " going preferential " processing priority of reduction (as have) go preferential they while slowing down by the processing of streamline, preferably by no longer sampling and/or fragment label is that " going preferentially " recovers fragment and/or sampled point.Therefore, preferably upgrade suitably suitable " going preferential " metadata (such as sampled point mask) and/or " going preferential " bit of (change) and fragment association.
Similarly, used the fragment queue operating release (if being provided with the preferential label that goes of fragment) queue (buffer area) row with preferential label as buffer area time, in the time that will recovering, fragment etc. go preferential label to be upgraded suitably.
Be appreciated that from above, in especially preferred embodiment, for example, if fragment and/or sampled point (are rejected by early stage, the degree of depth) test and send the signal of the processing that triggers one or more fragments in streamline of slowing down etc., so, if it will stand by it all conditionally abandons test, send to trigger and stop processing (abandoning) it processes the signal of one or more fragments of slowing down in advance etc.; And if conditional test, the signal of the processing of one or more fragments that its processing of transmission triggering recovery is slowed down in advance etc. of abandoning that it will not stand by it.
Be further appreciated that from above it processes the fragment that slows down in advance and/or sampling will make its processing stop or recovering subsequently, first this depend on triggering the slow down fragment of sampled point and/or fragment and/or the result of sampled point.
In especially preferred embodiment, only carry out the operation for determining whether the processing of any fragment of processing streamline should slow down etc. subsequently of the event by one or more early stage rejection tests by fragment of the present invention about complete opaque fragment.Therefore, if the fragment by early stage rejection test or one group of multiple fragment be transparent fragment (, non-complete opaque fragment) or comprise transparent fragment, fragment or one group of fragment are preferably still proceeded to process, but are preferably not used in and are determined whether the processing of any fragment in processing streamline should slow down by event with the early stage rejection test of fragment or one group of fragment association.
This directly makes for experiencing transparent test and be clear to the of the present invention potential fragment of fragment of coverage test or sampled point slows down and " terminations " operating operation lost efficacy (and be equal to the nearer transparent fragment of direct permission and/or sampled point can not prevent that fragment far away and/or sampled point from finally exporting the still visible fact).
Applicant further recognizes, experiences and passes through early stage rejection test, and meet the above standard that has full RGB and write mask in fragment (or at least with the sampled point of fragment association); Fragment does not have the mixed function that depends on previous RGBA value; The coloration program of fragment does not read from piece impact damper; Fragment is completely opaque; When fragment is not upgraded based on any reason compulsory execution later stage degree of depth, for such fragment and/or sampled point, in fact the rejection test stage determines that described sampled point etc. will block any other sampled point with same position in streamline etc. immediately, in early days.
This is possible, because for example in early days in depth test, sampled point in streamline and/or the fragment with same position can be positioned at by the new sampled point of early stage rejection test and/or the rear of fragment by hypothesis, and therefore can suppose to be blocked (if sampled point after a while and/or fragment are opaque) by those sampled point and/or fragments after a while (if by early stage depth test, and do not force to carry out later stage degree of depth renewal, must be positioned at any sampled point and/or fragment front early with same position by new sampled point and/or the fragment of test).
Although may still will " slow down " simply in this case, signal is sent to fragment in streamline etc., but applicant has realized that in the time that described fragment etc. is passed through early stage rejection test, its will be in fact safely immediately (now) stop processing the suitable fragment in streamline etc..
Therefore, in a preferred embodiment, the present invention also (and really also) determine whether the processing of another sampled point of just processing in graphics processing pipeline can stop (at least in rejection test stage in early days, knowing that the sampled point of test and/or fragment will " repeat to play up " (blocking) the sampled point and/or fragment in streamline) with sampled point by the result of early stage rejection test.
This makes the present invention can further be reduced in the degree of unnecessarily processing hidden surface in graphics processing pipeline then compared with existing early stage depth test technology for example.
Therefore,, in especially preferred embodiment, method of the present invention comprises the following steps:
Be sent to renderer with before processing in fragment, about carrying out early stage rejection test with at least one sampled point of the fragment association being generated by rasterizing device; And
If at least one sampled point, by early stage rejection test, sends forward fragment to process; And
For the fragment of the selectable attribute of tool, as at least one sampled point by the result of early stage rejection test, determine according to the attribute of fragment whether the processing of another sampled point in graphics processing pipeline should slow down, or whether the processing of another sampled point in graphics processing pipeline can stop.
Stop immediately those sampled points and/or the fragment etc. of the standard of the processing of fragment of other in graphics processing pipeline etc. for meeting (potentially), this operation is preferably similar to the processing operation of the above-mentioned fragment for the streamline that slows down etc., just, as the substituting of the processing of the fragment in streamline of slowing down etc., the processing (suitably) of fragment etc. stops ((immediately) abandons fragment etc.).This point can and preferably realize and implement according to the mode corresponding with aforesaid operations, with the processing of fragment of slowing down in streamline etc.
Preferably include for the standard that triggers potentially another fragment etc. of " termination " (abandoning) streamline by the fragment of early stage rejection test: the fragment that there is full RGB and write mask; Do not there is the fragment of the mixed function that depends on previous RGBA value; Be used for the coloration program of the fragment not reading from piece impact damper; Complete opaque fragment; And do not force (passing through application programmer) to carry out the fragment that the later stage degree of depth is upgraded.
The stage of graphics processing pipeline can be configured to operate according to mode of the present invention according to any mode suitable and that expect.In a preferred embodiment, the described stage comprises the test of combination and new logic more, it can operate to carry out rejects and/or conditionally abandons test, and if meet any required standard by (or not passing through) test (at least for conditional abandon test) and described fragment, will be by (or not passing through) event and the necessary information " broadcast " associated with it suitable stage to graphics pipeline.
In response to early stage rejection test with conditionally abandon test and " pass through " one or more stages of the graphics processing pipeline of (or " not passing through ") (at least for conditional abandon test) event and can be configured to suitablely carry out this process with the mode of expectation according to any.Preferably, they have the agency associated with them, described agency is responsible for and receives that test " is passed through " or " not passing through " information the fragment in the stage of paying close attention to, and can operate subsequently with any its processing of identification in their " territory " (stage) and can be slowed down or recover and/or no longer need processed fragment and/or sampled point, and slow down subsequently or recover the processing of (recovery) those fragments and/or sampled point and/or prevent any unnecessary further processing of those fragments and/or sampled point.
In some embodiments, graphics processing pipeline comprises storage data as herein described and/or stores one or more storer and/or the storage arrangement of the software for carrying out processing as herein described, and/or communicates with them.Graphics processing pipeline also can communicate with host microprocessors, and/or shows that with the data that generate based on graphic process unit the display of image communicates.
The renderer of graphics processing pipeline should operate to play up the graphics fragment of (painted) its reception, to generate the output pattern fragment data of expectation, as known in the art.The renderer of graphics processing pipeline can comprise any suitable element of playing up with expecting, and can be constructed according to any mode suitable and that expect.Therefore, for example, the renderer of graphics processing pipeline can comprise fixed function rendering pipeline, comprises that one or more fixed function plays up the stage, such as texture projection, mixer, atomization unit etc.In a preferred embodiment, renderer comprises fragment shader (tinter streamline) (be flow line stage able to programme, it can operate with able to programme to carry out fragment shading program in fragment, thereby plays up them).Using when fragment shading, the present invention can be especially favourable, and because fragment shading can be relatively costly processing, and more effective early stage hidden surface is eliminated to have carried out fragment shading part especially favourable.
Those skilled in the art should understand that, renderer will be processed the fragment of its reception, generate subsequently the fragment data that output is played up, the fragment data of wherein playing up is preferably written to the output buffer in external memory storage subsequently, such as frame buffer, for example, to use (, display frame on display).
No matter the available output form of graphic system how, all can be used the present invention.Therefore, for example, play up output be intended to be formed for (for example, on screen or printer) show image (frame) time, can use the present invention's (and being exactly this situation) in a preferred implementation.But, the present invention also can be used for playing up output and is not intended to the situation for showing, for example play up output be use graphic system generate texture (for example, in " playing up to texture " operation), or the output that in fact, uses graphic system to generate is the data array of any other form.
Can carry out various function of the present invention according to any expectation and suitable mode.For example, function of the present invention can realize as required in hardware or software.Therefore, for example, various functional element of the present invention, processing stage and " device " can comprise suitable one or more processors that can operate to carry out various functions etc., one or more controllers, functional element, circuit, processing logic, microprocessor arrangement etc., such as specialized hardware element or treatment circuit and/or programmable hardware element or the treatment circuit of structure suitably to operate according to expectation mode able to programme.
Here should also be noted that and it should be appreciated by those skilled in the art that various functions of the present invention etc. can copy concurrently and/or carry out on given processor.Similarly, various processing stage shared processing circuit etc. as required.
The present invention can be applicable to have any suitable form or the structure of graphic system, graphic process unit and the renderer of " streamline " arrangement.Graphics processing pipeline can comprise that graphics processing pipeline normally comprises any suitable and expect processing stage etc.In especially preferred embodiment, graphic system is the graphic system based on piece.Similarly, in a preferred embodiment, described graphic system is multiple nucleus system (, comprising multiple graphics process core).
Therefore, the present invention extends to any one or the more equipment that comprise according in each aspect of the present invention described herein, or according to any one or more method operation graphic process unit and graphics processing platforms in each aspect of the present invention described herein.Take the necessary any hardware of execution specific function discussed above as condition, described graphic process unit can comprise that any one of common functional element that graphic process unit comprises etc. is more or whole in addition.
Those skilled in the art be also to be understood that the aspect of all descriptions of the present invention and embodiment can comprise that any one preferably and in optional feature as herein described is more or whole suitably.
The method according to this invention can be utilized the implement software of for example computer program at least in part.Therefore, can find out, in the time seeing from other side, the invention provides the computer software that is particularly suitable for carrying out method as herein described in the time being arranged on data processing equipment, and be suitable for carrying out one or more methods as herein described the computer program that comprises code device (in the time that described program is moved in data handling system) in steps.Data handling system can be microprocessor, FPGA(field programmable gate array able to programme) etc.
Therefore, the present invention can be embodied as the computer program for computer system suitably.This realization can comprise the series of computation machine instructions being for example fixed on, on tangible medium (such as nonvolatile computer-readable medium,, disk, CD ROM, ROM, RAM, flash memory or hard disk).This realization also comprises and can (include but not limited to by tangible medium by modulator-demodular unit or other interface arrangement, optics or analog communication line) or utilize wireless technology (including but not limited to microwave, infrared or other transmission technology) intangibly to transfer to the series of computation machine instructions of computer system.Described series of computation machine instructions realizes all or part of of the previously described function of this paper.
Accompanying drawing explanation
Now will be only by way of example and describe multiple preferred implementation of the present invention with reference to the accompanying drawings, in accompanying drawing:
Fig. 1 schematically shows the embodiment according to graphic system of the present invention.
Embodiment
Multiple preferred implementation of the present invention will be described now.By main with reference to the present invention the use in graphic system these embodiments are described.But as mentioned above, the present invention can be applicable to comprise other pipelined data processing system of early stage " data entity " rejection test.
Fig. 1 schematically shows the graphic process unit 1 that can operate according to the present invention.
Fig. 1 shows main element and the flow line stage about the graphic process unit 1 of the operation of present embodiment.It should be appreciated by those skilled in the art that other element that can have graphic process unit not shown in Figure 1.Should be noted that Fig. 1 is only schematically here, even and the functional element illustrating in Fig. 1, be shown schematically as the stage separating with flow line stage, for example they also can share important hardware circuit in practice.Each stage, element and the unit etc. that be also to be understood that the graphic process unit shown in Fig. 1 can be realized as required, and will therefore comprise for example for carrying out suitable circuit and/or the processing logic etc. of necessary operation and function.
Graphic system shown in Fig. 1 is the system based on piece.Therefore, as known in the art, graphic process unit 1 is played up generation the piece of output data array (such as the output frame that will generate).(the present invention can be applied to other system equally, all Immediate Mode rendering systems as discussed above.) as known in the art, output data array can be generally and is intended to be presented at the output frame in display device (such as screen or printer), but can also for example comprise " render to texture " output etc. of graphic process unit.
Fig. 1 schematically shows and generates the graphic primitive for inputing to rasterizing processing (polygon) 2 flow line stage afterwards.Therefore, now graph data (vertex data) has experienced distortion and illumination operation (not shown), and primitive arranges stage (not shown) in response to order with provide to the vertex data setting of graphic process unit 1 and want coloured primitive, as known in the art.
As shown in Figure 1, this part fragment of graphic process unit 1 is processed streamline and is comprised multiple processing stage, comprises: rasterizing stage 3, the early stage classification ZS(degree of depth and template processing stage of the plurality of) test phase 4, the early stage ZS(degree of depth and template) stage of playing up and the later stage ZS(degree of depth and the template of stage 13, fragment shading stages 6 form) test phase 7.
As known in the art, the primitive grid that for example operates, formation is played up to output (image that, show) turns to independent graphics fragment to process the rasterizing stage 3.Therefore, rasterizing device 3 receives graphic primitive 2 to play up, and primitive grid is turned to sampled point and generates have the suitable position graphics fragment of (representing suitable sampling location), to play up primitive.In the present embodiment, each graphics fragment generating by rasterizing device 3 represents multiple (common 4) sampling locations (associated with described multiple sampling locations).(certainly, other arrangement will be fine).Each graphics fragment and indicating piece segment table show that the coverage mask of which sampled point of multiple sampling locations is associated, and it is in fact for playing up (, actual covered by the primitive of paying close attention to).
In the present embodiment, rasterizing device 3 is classification rasterizing devices, with the sampled point sticking patch with respect to more and more less (therefore it operate, accordingly, fragment sticking patch) test repeatedly primitive, until corresponding to the minimum patch size (, until can be turned to by grid a series of sampled points of 2x2 slice groups) of 2x2 slice groups, abandon not any sticking patch that (at least in part) covers primitive.Each sticking patch of test is corresponding to one group of given fragment.
Realize this point by rasterizing device 3: start and test the primitive of paying close attention to whether in this sticking patch from playing up the large sticking patch of target area.If not so, abandon whole sticking patch, and test next sticking patch, etc.On the other hand, if find that primitive is positioned at described sticking patch (to cover at least in part described sticking patch), this sticking patch is divided into 4 parts again, and subsequently according to same way test each " sub-sticking patch ", etc., until reach minimum patch size.
Once reach minimum patch size (that is, covering at least in part the sticking patch of the 2x2 fragment of the primitive that has been identified), rasterizing device 3 is just tested independent sampled point in this final sticking patch subsequently to determine whether sampled point is covered by described primitive.Rasterizing device 3 generates and exports independent fragment corresponding to the sampled point of finding to be covered by primitive subsequently, to play up.
No matter whether sampling location is capped (, in fact, no matter whether fragment is for playing up this sampled point (for this sampled point, no matter whether its data should be stored)), for with one group of sampling location of fragment association in each sampling location, rasterizing device 3 also with each fragment association of the coverage mask indication of bitmap form.
Certainly, other rasterizing arrangement is fine.
As shown in Figure 1, rasterizing device 3 also with in early days " classification " degree of depth (Z) and template test stage 4 associated.This hierarchy depth and template test stage 4 are carried out " in early days " degree of depth and template test to determine whether these sticking patch can be disallowable on the sticking patch generating by rasterizing device 3.
Therefore, the sampled point being generated by rasterizing device (in fact, fragment) each sticking patch be sent to early stage hierarchy depth and template test stage 4, it carries out the Z(degree of depth subsequently on the sticking patch of sampled point (fragment)) test to determine in this stage whether sticking patch can be dropped (rejecting).Therefore, each sticking patch that early stage hierarchy depth and template test device 4 receive from rasterizing device 3 for it is derived depth value scope by carry out suitable depth-sampling at sticking patch, and the depth value scope that this depth value scope is associated with sampling (fragment) position with sticking patch covering of previously deriving and storing compares, to attempt determining whether sticking patch blocks other fragment and the sampled point that will be played up, or noly (for example repeat to play up other fragment that will play up and sampled point, to appear at subsequently on streamline, or coloured fragment and sampled point).Meanwhile, carry out early stage template test.
If just tested sticking patch, not by the early stage degree of depth and template test, is abandoned (rejecting) in any further processing.
If just tested sticking patch is by the early stage degree of depth and template test, it is back to rasterizing device 3 to be further again divided into less " sub-sticking patch ", as discussion above.Each " sub-sticking patch " is back to the early stage degree of depth and template test device 4 subsequently to test, etc., until reach minimum patch size.
When the depth value scope that early stage hierarchy depth and template test stage 4 are used in the time that the sticking patch of the multiple sampled points that receive from rasterizing device 3 is carried out the degree of depth and template test is stored in the degree of depth and stencil buffer 5.Each patch size and the position that represent for impact damper, by the range storage of depth value (and stencil value) in the degree of depth and stencil buffer 5 (each patch size and the position that especially can generate for just processed piece for rasterizing device 3).
Depth value scope for each sticking patch storage is initially set to default value, or is set to the desired depth value scope (if can determine) of sticking patch.(in some arrangements, can become known in advance the possible depth value scope that the primitive of piece can have.Subsequently, it can be used for arranging for depth buffer 5 scope of the desired depth value of the sticking patch of concern.) subsequently, along with the sticking patch of testing by early stage hierarchy depth and template test stage 4, the early stage degree of depth and template test stage 13 and the later stage degree of depth and template test stage 7 and/or sampled point are by each degree of depth and template test, the sticking patch depth value scope of storage is upgraded.
For example, even if the fragment early in the streamline of same position (does not also complete any degree of depth or template test, do not experience early stage hierarchy depth and template test 4 and the early stage degree of depth and template test 13, and do not experience the later stage degree of depth and template test 7), also the sticking patch that means the sampling point position that early stage hierarchy depth and template test device 4 can still generate about rasterizing device 3 in the degree of depth and stencil buffer 5 for the depth value of the sticking patch storage expected range of multiple sampling point positions (therefore, fragment) of the piece of just playing up is carried out the degree of depth and template test.For example, even if this is that the depth value scope of expectation also can be used for determining which kind of result depth test () can have because also do not carry out the depth test about fragment early.Therefore, this allows early stage hierarchy depth and template test 4 according to the mode of present embodiment, the processing of the fragment early of streamline to be stopped for (potentially), even if these fragments early in fact also do not experience the degree of depth or template test is also like this.
Mean that for the sticking patch storage of sampling point position and the scope of MTD value the larger sticking patch of sampling point position can easily be subject to the early stage degree of depth and template test (because the scope of storage allows test to determine that whether sticking patch is by completely outside the scope of storage, and therefore, for example, completely by early stage hierarchy depth and template test).Therefore, as will be discussed further below, this can be conducive to broadcast impact in single treatment cycle and play up the early stage degree of depth in much bigger region of target and template test by event, thereby therefore it can (potentially) stop the processing of the whole slice groups in patch area (and need not for example must make potentially the processing of each fragment one by one stop) in a treatment cycle.
Early stage hierarchy depth and template test stage 4 are configured to operate according to suitably conservative mode, as known in the art.
Once reach minimum patch size (in this embodiment, the sticking patch of 2x2 fragment), rasterizing device 3 is just by representing to be published to by the fragment of early stage classification Z and the sticking patch in template test stage 4 (therefore, sampled point) remainder of graphics processing pipeline, to process.
The Part I of this processing is that the degree of depth and template test stage 13 make each fragment of issuing (output) by rasterizing device 3 be subject to the early stage degree of depth and template test in early days.This early stage degree of depth and template test stage 13 with independent (covering) sampling location of the fragment association of issuing by rasterizing device 3 on carry out the degree of depth and template test (, every sampled point resolution).
Therefore, the early stage degree of depth and template test device 13 use the every sampling location degree of depth and the stencil value that are stored in the degree of depth and stencil buffer 5.Therefore,, except every sticking patch depth value scope, each sampled point that the degree of depth and stencil buffer 5 represent for impact damper (especially for each sampling point position of the just processed piece) is stored respectively the suitable degree of depth (Z) value and stencil value.When the sampled point of just being tested by the early stage degree of depth and template test stage 13 and the later stage degree of depth and template test stage 7 is during by each degree of depth and template test, these values are stored in the degree of depth and stencil buffer 5.
In this embodiment, the degree of depth and stencil buffer 5 are configured to two different impact dampers (but they can in Same Physical storer), an every sticking patch depth range of buffer stores, and another stores every sampling depth value.Certainly, other arrangement is fine.
The early stage degree of depth and template test stage 13 are configured to operate according to suitably conservative mode again, as known in the art.
Therefore, function and object by this queue 12 of " queue " 12(will discuss in more detail below) by by the early stage degree of depth and the fragment in template test stage 13 (, have by the fragment of the early stage degree of depth and at least one associated sampling location in template test stage 13) send to forward fragment shading stage 6(renderer), as shown in Figure 1.
(do not rejected by the early stage degree of depth and template test stage 13 by the early stage degree of depth and the fragment in template test stage 13, as known in the art.)
The fragment shading stage 6 is carried out suitable fragment processing (playing up) operation in the fragment of its reception, for example, to process fragment for playing up output (, for the demonstration of fragment), thereby generates suitable fragment data etc., as known in the art.
This fragment processing can comprise any suitable fragment shading processing with expecting, such as carrying out fragment shading program in fragment, to fragment application texture, to fragment application mix, atomization or other operation etc., to generate suitable fragment data, as known in the art.In the present embodiment, the fragment shading stage 6 adopts the form of tinter streamline (programmable fragment is painted), but if necessary, is also fine such as other arrangement of other use or replacement fixed function fragment shading unit.
Then it is " later stage " fragment Z and template test stage 7, inter alia, (if carrying out this stage 7 in the fragment that does not for example experience early stage Z and template test) this stage 7 painted fragment (with the sampled point of the covering of painted fragment association on) end of upper execution pipeline depth test, to determine that (whether sampled point that the fragment played up represents be stored in fragment in piece impact damper 5 by repeating to play up its value by current, whether the fragment data that is identified for the fragment of issuing from the fragment shading stage 6 should be stored in piece impact damper (should substitute or revise the fragment data in the piece impact damper of coloured fragment)).
Therefore, the depth test stage in later stage 7 compares the depth value of the fragment of issuing from the fragment shading stage 6 (with this fragment association) and (every sampling location) depth value being stored in depth buffer 5 of the sampling location for paying close attention to.The depth value of the sampled point by later stage depth test 7 is also write Z-impact damper 5 suitably to upgrade, as known in the art.
This later stage fragment degree of depth and template test stage 7 are also carried out the template test of any necessity in fragment.
Be subject to subsequently required any all the other operations in fragment by the fragment of later stage fragment test phase 7, such as mixing with frame buffer, the (not shown) such as shake.
Finally, output chip segment data value is write suitable piece impact damper 8, as known in the art, described piece impact damper 8 represents for impact damper each sampled point (in essence for each sampled point of the just processed piece) is stored suitable value (for example color value).
Once treated each piece, its data just for example (for example export primary memory to from piece impact damper 8, frame buffer in primary memory) (not shown) to be to store, and next piece is processed subsequently, etc., until treated abundant piece for example, to generate the whole output (frame (image) that, show) of playing up.
Certainly, be fine for other arrangement of fragment processing streamline.
Describe the basic rasterizing of the graphic system shown in Fig. 1 above and played up processing.Now, will the operation of the graphic system shown in Fig. 1 according to the embodiment of the present invention correspondingly be described.
According to the present invention, present embodiment is used respectively by the result of the sticking patch of early stage hierarchy depth test 4, or the result of fragment by early stage depth test 13, and whether the processing of determining other fragment in graphics processing pipeline should slow down and maybe can stop.
Therefore, as shown in Figure 1, early stage hierarchy depth and template test stage 4 and the early stage degree of depth and template test stage 13 are configured to: if the sticking patch of fragment or fragment are respectively by corresponding early stage rejection test, not only by sticking patch or fragment delivery to its next stage of processing in streamline, but also will " pass through " information broadcasting that event the is relevant each stage (as shown in the dotted line 9,10,11,14 in Fig. 1) to streamline to early stage rejection test.They are also configured to for utilizing associated depth value and/or stencil value to upgrade the degree of depth and stencil buffer 5 with the sampled point of the fragment association by early stage depth test (can realize herein).
In the present embodiment, rejection test " passes through " broadcast of event and the renewal of depth buffer etc. not to be carried out for all sticking patch by early stage hierarchy depth test 4 and early stage depth test 13 and fragment, but only carries out for the sticking patch and the fragment that meet specific criteria (having particular community).Can avoid like this slowing down mistakenly and abandoning the fragment in streamline during by early stage depth test when fragment after a while.
Present embodiment is used " automatically detecting " scheme to determine that early stage depth test " passes through " event and whether should be broadcast to streamline in hierarchy depth and template test unit 4 and the early stage degree of depth and template test unit 13 in early days, and depth test " passes through " form that event broadcast should be taked in early days.
The early stage depth test stopping for the processing that can trigger other fragment in graphics processing pipeline " passes through " event broadcast (transmission) to streamline, and this automatic detection scheme has following demand: new sticking patch or fragment need to be by early stage z/s tests (and testing but not later stage z/s test processes by early stage z/s); New sticking patch or fragment need to have the mixed function that full rgb writes mask (z/ template has been written on it) and do not rely on previous rgba value; Can not read piece impact damper for new sticking patch or the tinter of fragment; And new sticking patch or fragment do not need to force to carry out later stage z renewal.
(due to following reason, new sticking patch or fragment need to force to carry out later stage z renewal: for example: transparent test; Be clear to covering; Tinter comprises and abandons; Mixing tinter comprises and abandons; Or the fragment early in tinter forces to carry out later stage z renewal.Therefore, this " force later stage z upgrade " demand means: when by early stage Z test, only carry out the operation of the processing that stops immediately other fragment in streamline for complete opaque sticking patch and fragment.This directly allows nearer transparent sticking patch or fragment can not prevent the fragment far away visible fact still in final output.)
Meet the early stage depth test stopping that the new sticking patch of above standard or fragment triggered the processing that can trigger other fragment in graphics processing pipeline and " pass through " event broadcast (transmission) to streamline.If sticking patch or fragment do not meet these standards, " the automatically detecting " scheme in early stage hierarchy depth and template test unit 4 and the early stage degree of depth and template test unit 13 determines that the early stage depth test slowing down whether sticking patch by early stage depth test or fragment should trigger the processing that can trigger other fragment in graphics processing pipeline " passes through " event broadcast (transmission) to streamline subsequently.
The early stage depth test slowing down for the processing that can trigger other fragment in graphics processing pipeline " passes through " event broadcast (transmission) to streamline, and described automatic detection scheme has following demand: new sticking patch or fragment need to be by early stage z/s tests (and testing but not later stage z/s test processes by early stage z/s); New sticking patch or fragment need to have the mixed function that full rgb writes mask (z/ template has been written on it) and do not rely on previous rgba value; Can not read piece impact damper for new sticking patch or the tinter of fragment; And new sticking patch or fragment do not need to force to carry out later stage z renewal (reason that later stage z upgrades has: transparent test, be clear to coverings, tinter comprise abandon, mix tinter comprise abandon or tinter in the fragment pressure early with same position carry out later stage degree of depth renewal).
Therefore, in the present embodiment, allow (uses) because the following former thereby fragment trigger action of executing later stage degree of depth renewal is with (potentially) the slow down processing of other fragment and/or sampled point, described reason: transparent test, be clear to coverage test, tinter and comprise and abandon; Mixing tinter comprises and abandons; Or the fragment early in tinter forces to carry out later stage degree of depth renewal.
The impact of these standards is mainly that any type of conditional fragment that abandons test being subject to as the part of its processing " is passed through " to event broadcast to streamline by the early stage depth test slowing down that triggers the processing that can trigger other fragment in graphics processing pipeline, rather than the early stage depth test stopping that can triggering the processing of other fragment in graphics processing pipeline " passes through " event broadcast to streamline.This is because in the time that fragment is subject to conditional discarding state (test), even by early stage depth test, its in early days the depth test stage far and away definite described fragment will finally block the fragment in streamline.
Although present embodiment use " automatically detect " scheme trigger with by early stage hierarchy depth test 4 or the sticking patch of depth test 13 or the relevant early stage depth test of fragment are by the broadcast of event information in early days, also serviceable condition position is as the arrangement for subsequent use for this.Mode bit can be made as and closes " automatically detecting " scheme, and as an alternative, and for example, setting by another (, rejection test is by event " activation ") mode bit (whether) triggers early stage rejection test and broadcasts by event information.Whether this will make for example application programmer to arrange then will carry out rejection test by event action (by suitable mode bit is set).
Early stage hierarchy depth and template test stage 4 and the early stage degree of depth and template test stage 13 comprise the test of combination and new logic more, they can operate to carry out rejection test, if and the standard suiting the requirements by test and sticking patch or fragment, by by event and the necessary positional information " broadcast " associated with it suitable stage to graphics pipeline, and upgrade depth information in depth buffer such as etc.
In the present embodiment, when the sticking patch of " qualified " sampled point (, meet the sticking patch of the sampled point of the standard of the transmission of triggering " stop process " or " processing of slowing down " signal) test 4 o'clock by early stage hierarchy depth, (x, y) position broadcast 9,10,11 that early stage hierarchy depth and template test stage 4 cover the sticking patch that passes through test is to queue 12, fragment shading stage 6, rasterizing device 3 and early stage hierarchy depth and template test stage 4 own (as shown in the dotted line 11 in Fig. 1).Broadcast message also comprises whether whether broadcast singal should stop (whether any fragment should be dropped) for the processing of determining any fragment, or determine the indication whether processing of any fragment should slow down,, whether broadcast singal is " slow down " indication of signal of fragment " termination " signal or fragment.As by the description after a while, whether the processing that these stages of graphics processing pipeline utilize the indication of broadcast singal type and positional information to estimate that they work as any fragment of pre-treatment subsequently can stop or no should slowing down (suitably).
In the present embodiment, early stage hierarchy depth test is broadcast to hierarchy depth and template test stage 4 and rasterizing device 3 by event, because rasterizing device 3 and early stage hierarchy depth and template test stage 4 operate according to repetitive mode as discussed above ground, and can there is the sticking patch of the sampled point of the previous generation of for example still experiencing rasterizing and early stage hierarchy depth and template test processing, if wherein can determine that the sticking patch of for example sampling location after a while repeats to play up them, can omit their processing.
Except early stage hierarchy depth being tested by event broadcast to other stage of graphics processing pipeline, early stage hierarchy depth (Z) and template test stage 4 are also configured to (when suitable) and utilize associated depth value scope and/or the stencil value of the sticking patch of the sampled point for testing by early stage hierarchy depth to upgrade the degree of depth and stencil buffer 5.Therefore, this makes these impact dampers can be including (for example) the state-of-the-art record of depth value scope of sticking patch that experiences (and passing through) early stage hierarchy depth and template test 4, thus make early stage hierarchy depth and template test more effective.
This renewal of depth buffer etc. is carried out according to conservative mode suitably, to avoid upgrading any risk that can lead to errors in the processing of sticking patch etc.
Correspondingly, in the present embodiment, in the time that " qualified " fragment is passed through early stage depth test 13, (the x that the early stage degree of depth and template test stage 13 cover the fragment by test, y) position and broadcast singal type indication (according to the attribute of the fragment of paying close attention to) broadcast 14 is to queue 12, and to fragment shading stage 6(as shown in the dotted line 14 in Fig. 1).As by the description after a while, whether the processing that these stages of graphics processing pipeline utilize the indication of broadcast singal type and positional information to estimate that they work as any fragment of pre-treatment subsequently can stop or no should slowing down (suitably).
Again, except by early stage depth test by event broadcast to other stage of graphics processing pipeline, the early stage degree of depth (Z) the template test stage 13 be configured to utilize for associated depth value and/or the stencil value renewal degree of depth and the stencil buffer 5 of the sampled point of the fragment association by early stage depth test.Therefore, this makes these impact dampers can be including (for example) the state-of-the-art record of depth value scope of sampled point that experiences (and passing through) early stage hierarchy depth and template test 13, thus make early stage and later stage hierarchy depth and template test more effective.
" pass through " event fragment " termination " signal (in response to broadcasting early stage depth test by early stage hierarchy depth and template test stage 4 and the early stage degree of depth and template test stage 13, indication should determine in response to broadcast singal whether the processing of any fragment can stop), " pass through " result of event as early stage rejection test, the stage that receives the processing streamline of " termination " signal broadcast utilizes the positional information in broadcast singal to determine whether their current any fragments comprising no longer need processed subsequently.By by (the x of the current all fragments that occupy flow line stage, y) (the x of position and broadcast " termination " signal designation by broadcasting by early stage hierarchy depth and template test stage 4 or the early stage degree of depth and template test stage 13, y) position (, with by early stage rejection test and trigger the fragment of broadcast and/or the (x of sticking patch of fragment " termination " signal, y) position) compare to carry out this process (like this, in fact, identification will be passed to the sticking patch of the early stage degree of depth and template test or current any fragment in this stage that fragment is blocked).
With meet equally for specific other standard that the processing of fragment stops is as the criterion, stop subsequently having with by early stage rejection test and trigger the sticking patch of fragment " termination " signal or the processing of any current fragment of (x, y) position that fragment is identical.Specifically, also check potential will abandon (, by what be blocked) fragment in streamline whether should based on any other former thereby continue processed, described reason for example because it has such as the spinoff that be still required associated with unsolved occlusion query.If the fragment being blocked does not have its subsidiary still effective occlusion query (and not having the spinoff that other needs), abandoned (its processing stops), if when it has its subsidiary effective occlusion query (or some other spinoffs that are still required) really, do not abandoned (, continuing it processes).Carry out this inspection by stage of graphics processing pipeline of paying close attention to.
Rejection test fragment " termination " " is passed through " in event to carry out no longer needing determining of fragment to be processed according to conservative suitably mode in early days, abandons improperly fragment and makes it no longer accept the risk of processing below to reduce.
Each stage of graphics processing pipeline is tested all fragments in the described stage concurrently.This make flow line stage can with early stage rejection test by event can generate possible rejecting machine can the identical speed of speed abandon fragment.
By by the fragment label identifying for " termination " (invalid) make after a while processing stage in the processing of fragment stop.In order to promote this point, make each fragment there is " termination " bit associated with it (for example, as a part for its associated fragment data), if this bit is arranged, indicate this fragment not need processed (and discardable).The pipeline processes stage is configured to check the termination bit (and therefore with aftertreatment or do not process described fragment) of each fragment that they receive to process.
The arrangement (such as making the fragment queue operating as buffer area with effective label discharge queue (buffer area) OK in the time that the invalid label of fragment is set) of alternative can be used as substituting, or uses in addition as required.
By early stage rejection test fragment " termination " by event broadcast to each stage of its graphics processing pipeline have in its local domain (, pay close attention to stage or processing stage a part in) all fragments be responsible for corresponding agency.Each is acted on behalf of the Information preservation about described fragment in its local domain, and can operate take the early stage rejection test fragment " termination " in response to its reception by event fragment label as stopping (invalid), thereby avoid and/or stop the unnecessary processing to them.Act on behalf of all fragments in the local domain that is configured to test concurrently them.
" pass through " event fragment and " slow down " signal (in response to broadcast early stage depth test by early stage hierarchy depth and template test stage 4 and the early stage degree of depth and template test stage 13, indication should determine in response to broadcast singal whether the processing of any fragment should slow down), " pass through " result of event as early stage rejection test, the stage broadcast that receives the processing streamline of " slowing down " signal utilizes the positional information in broadcast singal to determine whether the processing of their current any fragments comprising should slow down subsequently.
By by (the x of the current all fragments that occupy flow line stage, y) (the x of position and the signal designation that " slowed down " by the broadcast of broadcasting by early stage hierarchy depth and template test stage 4 or the early stage degree of depth and template test stage 13, y) position (, with by early stage rejection test and trigger fragment " slow down " fragment of broadcast and/or the (x of sticking patch of signal, y) position) compare to carry out this process (like this, in fact, identification will be passed to the sticking patch of the early stage degree of depth and template test or current any fragment in this stage that fragment is blocked).
Be as the criterion with specific other standard for the processing that postpones fragment meeting equally, slow down subsequently have with by early stage rejection test and trigger " slow down " processing of any current fragment of the sticking patch of signal or identical (x, the y) position of fragment of fragment.Specifically, also check potential by the fragment in the streamline being slowed down whether should based on any other former thereby continue processed, described reason for example because it has such as the spinoff that be still required associated with unsolved occlusion query.If the fragment being slowed down is not had to its subsidiary still effective occlusion query (and not having the spinoff that other needs), its processing of slowing down, if but it has its subsidiary effective occlusion query (or some other spinoffs that are still required), its processing of not slowing down really.Carry out this inspection by stage of graphics processing pipeline of paying close attention to.
Rejection test fragment " slows down " in " passing through " event and to carry out determining of fragment to its processing of should slowing down according to conservative suitably mode in early days, to reduce incorrect or to postpone irrelevantly the risk of the processing of the fragment in streamline.
Each stage of graphics processing pipeline is tested all fragments in the described stage concurrently.This makes the flow line stage can be can generate by event rate delay (slowing down) fragment that the speed of possible " slowing down " chance is identical with early stage rejection test.
By early stage rejection test fragment " slow down " by event broadcast to each stage of its graphics processing pipeline have in its local domain (, the stage of paying close attention to or processing stage a part in) the corresponding agency that is responsible for of all fragments (its can be process the early stage rejection test of fragment " terminations " pass through the same agency of event).Each agency in its local domain, and can operate " to slow down " in response to the early stage rejection test fragment of its reception by event fragment label as going preferentially (slowing down) to slow down their processing by the Information preservation about described fragment.Act on behalf of all fragments in the local domain that is configured to test concurrently them.
The processing of the fragment that " slows down " with normal phase than slower, but should note, what expect is, the processing of fragment is just slowed down or postpones for the speed of streamline normal process with respect to it, but not fragment now " slowed down " abandon (forever stopping) thus be not further processed by streamline.
In the present embodiment, arrangement is that the fragment that the processing of " slowing down " fragment is slowed to trigger the processing of fragment to slow down will often exceed the degree of " slowing down " the fragment point in streamline, make the processing of the fragment that the processing of " slowing down " fragment to triggering concern slows down will be often (probably) before finishing dealing with in streamline, complete the conditional test that abandons in " slowing down " fragment.As by the description after a while, this then makes " triggering " fragment can be used in (potentially) and abandons (" the termination ") fragment that slows down, in case it is further processed by streamline.
In the present embodiment, processed the processing of the fragment being slowed down is slowed down by following steps: their processing is gone preferentially to (, by reducing the priority of their pipeline processes) by streamline.This is by giving for buffer area access and/or realizing for the lower priority (with respect to the fragment not slowing down) of other processing by streamline for " slowing down " fragment.
By the fragment label identifying " is gone preferential " by fragment for " go preferential " (for having the processing priority of reduction).The processing stage of related streams waterline, before being carried out to any processing, fragment checks subsequently whether fragment is marked as " going preferential ", and therefore subsequently by fragment described in the processed of normal priority or reduction.
Each fragment has " go preferential " bit (for example, as the part of its associated fragment data) associated with it, if this bit is set up, indicates the processing of fragment to be gone preferentially.Processing stage can check subsequently " going preferential " bit of each fragment that they receive to process.
Can use as required the arrangement for slowing down and postponing the alternative of the processing of fragment.For example, the fragment queue operating as buffer area that there is preferential label be provided with fragment remove preferential label time discharge queue (buffer area) row arrangement can be used as substituting or using in addition as required.
Another suitable arrangement can be: the fragment with instruction to be processed is arranged in fragment pond, in the time completing instruction, and prepares for the cache hit carried out and when instruction, suitable fragment is taken out and carried out subsequently from fragment pond when existing.By allowing to increase priority state as extra Consideration when fragment is taken out from fragment pond when determining whether, fragment can make their processing priority reduce subsequently.
Similarly, fragment can make their processing slow down (for example,, and preferably, until " triggering " fragment and/or sampled point complete its one or more conditional tests that abandon) by suspending them by the processing of streamline.Can realize the time-out of the fragment processing in this streamline, for example, by being processed, any fragment being suspended is arranged in " pond (zombie pool) of ossifing " (their processing here suspends).
Experience when having triggered in advance " slow down " fragment of transmission (broadcast) of signal of fragment by the test 4 of early stage hierarchy depth or fragment by the result of early stage depth test 13 as sticking patch that it is conditional while abandoning test, present embodiment except utilize conditional abandon test abandon or continue to process with the result of the sampled point of (routine) fragment association also with fragment by or not by the conditional result that abandons test determine in graphics processing pipeline other the processing of the fragment of morning whether can stop maybe should being resumed.
Therefore, as shown in Figure 1, be configured to carrying out the conditional tinter streamline 6 that abandons test, in the time having triggered in advance fragment and " slowed down " that the fragment experience of transmission (broadcast) of signal is conditional abandons test, not only abandon fragment or make fragment advance to next stage (depending on test result) of its processing, and will about conditional abandon that test " is passed through " or the information broadcasting of " not passing through " event to multiple stages (as shown in the dotted line 20,21,22 and 23 in Fig. 1) of streamline.
Carry out and conditionally abandon that test " is passed through " or the broadcast of " not passing through " event for having triggered in advance " slow down " all fragments of transmission (broadcast) of signal of fragment.
In the present embodiment, tinter streamline 6 determines and conditionally abandons that test " is passed through " or whether " not passing through " event should be broadcast to streamline, and conditionally abandons the form that test " is passed through " or " not passing through " event broadcast should be taked.Broadcast also comprises " timestamp " (thereby primitive (potentially) only is early by effect of signals) of primitive.
Final conditionally abandon test (when what fragment will stand by it, that will stand by it all conditionally abandons test) time, it triggers and will be conditional abandons test and " pass through " event broadcast (transmissions) to streamline, described conditional abandon test " pass through " event can trigger in graphics processing pipeline with enter abandoning test and " pass through " event broadcast (transmission) to the processing of the fragment of streamline other fragment before and stop conditional in triggering of graphics processing pipeline.
Do not trigger and will conditionally abandon test and " not pass through " event broadcast (transmissions) to streamline by the conditional fragment that abandons test, described conditional abandon test " do not pass through " event can trigger in graphics processing pipeline with enter abandoning test and " pass through " the processing recovery (recovery) of event broadcast (transmission) to the fragment of the streamline fragment that slows down in advance before conditional in triggering of graphics processing pipeline.
Tinter flow line stage 6 comprises the test of combination and new logic more, it can operate to carry out the conditional test that abandons, and (if the satisfactory standard of fragment) by by or not by event and the necessary information " broadcast " associated with it suitable stage to graphics pipeline.
In the present embodiment, when " qualified " fragment (, meet the fragment of the standard of the transmission of triggering " backward ", " stop process " or " restoring (recoverys) processes " signal) experience its conditional abandoning while test, tinter flow line stage 6 is by (the x being covered by the fragment of experience test, y) position 20,21 to fragment shading stage 6 of broadcast and queue 12(as required, can also be broadcast to rasterizing device 3 and early stage hierarchy depth and template test stage 4).Broadcast message also comprises about broadcast singal whether whether should stopping (whether any fragment should be dropped) or determine whether the processing of any fragment should recover the timestamp of " new and old " of the fragment of the indication of (recovery) (, broadcast singal is " fragment backward stops " signal or " fragment is backward recovered " signal) and indication concern for the processing of definite any fragment.As by the description after a while, whether the processing that these stages of graphics processing pipeline are used the indication of broadcast singal type and position and " new and old " information to estimate that they work as any fragment of pre-treatment subsequently can stop or no should recovery (suitably).
Abandon broadcast that test " passes through " event " fragment stop " backward signal (in response to conditional, indication should determine in response to broadcast singal whether the processing of any fragment can stop), as the conditional result that abandons test and " pass through " event, process the stage that reception " terminations " signal of streamline broadcasts and utilize subsequently the positional information in broadcast singal to determine whether their current any fragments comprising no longer need processed.By by (the x of current all (older) fragments that occupy flow line stage, y) position and the (x by the broadcast of broadcasting by tinter flow line stage 6 " termination " signal designation, y) position (, by conditional (x, y) position that abandons the fragment of testing and trigger fragment " terminations " signal backward of broadcast) compare to carry out this and process (so in fact will identify current its any (older) fragment that finally conditional fragment that abandons test is blocked that will be passed in the described stage).
With meet equally for specific other standard that the processing of fragment stops is as the criterion, with final conditionally abandon the processing that the fragment of testing and trigger " backward " fragment " termination " signal has any (older) current fragment of identical (x, y) position and stop immediately by it.Specifically, also check in streamline potentially by be dropped (, by what be blocked) fragment whether based on any other former thereby continue processed, described other reason for example because it has such as the spinoff that be still required associated with unsolved occlusion query.If the fragment being blocked does not have its subsidiary still effective occlusion query (and not having the spinoff that other needs), abandoned (its processing stops), if when it has its subsidiary effective occlusion query (or some other spinoffs that are still required) really, do not abandoned (, continuing it processes).Carry out this inspection by stage of graphics processing pipeline of paying close attention to.
Carry out no longer needing determining of fragment to be processed according to conservative suitably mode in " passing through " event at the conditional test fragment " termination " that abandons, abandon improperly fragment and make it no longer accept the risk of processing below to reduce.
Each stage of graphics processing pipeline is tested all fragments in the described stage concurrently.This make flow line stage can with conditional abandon test by event can generate possible rejecting machine can the identical speed of speed abandon fragment.
By by the fragment label identifying for " terminations " (invalid) make morning processing stage in the processing of fragment stop.According to discussion above, therefore, make each fragment there is " termination " bit associated with it (for example, as a part for its associated fragment data), if this bit is arranged, indicate this fragment not need processed (and discardable).
(again, the arrangement of alternative (such as making the fragment queue operating as buffer area with effective label discharge queue (buffer area) OK in the time that the invalid label of fragment is set) can be used as substituting, or uses in addition as required).)
By conditional abandon test " backward " fragment " termination " by event broadcast to each stage of its graphics processing pipeline have in its local domain (, pay close attention to stage or processing stage a part in) all fragments be responsible for corresponding agency.Preferably, this agency is same agency with processing by the fragment " termination " of early stage depth test stage transmission and the agency of " slowing down " event broadcast.Each is acted on behalf of the Information preservation about described fragment in its local domain, and can operate take abandon in response to its reception conditional test " backward " fragment " termination " by event by fragment label as stopping (invalid), thereby avoid and/or stop the unnecessary processing to them.Act on behalf of all fragments in the local domain that is configured to test concurrently them.
This " fragment stop " backward signal operation allows fragment (triggering in advance the processing that enters other fragment before described fragment in streamline " slows down ") to be used to subsequently " termination " any " fragment slowing down " that fragment exceedes and the fragment that is in fact triggered is blocked (fragment slowing down at these thoroughly processed by streamline before) that be triggered by all its conditional results that abandon test in streamline.Even if the depth test stage can not be enough determines that whether new fragment carry out hidden surface and eliminate for (at streamline before the described fragment after a while) fragment early that enters streamline about (before them) in fact blocking the fragment in streamline, do so the fragment after a while that also allows to enter streamline far and away in early days.
Conditionally abandon test and " do not pass through " event " fragment recover " backward signal (in response to broadcasting by tinter flow line stage 6, indication should determine in response to broadcast singal whether the processing of any fragment should recover), as the conditional result that abandons test and " do not pass through " event, the stage of processing reception " recoverys " the signal broadcast of streamline is used the position in broadcast singal to determine with " new and old " information whether the processing of their current any fragments comprising should recover subsequently.By by (the x of the current all fragments that slow down in advance that occupy flow line stage, y) position and " newness degree " and (x by the broadcast of broadcasting by tinter flow line stage 6 " recovery " signal designation, y) position and " newness degree " are (, not by the conditional (x that abandons the fragment of testing and trigger broadcast fragment " recovery " signal, y) position and " newness degree ") compare to carry out this and process (so in fact current now known to any (older) fragment of not blocked by the conditional fragment that abandons test in this stage by identifying).
Each stage of graphics processing pipeline is tested all fragments in the described stage again concurrently.This makes the flow line stage can be to abandon test and can not generate by event rate recovery (slowing down) fragment that the speed of possible " recovery " chance is identical with conditional.
In the present embodiment, increase its processing priority by (" slowing down ", go priority status with respect to it) and recover fragment.Fragment is restored to them initial (normally) processing priority and speed.By no longer " recovery " fragment label being realized to this point for " going preferential ".Therefore,, in the time that fragment will " be recovered ", upgrade suitable " going preferential " bit of (change) (going to arrange) and described fragment association.
By conditional abandon test " fragment recover " backward not by event broadcast to each stage of its graphics processing pipeline have in its local domain (, the stage of paying close attention to or processing stage a part in) the corresponding agency that is responsible for of all fragments (again, this agency can with to process fragment " termination " be same agency by the agency of event etc.).Each is acted on behalf of the Information preservation about described fragment in its local domain, and can operate with abandon in response to its reception conditional test fragment " recovery " not by event by fragment label for no longer going preferential (no longer slowing down), thereby recover (recovery) their processing.Act on behalf of all fragments in the local domain that is configured to test concurrently them.
(at other arrangement, when slowing down the processing of fragment, fragment should be recovered according to suitable mode.For example, the fragment queue operating as buffer area that there is preferential label in use arranging fragment remove preferential label time discharge queue (buffer area) row, in the time that fragment will be recovered, can upgrade suitably preferential label.Similarly, make their processing slows down by the processing of streamline by suspending them in fragment, fragment and/or sampled point can recover by " stop suspend " their processing (for example,, by removing and make them to turn back to streamline with according to normal mode processing from " pond of ossifing " (their processing suspends) here them).)
This " fragment recover " backward signal operation allows fragment (triggering in advance the processing that enters other fragment before described fragment in streamline " slows down ") not to be used to subsequently " recovery " (recovery) any " fragment slowing down " that fragment exceedes and the fragment that is not in fact triggered is blocked that be triggered by its conditional result of one abandoning in test in streamline, thus described in the fragment that slows down again normally processed subsequently.
In the present embodiment, if the fragment slowing down except the processing that triggers them does not then abandon test by conditional, recover (recovery) any " slowing down " fragment with processing under normal priority, as the operating result of present embodiment, if rely on " fragment stop " forward signal to abandon the fragment that processing that (" termination ") trigger them is slowed down, abandon (" termination ") " slowing down " fragment.In this case, " termination " " just slowing down " fragment " fragment stop " forward signal also for the fragment that " slowed down " in same operation " termination ".
Should be appreciated that from above, in the present embodiment, if a fragment can trigger by early stage depth test transmission the signal that the processing of the fragment of one or more in streamline is slowed down, when experiencing it, it conditionally abandons when test subsequently, conditionally abandon when test and send to trigger and stop processing (abandoning) it processes the signal of the one or more fragments that slow down in advance by all its at it, or send during not by its conditional abandon in test one at it and trigger the signal that recovers it and process the processing of the one or more fragments that slow down in advance.
Similarly, pass through the result of early stage and degree of depth template test as fragment after a while, its processing subsequent of processing the fragment slowing down in advance can stop or recovering (recovery), and first this depend on the conditional result that abandons test of the fragment of the processing that triggers the fragment that slows down.
As shown in Figure 1, in the present embodiment, graphics processing pipeline comprises the queue 12 that fragment must be passed through, before it is arranged in the fragment shader 6 of graphics processing pipeline.Queue 12 is configured to one group of fragment of the tile-sized that can keep complete, but other arrangement is also fine certainly.
Enter the fragment of queue 12 according to identical order dequeue, still " termination " fragment triggers the releasing of resource in the time of dequeue.
As can be seen from the above, at least, in the preferred embodiment of the present invention, the invention provides the mechanism for (final redundancy) treatment capacity of the hidden surface that further minimizing can occur in streamline graphic system.In addition, arrangement of the present invention is: in the time being sequentially best for playing up of classical rendering pipeline, it is (thereby obtaining minimal-overhead) by not interfering on the existing rendering pipeline arrangement that has the best and play up order, but when playing up order when not best, it will work, and in this case, at least in the preferred embodiment of the present invention, it can eliminate fragment and hidden surface from back to front, is playing up in advance the equally effective degree of sequence processing to reach aspect hidden surface elimination with every sampling or every fragment.Make sort algorithm can not easily detect best sortord (for example, primitive intersects or has an overlapping depth range) in the content that will play up, the present invention can more effectively carry out this operation than sequence.
Technology of the present invention is also independent of the anti-aliased processing horizontal of used multi-point sampling, thereby makes the use of anti-aliased processing of the multi-point sampling of higher level obviously more cheap.
Utilize early stage rejection test to determine by the result of event whether the processing of any fragment in streamline should slow down and be particularly advantageous in the processing that then stops early entering the fragment of streamline, but the rejection test stage determines that fragment after a while will block its generation far and away in early days, this is conditionally to abandon test because fragment for example after a while will be subject to one or more in by the processing procedure of graphics processing pipeline at it.Like this, therefore abandon immediately determining compared with the arrangement of any fragment of being blocked by fragment after a while in (" termination ") streamline with wherein using separately early stage rejection test, the processing of multi-disc section more can be stopped before they reach the end of streamline.
Should note in this article, this fragment of present embodiment (and the present invention) slow down and follow-up " terminations " operation and not simply in several circulations of current fragment part fragment is sorted again, but will there is the fragment of making and depart from completely the effect (in fact by postponing early to enter the processing of the fragment of streamline) of order, and in addition, described operation can't continue to process all fragments, but operates to abandon and do not process any fragment that discovery no longer needs.
Claims (17)
1. one kind operates the method for graphics processing pipeline, described graphics processing pipeline comprises multiple processing stage, the processing stage of the plurality of, comprise: rasterizing device, it is by input primitive rasterizing to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with this graphics fragment; And renderer, it processes to generate output chip segment data to the fragment being generated by described rasterizing device, said method comprising the steps of:
Be sent to described renderer with before processing in the fragment being generated by described rasterizing device, for carrying out early stage rejection test with at least one sampled point of this fragment association; And
If described at least one sampled point is by described early stage rejection test, send forward described fragment to process, and by described early stage rejection test, determine whether the processing of another sampled point in described graphics processing pipeline should slow down in response to described at least one sampled point.
2. method according to claim 1, wherein, definite to whether the processing of another sampled point in described graphics processing pipeline should slow down is whether sampled point based on by described early stage rejection test also has one or more particular communitys.
3. method according to claim 2, wherein, described particular community comprises that described sampled point is subject to abandoning test as one or more of the part of the processing to described sampled point is conditional.
4. according to the method described in claim 1,2 or 3, the method comprises the following steps:
By the processing of described another sampled point in streamline that the processing of the described sampled point in streamline gone preferentially slow down.
5. according to the method described in any one in aforementioned claim, wherein, determine that by described early stage rejection test the step whether processing of another sampled point in described graphics processing pipeline can slow down comprises the following steps in response to described at least one sampled point: the current sampled point of flow line stage and/or the position of fragment of occupying compared with the position of described at least one sampled point by described early stage rejection test.
6. according to the method described in any one in aforementioned claim, wherein, determine that by described early stage rejection test the step whether processing of another sampled point in described graphics processing pipeline can slow down is further comprising the steps of in response to described at least one sampled point: before the processing of described another sampled point that slows down, check other attribute of described another sampled point, to determine whether described another sampled point should still be processed with normal priority.
7. according to the method described in any one in aforementioned claim, the method is further comprising the steps of:
Conditionally abandon test for carrying out one or more with at least one sampled point of the fragment association being generated by described rasterizing device, the described fragment being generated by described rasterizing device triggers determining that whether processing of another sampled point in described graphics processing pipeline should slow down in advance; And
Described at least one sampled point all conditionally abandons test if will stand by described at least one sampled point, and as described at least one sampled point by the result of described early stage rejection test, determine that the processing of another sampled point in described graphics processing pipeline should slow down, as described at least one sampled point by all conditional results that abandon test, determine whether the processing of described another sampled point can stop;
Or
Described at least one sampled point conditionally abandons test if will not stand by described at least one sampled point, and as described at least one sampled point by the result of described early stage rejection test, determine that the processing of another sampled point in described graphics processing pipeline should slow down, as described at least one sampled point not by the described conditional result that abandons test, determine whether the processing of described another sampled point should recover.
8. one kind operates the method for graphics processing pipeline, described graphics processing pipeline comprises multiple processing stage, the processing stage of the plurality of, comprise: rasterizing device, it is by input primitive rasterizing to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with this graphics fragment; And renderer, it processes to generate output chip segment data to the fragment being generated by described rasterizing device, said method comprising the steps of:
For carrying out the conditional test that abandons with at least one sampled point of the fragment association being generated by described rasterizing device; And
If described at least one sampled point is by the described conditional test that abandons, in streamline, send forward described fragment, and by the described conditional result that abandons test, determine whether the processing of another sampled point in described graphics processing pipeline can stop as described at least one sampled point.
9. a graphics processing pipeline, this graphics processing pipeline comprises:
The processing stage of multiple, the processing stage of the plurality of, comprise: rasterizing device, it is by input primitive rasterizing to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with this graphics fragment; Renderer, it processes to generate output chip segment data to the fragment being generated by described rasterizing device; And the early stage rejection test stage, being sent to described renderer with before processing in the fragment being generated by described rasterizing device, this early stage rejection test stage is for carrying out early stage rejection test with the sampled point of described fragment association; Wherein, described graphics processing pipeline is configured to:
In response to passing through described early stage rejection test with at least one sampled point of the fragment association being generated by described rasterizing device, send forward described fragment to process, and determine whether the processing of another sampled point in described graphics processing pipeline should slow down.
10. graphics processing pipeline according to claim 9, wherein, definite to whether the processing of another sampled point in described graphics processing pipeline should slow down is whether described sampled point based on by described early stage rejection test also has one or more particular communitys.
11. graphics processing pipelines according to claim 10, wherein, described particular community comprises that described sampled point is subject to abandoning test as one or more of the part of the processing to described sampled point is conditional.
12. according to the graphics processing pipeline described in claim 9,10 or 11, and wherein, slowing down of the processing of another sampled point in streamline comprises the following steps: the processing of the described sampled point in streamline is gone preferentially.
13. according to the graphics processing pipeline described in any one in claim 9 to 12, wherein, described graphics processing pipeline is configured to: by the current sampled point of flow line stage and/or the position of fragment of occupying compared with the position of described at least one sampled point by described early stage rejection test, come to pass through described early stage rejection test in response to described at least one sampled point, determine whether the processing of another sampled point in described graphics processing pipeline can slow down.
14. according to the graphics processing pipeline described in any one in claim 9 to 13, wherein, described graphics processing pipeline is configured to: before the processing of described another sampled point that slows down, check other attribute of described another sampled point, to determine whether described another sampled point should still be processed with normal priority.
15. according to the graphics processing pipeline described in any one in claim 9 to 14, and wherein, described graphics processing pipeline is also configured to:
Conditionally abandon test for carrying out one or more with at least one sampled point of the fragment association being generated by described rasterizing device, the described fragment being generated by described rasterizing device triggers determining that whether processing of another sampled point in described graphics processing pipeline should slow down in advance; And
Described at least one sampled point all conditionally abandons test if will stand by described at least one sampled point, and as described at least one sampled point by the result of described early stage rejection test, determine that the processing of another sampled point in described graphics processing pipeline should slow down, as described at least one sampled point by all conditional results that abandon test, determine whether the processing of described another sampled point can stop;
Or
Described at least one sampled point conditionally abandons test if will not stand by described at least one sampled point, and as described at least one sampled point by the result of described early stage rejection test, determine that the processing of another sampled point in described graphics processing pipeline should slow down, as described at least one sampled point not by the described conditional result that abandons test, determine whether the processing of described another sampled point should recover.
16. 1 kinds of graphics processing pipelines, this graphics processing pipeline comprises:
The processing stage of multiple, the processing stage of the plurality of, comprise: rasterizing device, it is by input primitive rasterizing to generate graphics fragment to be processed, and each graphics fragment has one or more sampled point associated with this graphics fragment; And renderer, it processes to generate output chip segment data to the fragment being generated by described rasterizing device, and wherein,
Can carry out for abandoning test with the sampled point of the fragment association being generated by described rasterizing device conditional; And
Wherein, described graphics processing pipeline is configured to:
In response to abandoning test with at least one sampled point of the fragment association being generated by described rasterizing device by conditional, in streamline, send forward described fragment, and by the described conditional result that abandons test, determine whether the processing of another sampled point in described graphics processing pipeline can stop as described at least one sampled point.
17. 1 kinds of computer programs, this computer program comprises computer software, in the time that described computer program moves on data processing equipment, this software performing is according to the method described in any one in claim 1 to 8.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/716,952 US9153070B2 (en) | 2012-12-17 | 2012-12-17 | Hidden surface removal in graphics processing systems |
US13/716,952 | 2012-12-17 | ||
US13/909,561 US9214006B2 (en) | 2013-06-04 | 2013-06-04 | Hidden surface removal in graphics processing systems |
US13/909,561 | 2013-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103871020A true CN103871020A (en) | 2014-06-18 |
CN103871020B CN103871020B (en) | 2018-10-16 |
Family
ID=50031027
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310693216.6A Active CN103871095B (en) | 2012-12-17 | 2013-12-17 | Hidden surface in graphic system is eliminated |
CN201310692576.4A Active CN103871020B (en) | 2012-12-17 | 2013-12-17 | Hidden surface in graphic system is eliminated |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310693216.6A Active CN103871095B (en) | 2012-12-17 | 2013-12-17 | Hidden surface in graphic system is eliminated |
Country Status (3)
Country | Link |
---|---|
KR (2) | KR102057166B1 (en) |
CN (2) | CN103871095B (en) |
GB (2) | GB2511176B (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204519A (en) * | 2014-07-03 | 2016-12-07 | 联发科技股份有限公司 | Device and method for controlling early deep processing and late deep processing |
CN106897143A (en) * | 2015-12-21 | 2017-06-27 | 想象技术有限公司 | Area's piece distribution to the treatment engine in graphic system |
CN110192225A (en) * | 2017-01-27 | 2019-08-30 | 超威半导体公司 | Unordered pixel coloring device export |
CN110276711A (en) * | 2018-03-15 | 2019-09-24 | Arm有限公司 | Graphics process |
CN112116519A (en) * | 2019-06-19 | 2020-12-22 | 畅想科技有限公司 | Coarse depth testing in graphics processing systems |
CN116894906A (en) * | 2023-09-11 | 2023-10-17 | 瀚博半导体(上海)有限公司 | Graphics rendering method and processor hardware architecture |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292898B2 (en) | 2013-03-15 | 2016-03-22 | Intel Corporation | Conditional end of thread mechanism |
KR200491938Y1 (en) | 2020-05-06 | 2020-07-03 | 조현근 | Function multi scarf |
GB2608094B (en) | 2021-01-27 | 2024-08-21 | Advanced Risc Mach Ltd | Graphics processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020196251A1 (en) * | 1998-08-20 | 2002-12-26 | Apple Computer, Inc. | Method and apparatus for culling in a graphics processor with deferred shading |
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
CN1512454A (en) * | 2002-12-24 | 2004-07-14 | ض� | Z-buffer technology for figure heightening |
CN101563712A (en) * | 2006-12-22 | 2009-10-21 | 高通股份有限公司 | Quick pixel rendering processing |
CN102822870A (en) * | 2010-03-19 | 2012-12-12 | 想象技术有限公司 | Processing of 3D computer graphics data on multiple shading engines |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8072451B2 (en) * | 2004-12-29 | 2011-12-06 | Intel Corporation | Efficient Z testing |
JP4116648B2 (en) | 2006-05-22 | 2008-07-09 | 株式会社ソニー・コンピュータエンタテインメント | Occlusion culling method and drawing processing apparatus |
GB0801812D0 (en) * | 2008-01-31 | 2008-03-05 | Arm Noway As | Methods of and apparatus for processing computer graphics |
GB201116438D0 (en) * | 2011-09-22 | 2011-11-02 | Advanced Risc Mach Ltd | Occlusion queries in graphics processing |
-
2013
- 2013-12-17 CN CN201310693216.6A patent/CN103871095B/en active Active
- 2013-12-17 CN CN201310692576.4A patent/CN103871020B/en active Active
- 2013-12-17 KR KR1020130157253A patent/KR102057166B1/en active Active
- 2013-12-17 GB GB1322278.1A patent/GB2511176B/en active Active
- 2013-12-17 KR KR1020130157252A patent/KR102057163B1/en active Active
- 2013-12-17 GB GB1322284.9A patent/GB2511177B/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US20020196251A1 (en) * | 1998-08-20 | 2002-12-26 | Apple Computer, Inc. | Method and apparatus for culling in a graphics processor with deferred shading |
CN1512454A (en) * | 2002-12-24 | 2004-07-14 | ض� | Z-buffer technology for figure heightening |
CN101563712A (en) * | 2006-12-22 | 2009-10-21 | 高通股份有限公司 | Quick pixel rendering processing |
CN102822870A (en) * | 2010-03-19 | 2012-12-12 | 想象技术有限公司 | Processing of 3D computer graphics data on multiple shading engines |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204519A (en) * | 2014-07-03 | 2016-12-07 | 联发科技股份有限公司 | Device and method for controlling early deep processing and late deep processing |
CN106897143A (en) * | 2015-12-21 | 2017-06-27 | 想象技术有限公司 | Area's piece distribution to the treatment engine in graphic system |
CN106897143B (en) * | 2015-12-21 | 2022-02-25 | 想象技术有限公司 | Graphics processing system and method for processing primitive fragments in a graphics processing system |
CN110192225A (en) * | 2017-01-27 | 2019-08-30 | 超威半导体公司 | Unordered pixel coloring device export |
CN110192225B (en) * | 2017-01-27 | 2020-12-29 | 超威半导体公司 | Out-of-order pixel shader derivation |
CN110276711A (en) * | 2018-03-15 | 2019-09-24 | Arm有限公司 | Graphics process |
CN110276711B (en) * | 2018-03-15 | 2024-03-22 | Arm有限公司 | Method for processing graphics fragments and graphics processing pipeline |
CN112116519A (en) * | 2019-06-19 | 2020-12-22 | 畅想科技有限公司 | Coarse depth testing in graphics processing systems |
CN112116519B (en) * | 2019-06-19 | 2022-12-27 | 畅想科技有限公司 | Coarse depth testing in graphics processing systems |
US11922566B2 (en) | 2019-06-19 | 2024-03-05 | Imagination Technologies Limited | Coarse depth test in graphics processing systems |
CN116894906A (en) * | 2023-09-11 | 2023-10-17 | 瀚博半导体(上海)有限公司 | Graphics rendering method and processor hardware architecture |
Also Published As
Publication number | Publication date |
---|---|
CN103871020B (en) | 2018-10-16 |
GB2511176B (en) | 2015-04-15 |
CN103871095B (en) | 2018-07-17 |
GB2511176A (en) | 2014-08-27 |
GB201322278D0 (en) | 2014-01-29 |
GB2511177B (en) | 2015-04-15 |
KR20140078569A (en) | 2014-06-25 |
GB201322284D0 (en) | 2014-01-29 |
KR102057166B1 (en) | 2019-12-18 |
GB2511177A (en) | 2014-08-27 |
KR20140078568A (en) | 2014-06-25 |
CN103871095A (en) | 2014-06-18 |
KR102057163B1 (en) | 2019-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103871020A (en) | Hidden surface removal in graphics processsing systems | |
US11069024B2 (en) | Primitive processing in a graphics processing system with tag buffer storage of primitive identifiers | |
US11748941B1 (en) | Primitive processing in a graphics processing system | |
CN101620724B (en) | Graphic system | |
US10311016B2 (en) | Hidden surface removal in graphics processing systems | |
US10789768B2 (en) | Forward killing of threads corresponding to graphics fragments obscured by later graphics fragments | |
US9552665B2 (en) | Hidden surface removal in graphics processing systems | |
EP1738330A1 (en) | Scalable shader architecture | |
CN107038742A (en) | Multichannel in screen space pipeline is rendered | |
US10606595B2 (en) | Data processing systems | |
US20220044469A1 (en) | Graphics processing | |
CN116777726A (en) | Graphics processing | |
US20250111463A1 (en) | Graphics processing | |
US20250111462A1 (en) | Graphics processing | |
US20250111465A1 (en) | Graphics processing | |
US20250111464A1 (en) | Graphics processing | |
US20250111467A1 (en) | Graphics processing | |
US20220358616A1 (en) | Graphics processing | |
CN118052692A (en) | Graphics processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |