CN103871020B - Hidden surface in graphic system is eliminated - Google Patents

Hidden surface in graphic system is eliminated Download PDF

Info

Publication number
CN103871020B
CN103871020B CN201310692576.4A CN201310692576A CN103871020B CN 103871020 B CN103871020 B CN 103871020B CN 201310692576 A CN201310692576 A CN 201310692576A CN 103871020 B CN103871020 B CN 103871020B
Authority
CN
China
Prior art keywords
segment
sampled point
processing
test
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.)
Active
Application number
CN201310692576.4A
Other languages
Chinese (zh)
Other versions
CN103871020A (en
Inventor
F·赫格伦德
K·奥斯特比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/716,952 external-priority patent/US9153070B2/en
Priority claimed from US13/909,561 external-priority patent/US9214006B2/en
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN103871020A publication Critical patent/CN103871020A/en
Application granted granted Critical
Publication of CN103871020B publication Critical patent/CN103871020B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

Hidden surface in graphic system is eliminated.Graphics processing pipeline(1)Depth test stage early stage(4、13)It is configured as:It will be about with conditional discarding test associated with it and passing through the information of the segment of those early stage depth tests and broadcast(9、10、11、14)To other stages in assembly line(3、4、6、12).Other stages in assembly line determine whether the processing of any segment currently processed to them can slow down followed by early stage depth test by information.If the segment that triggering slows down the processing to segment in a pipeline is tested by all conditional discardings that the segment to be subjected to, the signal that triggering stops the processing for the segment that its processing has slowed down in advance is sent.If segment is not tested by its conditional discarding to be subjected to, the signal that triggering restores the processing for the segment that its processing has slowed down in advance is sent.

Description

Hidden surface in graphic system is eliminated
Technical field
The present invention relates to computer graphical processings, and specifically, the hidden surface being related in graphics process is eliminated.
Background technology
As it is known in the art, usually executing graphics process by following steps:First by graphics process(It renders)It is defeated Go out(Frame such as to be shown)It is divided into multiple similar basic compositions(Referred to as " primitive ")It enables to more easily execute Graphics processing operation.These " primitive " generally use simple polygons(Such as triangle)Form.
For exporting(Frame such as to be shown)Primitive usually using from the application for needing graphics process(Such as it plays) The graphical drawing instructions received(Request)By the application programming interfaces generation for graphic system.
Each primitive is usually limited by one group of vertex in this stage and by its expression.Each vertex of primitive and expression One group of data on the vertex(Such as position, color, texture and other attribute datas)Association.Then for example when to the vertex (With the relevant primitive in the vertex)When carrying out rasterizing and rendering, using the data, such as display.
Once generating and defining the vertex of primitive and they, they can be handled by graphic system, with example Such as show frame.
The processing essentially relates to following steps:Determine will it is to be processed covering output area a series of sampled points in Which sampled point is covered by primitive, and it is later determined that the appearance that each sampled point should have(For example, with regard to its color etc. and Speech)To indicate primitive in the sampled point.These processing are usually referred to as rasterizing and rendering respectively.
Rasterizing processing is it is determined that be used for the sampled point of primitive(That is, to be used to render output(For example, to be shown Frame)The middle sampled point for indicating primitive(X, y)Position).This is usually realized using the position on the vertex of primitive.
Rendering processing, therefore export indicates the data needed for primitive, such as red, green and blue in the sampled point (RGB)Color value and " Alpha "(Transparency)Value(That is, being each sampled point " coloring ").As it is known in the art, this mistake Journey can relate to apply texture, mixing sample point data value etc..
(In 3D figure documents, term " rasterizing " commonly used in mean primitive convert to sampling location and render this two Person.However, herein, " rasterizing " will only be used in expression and convert primitive data to sampling dot address.)
These processing are usually executed by following steps:Test one or more multigroup sampled points and subsequent needle Concern is included in discovery(Just tested)In primitive(Or it is covered by the primitive)Sampled point each group sampled point life At discrete graphics entity(Commonly referred to as " segment ", executes graphics processing operation on it(Such as render)).Therefore, covering is adopted Sampling point is handled effectively as segment, and the segment will be for the sampled point render primitive in concern." segment " is by wash with watercolours Dye processing(Rendering pipeline)Graphic entity.According to the configuration mode of graphic system, each segment for generating and handling It can for example indicate single sampled point or one group of multiple sampled point.
(Therefore, " segment " is the effective one group of primitive data being interpolated into the given output spatial sampling point of primitive(With One group of primitive data association)." segment " may also include every primitive and the sampled point in concern(Piece fragment position)Place is primitive Colour required other status datas.Each graphics fragment usually can be with the pixel of output(For example, output frame)With phase With size and it is in same position(Since pixel is singular point in final display, work in graphics processor(Wash with watercolours Dye)" segment " and display pixel between can map one by one).However, a pair that differs between segment and display pixel may be present The case where answering, such as before showing final image, the post-processing of concrete form is executed on the image of rendering, such as reduction is adopted Sample.)
(It there is also such a case:But with given position multiple segments for example from different overlapping primitives that This is influenced(For example, due to transparency and/or mixing), final pixel output may depend in the multiple or whole of the location of pixels Segment.)
(Accordingly, it can be corresponded between sampled point and display picture element, but between sampled point and display picture element It does not correspond more generally, since reduction sampling can be executed in the sampled value of rendering to generate for showing the defeated of final image Go out pixel value.Similarly, as multiple sampling point values for example from different overlapping primitives in given position affect one another(Example Such as, due to transparency and/or mixing), final pixel output will also depend upon multiple overlapping sampled values in the location of pixels.)
In a commonly referred to as known technology of " Immediate Mode " graphics process or the graphics process of rendering, primitive is one by one Ground is handled with generation(Rasterizing and rendering).
In such systems, primitive(Their vertex)It is delivered to graphics system according to the principle first handled first, and Therefore according to the reception sequence render primitive of primitive.
It is also known that in graphic system, is rendered using so-called " based on piece " or " delay " renders.Based on It is not that entire render exports in the rendering processing of piece(Such as in the system rendered according to Immediate Mode effectively The frame that ground is handled), but the rendering of frame for example to be shown output is divided into multiple smaller subregions, commonly referred to as " piece ".Each piece(Subregion)Independently rendered(Usually one by one render), and the piece rendered(Subregion)With Recombinant is exported with providing complete render afterwards, for example, the frame for display.In these arrangements, it is usual to render output It is divided into the subregion of regular size and shape(Piece)(They are usually for example rectangular or rectangle), but this is not necessary.
Immediate Mode and based on piece rendering processing both, rasterizing and render processing input will usually wrap Include a series of graph commands to be executed by graphics processor.As it is known in the art, it will includes instruction to be somebody's turn to do " command list (CLIST) " Graphics processor draws the order of the order and the other graphics process of instruction of primitive(Such as rendering state variation, beginning and end Piece order(In the system based on piece)Deng).
In Immediate Mode rendering, which will simply list the order one by one to execute, and based on spelling In the rendering of block, the list can with and be generally divided into " piece "(That is, each piece will be directed to(Independently of for other spellings The order of block)List order).
One of current Graphics processing system the disadvantage is that, because primitive is handled in order, and be not usually according to Perfectly sequential processes from front to back, so as an output is handled(Such as display), give sampled point(Into And segment and pixel)It can repeatedly colour.When the primitive that first receives and render then is covered by later primitive, occur Such case, in the pixel of concern(And sampled point)It actually can't see the first primitive of rendering.Primitive can be according to this Mode is written many times, and this is typically resulted in for each rendering output being rendered(Such as frame)It executes multiple final superfluous Remaining Rendering operations.This phenomenon is commonly referred to as " repeating to render ".
The result for executing the operation of these final redundancies, which includes frame per second, to be reduced and the increase of memory bandwidth demand(For example, conduct The result of data is obtained for the primitive that will be override by later primitive).Both of which is undesirable, and reduces figure The overall performance of processing system.It is exported with rendering(The frame such as to be rendered)Become larger and becomes more complicated(Such as it is potential can To occur more multi-panel in view), and as the use of programmable fragment coloring increases(It is colored as with using programmable fragment The expense of given fragment shading is with respect to bigger), these problems will often become serious.
The problem of " repeating to render " can be obviously reduced for rendering by sending primitive according to sequence from front to back.So And other graphics process demands(Such as resource(Such as texture)Relevant entrance demand and minimize per frame API Calls Number demand)Usually other preferred sequencing requirements of approval primitive.In addition, still keeping primitive to graphics processing unit Enough conveying capacities while, before rendering, being ranked up from front to back to primitive completely may not be practical.These and other Factor means to export for given render(Such as frame)Primitive sequence from front to back in practice be typically can not possibly or It is undesirable.
Therefore, it is proposed to attempt to reduce when processing renders output(Such as the frame of display)" repeating to render " of Shi Zhihang Amount(The redundancy treating capacity of hidden surface)(That is, avoiding rendering sightless primitive and/or segment etc.)Other multiple technologies.
For example, as it is known that eliminated sending primitive and/or segment with executing various forms of hidden surfaces before being rendered, with Observe whether primitive or segment etc. cover the primitive being rendered(In such a case it is not necessary to render new segment and/ Or primitive).This hidden surface elimination may include such as early stage occlusion culling, all early stage Z as known in the art(Depth)With/ Or template test processing.
The trial of these arrangements identifies before later segment is sent to rendering pipeline will for example have been handled Primitive block(And it therefore need not handle)Segment.In these arrangements, for the segment in depth buffer The depth value of such as new segment to be processed is compared by position with current depth value, to determine whether new segment is blocked. This can help to avoid passing through rendering pipeline and sends by processed primitive blocks segment.
However, these " early stages "(Before rendering)Hidden surface technology for eliminating is only accounted in for example new primitive or segment (The positive primitive or segment for carrying out " early stage " test)Their processing has been completed while just tested(It has been rendered)Piece Section.This is because relevant test data(Such as Z- buffers)Only include the data from processed segment.
Invention content
Therefore, applicant believes that the technology that the hidden surface for still having space to be modified in graphic system is eliminated.
According to the first aspect of the invention, a kind of method of operation graphics processing pipeline, the graphics process are provided Assembly line includes multiple processing stages comprising:Rasterizer carries out rasterizing to generate figure to be processed to input primitive Shape segment, each graphics fragment have one or more sampled points associated with it;And renderer, it handles by rasterizing The segment that device generates the described method comprises the following steps with generating output fragment data:
Be sent to renderer in the segment generated by rasterizer with before being handled, about with the fragment association At least one sampled point executes early stage rejection test;And
If at least one sampled point by early stage rejection test, sends forward segment to be handled, and in response to At least one sampled point determines whether the processing of another sampled point in graphics processing pipeline answers by early stage rejection test This slows down.
According to the second aspect of the invention, a kind of graphics processing pipeline is provided, which includes:
Multiple processing stages comprising:Rasterizer carries out rasterizing to generate figure to be processed to input primitive Segment, each graphics fragment have one or more sampled points associated with it;Renderer, processing are generated by rasterizer Segment to generate output fragment data;And rejection test stage early stage, it is sent in the segment generated by rasterizer Renderer is before being handled, early stage rejection test is executed about with the sampled point of the fragment association;Wherein, the figure Processing assembly line is configured as:
In response at least one sampled point with the fragment association generated by rasterizer by early stage rejection test, forward Segment is sent to be handled, and determines whether the processing of another sampled point in graphics processing pipeline should slow down.
The graphics processing pipeline of the present invention includes rejecting early stage to survey before the renderer stage of graphics processing pipeline Examination, such as early stage depth test, in graphic entity(Such as sampled point, segment and/or primitive)Before being handled by renderer It attempts to reject them, as known in the art.
However, in response to sampled point by early stage rejection test, the present invention is also determined and is just handled in graphics processing pipeline The processing of another sampled point whether should slow down(For example, the figure of another sampled point just handled in graphics processing pipeline Whether the processing priority of processing assembly line can reduce).In other words, the present invention in the rasterizing stage or the rasterizing stage it Extend the effect of early stage rejection test afterwards, so that its of assembly line can also potentially be influenced to be rasterized into and be sent to Remaining part point is with the processing speed of the sampled point of the primitive handled.
As will be discussed further below, this can then so that early stage rejection test result can be used in avoiding and/ Or stopping processing(" termination ")The sampled point of primitive in a pipeline, rather than simply stop new primitive(For example, will be by It blocks)Sampled point be rendered to prevent it.This have the advantage that for example, for previously early stage rejection test was passed through The sampled point of primitive in a pipeline, if generated the piece for the primitive later for blocking them before their processing is completed Section, then can still stop their processing.
Thus, for example, being different from the prior art, the present invention can be also actually rendered in sequence in primitive and/or segment Primitive later block in the case of reduce or avoid " repeat render ".
This have the effect that compared with for example existing early stage depth test technology, the present invention can further decrease The degree that hidden surface is unnecessarily handled in graphics processing pipeline.In addition, before being rendered, costliness need not be executed Sampling/segment often sampling or per segment sort.
In fact, the important advantage of the present invention is, when the primitive sequence of setting is best(That is, from front to back)When, It will not interfere actually, so that in this case, minimum is obtained on " standard " early stage depth test arrangement Expense increases, but when primitive sequence " non-optimal ", the present invention will work, and makes not use with the primitive of elimination from back to front Manage them.The level of the anti-aliased processing of used multi-point sampling is also independent from using the expense of the present invention, to relatively just Preferably use the anti-aliased processing of the multi-point sampling of greater degree(And the use of the anti-aliased processing of multi-point sampling of greater degree It is more cheap).
In addition, because present invention reduces sampled points in a pipeline to pass through the processing speed of assembly line, sheet Invention still can be used for determine new primitive when executing early stage rejection test(Segment)Whether will actually block In the case of sampled point in a pipeline(Rather than the sampled point for example abandoned immediately in a pipeline, in this feelings Under condition, sampled point in a pipeline only can determine that new segment will block their feelings when executing early stage rejection test It is dropped under condition).It is, therefore, intended that with the survey that for example simply discards sampled point or segment in a pipeline immediately The case where examination is likely to occur is compared, and the present invention can be used for(Potentially)Influence and stop the processing of more sampled points and segment.
For example, being dropped when the new segment of early stage rejection test will result in during segment is managed at which(Such as tinter is attached The discarding of condition)A part of one or more states as its state so that cannot be rejected in early stage(For example, deep Degree)Test phase knows whether segment will actually show in rendering output(So that cannot conclude in early stage rejection test Whether new segment will clearly block other segments in handling assembly line)When, the present invention can be used.
In fact, it has been discovered by the applicants that be directed to many graphical contents and processing, segment can have and it relatively commonly Associated conditional discarding state.As will be discussed further below, the present invention can be used for stopping processing(" termination ") Segment in assembly line and/or sampled point, even if early stage rejection test is because new segment has associated with it conditional lose It abandons test and cannot do so immediately.
The rasterizer of graphics processing pipeline can be configured as operating according to any suitable and desired mode, such as such as According to known rasterizing arrangement.As it is known in the art, rasterizer should be operated to generate the figure for processing Shape segment is based on this, the given primitive etc. received by rasterizer(At least partly)It covers cover graphics and handles flowing water Sampled point in a series of sampled points of the output area of line(Or multigroup sampled point).Rasterizer is directed to and is just being rasterized into (It is each)The each sampled point of primitive covering, and/or for including being just rasterized into(It is each)The sampled point of primitive covering The multiple sampled points of each group(For example, sampling mask)Preferably generate graphics fragment.
The each segment generated by rasterizer can indicate single sampled point or multiple sampled points as needed(With individually adopt Sampling point or the association of multiple sampled points).In a preferred embodiment, each one group of segment expression is multiple(Preferably four(2x2)) Sampled point.
Rasterizer can be configured as once generating a segment, but in a preferred embodiment, it can(Simultaneously)One It is secondary to generate multiple segments(For example, in the case where primitive covers multiple spatially adjacent sampled points or multigroup sampled point). In this case, if rasterizer generates one group of multiple segment simultaneously, the segment in described group yet by assembly line piece Section process part(Such as fragment shader)Preferably individually handled.Rasterizer generates multiple segments simultaneously and contributes to form Back pressure, to make in rendering pipeline " being full of " segment.
In especially preferred embodiment, rasterizer is classification rasterizer, is operated with relative to sampling The smaller and smaller sticking patch selected repeatedly tests primitive until being preferably chosen(It is preferably scheduled)Minimum patch size, from And it abandons and does not cover(At least partly)Any sticking patch of primitive, and one or more segments are subsequently generated, to correspond to quilt The one or more sticking patch for the sampled point that primitive covers at least partly are rendered.The each benefit for the sampled point preferably tested Piece corresponds to integer segment, such as 16x16,8x8,4x4 and/or 2x2 segment.
Rasterizer is preferably since the big sticking patch in post-processing object region and whether tests the primitive of concern in the sticking patch It is interior.If it is not, then abandon entire sticking patch, and test next sticking patch, etc..On the other hand, if it find that primitive is in the benefit In piece(To cover the sticking patch at least partly), then the sticking patch is preferably again divided into 4 parts, and then according to phase Each " sub- sticking patch ", etc. is tested with mode, until reaching minimum patch size(In a preferred embodiment, minimum sticking patch ruler It is very little to correspond to 2x2 segment groups)(But it may be, for example, individual sampled point, individual segment or various sizes of segment group).
In the arrangement, minimum patch size includes multiple sampled points, and in final sticking patch, rasterizer is preferably Individual sampled point is then tested to determine whether they are covered by primitive, and is then correspondingly generated segment.
It can be associated with multigroup multiple sampled points in the segment generated by rasterizer(And simultaneously corresponding to multigroup multiple sampled points Indicate multigroup multiple sampled points)In the case of, each this graphics fragment is preferably and instruction is described one group corresponding with segment Which of sampled point sampled point is capped(For instance, it is preferred that the primitive covering just sampled)Data correlation, that is, it is real On border, and those of in corresponding with the segment one group of sampled point of instruction sampled point data correlation, the segment is just It is used to render.
Indicate the segment which covering sampled point be just used for render information preferably with by renderer A part for the fragment data of segment(The RGB and transparent value of such as segment)Association.Preferably, using the form of coverage mask, For each sampling location of one group of sampled point with the fragment association, whether instruction sampling location is capped, that is, practical On, whether segment just be used to render sampled point(That is, being directed to the sampled point, whether data should be stored).Preferably, this Kind coverage mask uses the form of bitmap, indicates sampling location.Rasterizer preferably generates coverage mask.
The early stage rejection test of the present invention operated with may include any suitable this test, such as block survey in early days Examination, such as depth(Z)Test and/or early stage template test.It is of the invention to operate in especially preferred embodiment Early stage rejection test includes early stage depth(Z)Test(Or multiple tests).In a preferred embodiment, of the invention to operate with Early stage rejection test include both early stage depth and early stage template test.
The available early stage rejection test of graphics processing pipeline(Rejection test stage early stage)In any or all Mode according to the invention can be configured as to operate(Trigger action).Include rejecting more than one early stage in graphics processing pipeline Test(Rejection test stage early stage)When, it is preferable that all rejection test stages early stage can trigger mode according to the invention Operation.Therefore, there is preferably more than one early stage rejection tests in a pipeline.
Rejection test stage early stage can be(It is multigroup)It is operated on the sticking patch of multiple segments.For example, rasterizer can be by base When first grid turns to the sticking patch of multiple segments, these sticking patch then can be subjected to early stage rejection test as a whole.This In the case of, therefore early stage rejection test will be related to one group of multiple segment(That is, the sticking patch of considered segment), and about with piece The associated at least one sampled point of section execute early stage rejection test will include about the multiple segments generated by rasterizer extremely It is one group few(Sticking patch)Execute early stage rejection test(Really rejection test is executed about at least one sampled point of fragment association, This is because it is directed to efficiently performs early stage rejecting survey with all sampled points of the fragment association in one group of multiple segment Examination).
Therefore, in a preferred embodiment, assembly line includes the sticking patch for testing multiple segments jointly(Group)Early stage depth (Or early stage depth and template)Tester.The test is preferably only for complete(Completely)The primitive being concerned covers multiple The sticking patch of segment(Group)It executes, and the sticking patch of multiple segments is preferably used(Group)Depth value range.
Preferably, it is rejected by early stage " sticking patch "(For example, depth and/or template)Any sticking patch of multiple segments of test (Group)It can trigger the operation of mode according to the invention.
Early stage rejection test can(Additionally or alternatively)Preferably, and(In addition)Preferably grasped on individual chip Make.Therefore, assembly line preferably includes the early stage rejection test device for testing individual segment, it is preferable that early stage depth(Or early stage Depth and template)Tester.The test is preferably only for complete(Completely)The segment for the primitive covering being concerned executes, and And integrally use depth value range or single depth value preferably for segment.
Preferably, by this(Individual chip)Early stage rejects(For example, depth and/or template)Any segment of test can be touched The operation for sending out mode according to the invention.
In a preferred embodiment, early stage rejection test(There are early stage rejection tests)(Additionally or alternatively), and Preferably(In addition)Include in single sampled point and/or compared with multigroup sampled point associated by given segment less sampled point Multigroup sampled point(Such as, for two in four sampled points with fragment association)Upper operation(Test).In this case, Early stage rejection test is preferably single(Covering)It is operated on sampled point.In this case, each sampled point will have and use In the associated depth value of rejection test, that is, will be directed to each sampled point has depth value(It can be shared with other sampled points).
Furthermore, it is preferable that it is rejected by sampled point early stage(For example, depth and/or template)Any sampled point of test It can trigger the operation of mode according to the invention.
In especially preferred embodiment, assembly line includes testing multigroup multiple segments and/or individual segment(About This, can trigger the operation of mode according to the invention)Early stage rejection test, picked followed by the early stage for testing individual sampled point Except test(Again, it is preferable that about this, can trigger the operation of mode according to the invention).This can be then so that energy of the present invention Enough complete piece to individual chips and/or sampled point particles generation hidden surface from such as covering primitive eliminate event.
In especially preferred embodiment, the system comprises early stage rejection test, will with sampled point, segment and/ Or one group of multiple segment(Sticking patch)Associated depth value range and storage and the sampled point of concern, segment or one group multiple Section(Sticking patch)The associated depth value range in position be compared, to determine just tested sampled point, segment or more than one group A segment(Sticking patch)Whether early stage rejection test is passed through.
Preferably for what is be contemplated that(Rejection test)Each sticking patch storage depth value range of segment.
Early stage rejection test itself can be executed according to any suitable and desired mode, for example, according to as is generally known in the art Normal mode and/or concern graphic system used in mode execute.For example, they can specifically test it is described Sampled point(Or each sampled point), or even if they do not test the sampled point specifically(Or each sampled point), or Has the effect of the test of test sample point.
In especially preferred embodiment, early stage rejection test(In response to the early stage rejection test, another sampling is determined Whether the processing of point can slow down)It is a kind of conservative early stage depth test, is preferably substantially carried out operation to be rejected in early stage Test phase is predicted(It determines)Whether new sampled point and/or segment will pass through the later stage present in assembly line(In assembly line End)Depth test.
In especially preferred embodiment, one group of primitive is being rendered(For example, being directed to piece or draw call)Before, it is System(Preferably rasterizer)For each sampling location, multigroup sampling location, segment, piece fragment position, segment sticking patch and/ Or multigroup fragment position generates and/or stores desired depth value and preferably desired depth value range, when test is by grid Whens changing the primitive and segment etc. that device generates, rejection test can with and preferably carried out within the scope of the depth value.These it is expected Depth value range should be directed to the expressions such as sticking patch of concern(Cover)Depth value all possible as a result, and preferably with It and continues rasterizing and render and utilize the depth value and depth value of the sticking patch for being directed to individual sampling location, segment, segment etc. Range is updated, the individual sampling location, segment, segment sticking patch be generated and be stored as sampled point and segment, it When being handled by graphics processing pipeline experience early stage and post depth test.
Early stage rejection test can be realized for a part for such as rasterizer, or after rasterizer(But in renderer Before), or as combination thereof(For example, there are more than one early stage rejection tests).In a preferred embodiment, it or it Be embodied as rasterizing processing a part and/or after rasterizer but the rest part of graphics processing pipeline it Before.
If just tested sampled point or one or more segments does not pass through early stage rejection test(For example, it was discovered that by hiding Gear), then the sampled point or one or more segment are preferably from " rejecting " in being further processed in assembly line, in this field Known.
It can be realized according to any desired and suitable mode(And offer)This rejecting.For example, rejection test be about Whole fragment(Or one group of multiple whole fragment)When, then the preferably described segment or one group of multiple segment not by assembly line to Preceding transmission is to be handled(For example, being rendered)(That is, their " being removed "), as known in the art.
On the other hand, if rejection test be about than with than the less sampling of all sampled points of fragment association that renders Point, then it is preferably prevented from(Stop)The sampled point of concern(That is, not passing through rejection test)Be further processed, for example, passing through Sampled point is labeled as " failure "(For example, by indicating that they are not covered by the coverage mask of the fragment association with concern), or Person is according to any other suitable mode, but the segment paid close attention to is still(Pass through assembly line)It sends forward so that closed with segment " not rejecting " sampled point of connection is still processed.
If just tested at least one sampled point passes through early stage rejection test, tested sampled point(That is, with adopting The associated segment of sampling point), segment or one group of multiple segment are sent forward to be handled(For example, towards renderer), still As known in the art.However, in this case, passing through early stage rejection test in response to sampled point(It is logical as sampled point Cross the result of early stage rejection test), also determine whether the processing of another sampled point in a pipeline should slow down(And if Pass through early stage rejection test etc. in response to sampled point(Pass through the result of early stage rejection test etc. as sampled point), determining to flow The processing of sampled point in waterline should slow down, then the processing of sampled point preferably then slows down).
In this regard, processing can be in sampled point level(Resolution ratio)(Rather than for example about whole fragment)It is operated, and Therefore it is tested, and slows down the processing with the individual sampled point of fragment association in a pipeline.It rejects and surveys in early stage When individual sampled point is tested in examination, this can be particularly suitable, and will enable in for example described processing " removing " and assembly line The sampled point of fragment association(Such as so that once it is determined that " slowing down " and fragment association is all(Covering)Sampled point, entire piece The processing of section then can just slow down).
Similarly, processing can be configured as additionally or alternatively operating about whole fragment, that is, so that if entire piece Section(Or one group of multiple segment)Pass through early stage rejection test, it is determined that whether the processing of any segment in assembly line should subtract Slowly.In early stage rejection test test fragment and when alternatively testing individual sampled point, this can be particularly suitable.
Therefore, in a preferred embodiment, early stage rejection test test fragment and/or multigroup multiple segments, and if Just tested segment or one group of segment is then used as segment or one group of segment to pass through early stage rejection test by early stage rejection test As a result, determining whether the processing of segment and/or one group of multiple segment in a pipeline should slow down.
The multiple segments of each group are preferably one group of four segment, it is therefore preferable to 2x2 segment groups.
In a preferred embodiment, the entity operated on it with rendering pipeline(Such as(Preferably)Segment is multigroup Multiple segments(Such as 2x2 group segments))Resolution ratio execute the determination.
As at least one sampled point and/or segment by early stage rejection test as a result, preferably determining in flowing water Whether the processing of multiple sampled points and/or any of segment in line should slow down.
Although can be about each segment by early stage rejection test(It is associated with the sampled point by early stage rejection test) Execute the operation of mode according to the invention(To slow down the processing of other segments in graphics pipeline etc., and potentially then " termination " described other segments), but in especially preferred embodiment, only about selection(And it is rejected and is surveyed by early stage Examination)Segment(It preferably conforms to specific selected(It is preferably scheduled)The segment of standard)Execute mode according to the invention Operation.
Therefore, in especially preferred embodiment, in a pipeline any other sampled point and/or segment Handle whether the determination that should slow down is based at least partially on also has by the segment and/or sampled point of early stage rejection test Have specific(It is preferably chosen)One or more attributes(Meet necessary(Selection)Standard with(With required attribute With)(Potentially)Slow down the processing of another sampled point), and if described segment etc. does not have the attribute, preferably not The processing of another sampled point in graphics processing pipeline is determined by early stage rejection test in response at least one sampled point Whether should slow down).
Therefore, in a preferred embodiment, to the processing of sampled point and/or segment whether the determination that should slow down undergo into The inspection of one step and/or standard.
Similarly, in a preferred embodiment, if segment(Or sampled point)By early stage rejection test, then first check for Segment(Or sampled point)Other attributes with the segment in slowing down assembly line(Or sampled point)It is determined before processing(Or it )Whether processing should(Potentially)Slow down.
The standard that the segment of the operation of mode according to the invention is then triggered by early stage rejection test can be any choosing Fixed and suitable standard.
In especially preferred embodiment, in this regard, just by the segment of early stage rejection test and/or the spy of sampled point Determining attribute is whether segment and/or sampled point will be tested by the conditional discarding of the part as its processing(That is, having The shape that instruction segment associated with it and/or sampled point can be abandoned later when it is handled by graphics processing pipeline State, such as and preferably, there is conditional discarding in tinter associated with it).(As it is known in the art, wanting wash with watercolours Some segments of dye can be led to these segments by as the part for rendering processing(Such as)The various attached items being dropped The discarding test of part or state.This can be used for for example when rendering the leaf on fence or tree(In this case, for tree Space between leaf/fence uses discarding).These segments are preferably to apply the segment of the present invention.)
Therefore, in a preferred embodiment, the standard preferably includes one by the part as its processing Or more it is conditional abandon test segment.In a preferred embodiment, they include it is below it is one or more with And preferably all:The segment of mask is write with full RGB;Segment without the mixed function dependent on previous RGBA values;With In the coloration program for the segment not read from piece buffer;Fully opaque segment;And it does not force(By applying journey Sequence person)The newer segment of post depth is executed, wherein executing post depth update based on following reason:Transparent test;It is clear to Covering;Tinter includes to abandon;It includes to abandon to mix tinter;Or the segment earlier with same position is strong in tinter System carries out post depth update.
In other words, it is preferably that allowing(It uses)Due to it is transparent test, be clear to coverage test, tinter include abandon, Mixing tinter includes that the segment earlier in discarding or tinter forces to carry out post depth update and enforce the later stage Depth newer segment triggers the operation of mode according to the invention, with(Potentially)Slow down other segments and/or sampled point Processing, but do not allow(It does not use)The newer segment triggering of post depth is enforced according to this for any other reason The operation of the mode of invention with(Potentially)Slow down the processing of other segments and/or sampled point.
In especially preferred embodiment, among other things, to any other sampled point in a pipeline And/or whether the determination that should slow down by the sampled point of rejection test and/or segment based on can be weighed for the processing of segment It is multiple to render(And preferably, whether they can block)Sampled point in a pipeline and/or segment(If due to later Sampled point and/or segment can then indicate that these sampled points and/or segment can be located at and indicate to exist for example, by early stage depth test Before any sampled point and/or segment of same position in assembly line(And if they are opaque,(Potentially) Block any sampled point and/or segment)).
It is surveyed it is therefore preferred that executing to reject in early stage by one or more stages later of graphics processing pipeline Handle it determination that those of be slowed sampled point and/or segment in examination " passing through " event, it is one or more of slightly Stage identification afterwards(It determines)It includes currently(For example, processing)Can potentially through by one of early stage rejection test or Multiple sampled points and/or one or more segments(Suitably)Repeat any sampled point rendered and/or segment.
This processing can be executed according to any suitable and desired mode, it is preferred that by will currently occupy assembly line The sampled point in stage and/or one in segment or some or all of(For example,(X, y))Position and pass through early stage rejection test Sampled point and/or segment(For example,(X, y))Position is compared to realize.
Considering sampled point(Relative to whole fragment)When, this point passes through " reality " position for the sampled point that will be paid close attention to (But in a preferred embodiment, by by the position of the segment for the sampled point paid close attention to)With the phase of the sampled point in segment Position is compared to realize(For example, based on the coverage mask with fragment association).
When considering segment, this point preferably by by one in the segment for currently occupying flow line stage or some Or the position of whole positions and the segment by early stage rejection test is compared to realize.
Considering one group of multiple segment(That is, passing through early stage rejection test)When, this is preferably by that currently will occupy stream One of the segment of last pipeline stages or multigroup segment or some or all of position with pass through described one group of early stage rejection test The position of segment covering in multiple segments(Region)Range be compared to realize.
It is exported rendering(Plane)In with pass through the sampled point and/or segment of early stage rejection test(Suitably)Occupy phase Same position(That is, having the same(X, y)Position)Any current sampling point and/or segment processing therefore can(And it is preferred that Ground)(Selectively)Slow down(For example, being subject to other standards of the processing for slowing down sampled point also corresponded to).
In a preferred embodiment, to the processing of sampled point and/or segment, whether the determination that should slow down is with other inspections And/or subject to standard.Preferably, its processing first checked in a pipeline will potentially slow down(For example, will potentially It is blocked)Segment(Or sampled point)Other attributes, with the segment in slowing down assembly line(Or sampled point)Processing before, Determine it(Or they)Whether processing still should be with normal priority based on any other reason(With normal speed)It carries out, institute State other reasons for example because its have such as with the associated side effect being still required of occlusion query that is still required.This inspection Look into the segment for preferably including and determining in a pipeline(Or sampled point)Whether because of occlusion query(It is subsidiary effective with its Occlusion query)Or because other side effects(In this case it is preferable to not slow down its processing)And it is required.
Therefore, in especially preferred embodiment, graphics processing pipeline is configured as, in response to fragment association At least one sampled point selectively slows down sampled point in a pipeline and/or one or more by early stage rejection test The processing of a segment.
It, can be according to any suitable and desired mode when sampled point or one or more segments are by early stage rejection test Implement determine assembly line in any sampled point and/or segment processing whether the operation that should slow down.
Preferably, sampled point or one or more segments pass through early stage rejection test(And meet the mark of any other requirement Standard with(Potentially)Slow down the processing etc. of other segments)Event trigger relevant information(Such as, and preferably pass through survey The sampled point of examination or the position of segment)It is other in broadcast to processing assembly line(For example, later)In the stage, those are other(Example Such as, later)Stage preferably estimates the place of their currently processed any sampled points or segment followed by described information Whether reason should slow down(For example, and preferably, mode as discussed above).
When test is about whole fragment, which preferably includes the segment of concern(X, y)Position, such as above Discussion.When test is about one group of multiple segment, which preferably includes one group of multiple segment by paying close attention to In segment covering(X, y)The range of position(Still as discussed above).When test is about sampled point, location information is excellent Selection of land includes and the associated segment of sampled point(X, y)Position, and about sampled point be which be used for segment sample The instruction set(Preferably, in the form of coverage mask, as discussed above).
Therefore, in especially preferred embodiment, graphic system is configured as, if at least with fragment association One sampled point, then will be about passing through at least one sampled point of early stage rejection test by early stage rejection test(And/or it closes The segment of note)Information broadcast it is at least one to graphics processing pipeline(It is preferably other(And preferably, later)) Stage, and at least one stage of graphics processing pipeline be configured as using broadcast with by early stage rejection test extremely The information of a few sampled point and/or fragment association come determine with any segment of current fragment association in this stage and/ Or whether the processing of sampled point should slow down.From the discussion above, it is preferable that only passing through at least the one of early stage rejection test A sampled point and/or segment also comply with other standards(Such as, and preferably, it is handled by graphics processing pipeline with working as it When be potentially dropped subject to)When described information was broadcasted to other stages of graphics processing pipeline.
As discussed above, most preferably, early stage rejection test includes early stage depth test and/or graphics process flowing water At least one stage of line is configured as the letter with sampled point and/or fragment association by early stage rejection test using broadcast Cease determine current any sampled point and/or segment at this stage whether by by by early stage rejection test sampled point and/ Or segment potentially repeats to render, and if there is any such sampled point or segment, then it is latent selectively to slow down these The later processing of the sampled point rendered and/or segment is repeated on ground.
Therefore, in especially preferred embodiment, graphics processing pipeline is configured as:
Segment is being sent forward by assembly line with before being handled, at least one sampled point with fragment association And/or execute early stage depth test at least one segment generated by rasterizer;
If at least one sampled point or at least one segment pass through early stage depth test(And in preferred embodiment In, if at least one sampled point or at least one segment are potentially dropped when it is handled by graphics processing pipeline), Segment is then sent forward to be handled, and will be about at least one sampled point by early stage depth test or at least one The information of segment is broadcasted at least one to graphics processing pipeline(Preferably later)Stage;And
At least one stage of graphics processing pipeline is configured as, using with pass through at least one of early stage depth test The broadcast message of sampled point or at least one fragment association is to determine any sampled point and/or segment currently in the stage It is no by potentially by by early stage depth test at least one sampled point or at least one segment repeat to render, and if deposit In any such sampled point or segment, then selectively slow down sampled point and/or the segment for potentially repeating to render to those Be further processed.
As discussed above, most preferably, the information in broadcast to the stage of graphics processing pipeline includes being picked by early stage Except at least one stage of the sampled point of test and/or the position of segment and/or graphics processing pipeline is configured as using wide It is broadcasting to determine current at this stage any with sampled point and/or fragment association of by early stage rejection test location information Sampled point and/or segment whether with the sampled point and/or segment by early stage rejection test in post-processing object(Destination buffers Device)(For example, piece being processed)In occupy same position, and selectively slow down and adopting by early stage rejection test Sampling point and/or segment occupy any sampled point of same position and/or the later processing of segment in post-processing object.
Determined in early stage rejection test " passes through " event any sampled point and/or segment processing whether the place that can slow down One or more stages of reason assembly line may include any desired and suitable stage of graphics processing pipeline.They are preferably At least one stage later including graphics processing pipeline(That is, the rank after early stage rejection test and/or rasterizer Section).For this purpose, the processing assembly line can be divided into many stages as needed.
In a preferred embodiment, which is the renderer of graphics processing pipeline(The determination is by renderer reality It is existing).It is possible that for example, the renderer single phase process that mode according to the invention operates as a whole or conduct (And it is divided into)The phase process for the multiple separation worked independently of one another.Therefore, in a preferred embodiment, early stage, which rejects, surveys Try " passing through " event information quilt(At least)It broadcasts to the renderer of graphics processing pipeline and/or one or more portions of renderer Point(Then mode according to the invention operates for one or more parts of renderer or renderer).
Determined in early stage rejection test " passes through " event any sampled point or segment processing whether the processing that can slow down One or more stages of assembly line preferably include additionally or alternatively the assembly line that for example can effectively reject segment Other stages, such as early stage rejection test(To attempt to slow down the segment for for example still undergoing early stage rejection test(Such as later Segment in early stage rejection test assembly line)Processing and/or rasterizer(To attempt to slow down for example still to undergo grid The segment earlier changed(And/or the sticking patch of segment)Processing(Incomplete rasterizing)).
In especially preferred embodiment, multiple segments(And all segments preferably in the stage)And/or sampling Point can concurrent testing.This subsequently facilitates the early stage rejecting survey for effectively utilizing the sticking patch that can once test for example multiple segments Examination.Preferably, arrangement is that flow line stage is produced potentially " to subtract by event with early stage rejection test Slowly the identical rate of the rate of chance slows down the processing etc. of sampled point and segment ".
From the discussion above, when the processing for determining sampled point and/or segment should slow down, preferably slow down segment And/or the processing that sampled point passes through assembly line.
" slowing down " segment etc. should more slowly be handled compared with normal, but the processing of sampled point and/or segment Slowing down degree can select as needed.It should be noted here that it is desirable that, the processing of sampled point and/or segment only with respect to Slow down or postpone for its speed normally handled by assembly line rather than sampled point and/or segment " being slowed down " abandons at this time (Stop forever)To be not further processed by assembly line.Therefore, although the processing of segment etc. slows down, described Sections etc. are not(When slowing down)It is dropped not to be further processed by assembly line.
In especially preferred embodiment, the processing of segment and/or sampled point in assembly line slows down flows including delay The processing of segment and/or sampled point in waterline so that it is more than " slowing down " segment or sampled point that triggering, which slows down in assembly line, The segment of concern or the sampled point or segment of the processing of sampled point, and it is preferably so that triggering slows down segment or the sampling of concern The sampled point or segment of the processing of point should(And preferably)The place of " slowing down " segment or sampled point in completing assembly line The conditional discarding test of one or more is completed before reason in a pipeline.Such as by description later, this then makes " triggering " segment or sampled point can be used in(Potentially)It abandons(" termination ")The segment etc. slowed down, to prevent through assembly line It is further processed.
Slow down the place of the sampled point and/or segment that determine that its processing should slow down according to any desired and suitable mode Reason.
In a preferred embodiment, the processing of the segment in assembly line and/or sampled point slows down including suspending flowing water The processing of segment and/or sampled point in line,(For example, and preferably, until " triggering " segment and/or sampled point are completed The conditional discarding test of one or more).
The pause of the processing such as the segment in this assembly line can be realized as needed.In a preferred embodiment, temporarily The segment etc. stopped is arranged in " rigid pond "(Their processing suspends herein)In.
In another preferred embodiment, the processing of the segment in assembly line and/or sampled point slow down including(Such as it is and excellent Selection of land)It is assigned and being accessed for buffer area and/or for the relatively low of other processing by assembly line by " slowing down " segment Priority(Relative to the segment etc. not slowed down)It goes preferential(de-prioritising)Segment in assembly line and/or sampled point Processing(Reduce its priority).
It can be achieved or it is expected this processing that preferential segment etc. is gone by assembly line.
In especially preferred embodiment, the segment with instruction to be processed is arranged in segment pond, when completion refers to When enabling, and when there is the cache hit for preparing for executing and instruction, suitable segment is then taken out from segment pond And it executes.It is used as additional consideration by increasing priority state when determining whether allow to take out segment from segment pond Factor, segment then can be such that their processing priority reduces.
In a preferred embodiment, segment etc. is " going preferential " by the sampled point and/or fragment label that will identify that(Tool There is the processing priority of reduction)It makes a return journey preferential.The relevant treatment stage then can carry out any processing to sampled point and/or segment It for example checks whether sampled point and/or segment are gone preferentially before, and is therefore followed by subsequent processing with normal or reduction excellent The segment etc. of first grade.This will then slow down the processing of preferential sampled point and/or segment.
For sampled point, for the segment of concern, preferably by suitable in such as metadata of sampled point mask Ground setting value is preferential labeled as going by sampled point.
When that will consider segment entirety, each segment can be for example with " going preferential " bit associated with it(Such as make For a part for its associated fragment data)If the bit is set, it indicates that the processing of segment is gone preferentially.One It is exactly to do so in a preferred embodiment.Processing stage then can check their receptions with each segment handled " going preferential " bit.If the test of independent sampled point finally removes preferentially all sampled points with fragment association, this can be set Bit.
Alternative arrangement(Such as making to have goes the segment queue of preferential label operated as buffer area being arranged The going of segment discharges queue when preferential label(Buffer area)Row)It can be used as substituting, or in addition use as needed.
Once segment and/or sampled point trigger the other segments etc. slowed down in a pipeline, then especially preferred In embodiment, once this triggering segment is completed(With pass through)Its all discarding state that can be subjected to(That is, performing all attached The discarding test of condition is not dropped), then the place of any segment earlier still in a pipeline etc. is then further determined that Whether reason can stop(For example, those other segments etc. will be sheltered from based on known " triggering " segment etc.(Because it is not dropped simultaneously And it will be not dropped)).For example, once " trigger " segment completes its processing by assembly line, once and/or its experience(And lead to It crosses)Its final conditional discarding test, so that it may realize this purpose.
Therefore, in especially preferred embodiment, if triggering slows down other segments in assembly line and/or adopts in advance The sampled point and/or segment of the processing of sampling point are tested by all its associated conditional discardings(That is, not being dropped), then really Whether determine the processing of another sampled point and/or segment that are just being handled in graphics processing pipeline can stop.
It is, therefore, intended that segment can be used for avoiding and/or be stopped by its all conditional result for abandoning test Processing(" termination ")The sampled point of primitive earlier still in a pipeline.
It should be noted here that the operation is combined when with the operation of the present invention to slow down or postpone potentially to be rejected in early days When the processing of the segment that the segment after test is blocked etc., it is meant that " slowing down " triggers segment and tested by its conditional discarding Result then can be used for before those segments slowed down are thoroughly handled by assembly line for example " termination " triggering segment flowing Any " segment slowed down " for being more than in waterline and blocking the segment that is actually triggered.In this way, even if cannot be picked in early days Except test(Such as depth test)Stage determines new segment far and away enough(Such as)Whether will actually block in flowing water Segment in line, also then so that segment later can be used in about before segment later in a pipeline earlier Segment executes hidden surface and eliminates.
Thus, for example, and unlike the prior art, can be used the present invention to reduce or avoid in primitive and/or piece " repeating to render " in the case that section is actually blocked by the primitive on rendering order later.This have the effect that with example If existing early stage depth test technology is compared, the present invention can be further decreased and unnecessarily be handled in graphics processing pipeline The degree of hidden surface.
Applicants further recognized that the piece in a pipeline that can be more than in a pipeline to new triggering segment etc. More, this operation will be more efficient for " slowing down " of section.Therefore, from the discussion above, it is preferred that slow down the place of segment etc. Reason triggers some that segment is more than its " slowing down " such as to enable(And preferably all)Segment etc..
It is thought that passing through the conditional knot for abandoning test in graphics processing pipeline using sampled point and/or segment To determine, whether the idea that can stop itself can be novel and beneficial to fruit for the processing of segment etc. earlier in assembly line.
Therefore, according to another aspect of the present invention, a kind of method of operation graphics processing pipeline, the figure are provided It includes multiple processing stages to handle assembly line, and multiple processing stage includes:Rasterizer, rasterizing input primitive is to generate Graphics fragment to be processed, each graphics fragment have one or more sampled points associated with it;And renderer, place The segment that reason rasterizer generates the described method comprises the following steps with generating output fragment data:
It is tested about conditional discarding is executed at least one sampled point of the fragment association generated by rasterizer;With And
If at least one sampled point is tested by conditional discarding, segment is sent forward in a pipeline, and Abandon testing as a result, determining another sampled point in graphics processing pipeline by conditional as at least one sampled point Processing whether can stop.
According to another aspect of the present invention, a kind of graphics processing pipeline is provided, which includes:
Multiple processing stages, multiple processing stage include:Rasterizer, rasterizing input primitive will be handled with generating Graphics fragment, each graphics fragment have one or more sampled points associated with it;Renderer is handled by rasterizer The segment of generation is to generate output fragment data, and wherein:
It can be tested about conditional discarding is executed with the sampled point of the fragment association generated by rasterizer;And
Wherein, the graphics processing pipeline is configured as:
It is tested by conditional discarding in response at least one sampled point with the fragment association generated by rasterizer, Send segment forward in a pipeline, and as at least one sampled point by conditional discarding as a result, determining figure Whether the processing of another sampled point in processing assembly line can stop.
The conditional discarding test of the present invention operated with includes any suitable this test, such as works as render tree The test of the form used when leaf or fence.
Any or all available conditional discarding test of graphics processing pipeline(Rank is tested in conditional discarding Section)It can be configured as operating in this manner(Trigger action in this manner).Preferably, once segment etc. will by it The final conditional discarding test to be subjected to, is just determined.
One or more conditional discarding tests itself can be executed according to any suitable and desired mode, for example, pressing It is executed according to normal mode as known in the art and/or in the graphic system of concern.
On the other hand, if triggering slow down the processing of other segments in assembly line etc. one or more sampled points or One or more segments are not tested by the conditional discarding that it is experienced by(That is, as the conditional knot for abandoning test Fruit is dropped), then applicants have recognized that would be impossible to safely abandon any slowed down by the segment paid close attention in assembly line Section etc.(This is because triggering segment has been dropped, " slowing down " segment will not be blocked actually to trigger segment etc.).Therefore, In this case, should be continued by any segment etc. that the result of early stage rejection test slows down as segment of concern etc. (And preferably still)It is handled by graphics processing pipeline.
In this case, " slowing down " segment etc. will simply be handled with slower rate continuation.However, especially In preferred embodiment, if triggering slows down segment of their processing etc. and is then dropped, " slowing down " segment etc. is multiple Original is with according to higher(And preferably according to normal)(Their " recoveries ")Priority processing.Preferably, if triggering segment It is dropped Deng based on the operation of any other reason for example by virtue of this invention(" termination "), then this point can be achieved.
Therefore, the aspect of these embodiments and the present invention preferably further include:If at least one sampled point does not pass through Conditional discarding test(It is dropped), then abandon and do not abandon at least one sampled point of test by conditional, and make Do not abandon testing as a result, determining another sampled point in graphics processing pipeline by conditional at least one sampled point Processing whether should restore.
This " recovery " for previously slowing down segment etc. can be realized as needed.It in a preferred embodiment, will by transmission " recovery " signal of suitable " recovery " of segment of concern etc. is triggered to realize.
These " terminations " and " recovery " processing can be in sampled point level(Resolution ratio)(Rather than for example about whole fragment)Into Row operation, and therefore tested, and stop being further processed or restoring the list with fragment association earlier in a pipeline Only sampled point.When individual sampled point is tested in conditional discarding, this can be particularly suitable, and will be so that for example described Processing " can remove " sampled point with fragment association still in a pipeline(For example, until its sampled point is whole " stopping "(Or Restore), then can abandon at this time(Or " recovery ")Whole fragment).
Similarly, the processing can be configured as additionally or alternatively operating about whole fragment, that is, so that if whole A segment(Or one group of multiple segment)Pass through(Finally)Conditional discarding test, it is determined that any segment still in a pipeline Processing whether can stop.
In a preferred embodiment, if just tested segment entirely through(Or do not pass through)Conditional test, then Pass through as segment(Or do not pass through)It is conditional to abandon testing as a result, determining that the processing of the segment earlier in assembly line is It is no to stop(Or restore respectively).
In a preferred embodiment, the entity operated on it with rendering pipeline(Such as(Preferably)Segment)Resolution Rate executes the determination.
Pass through preferably as at least one sampled point and/or segment(Or do not pass through respectively)Conditional discarding test As a result, determining whether sampled points multiple earlier and/or the processing of any of segment in assembly line can stop(Or it is extensive It is multiple).
To in assembly line sampled point any other earlier and/or segment processing whether the determination that can stop can be based on Any desired and suitable standard.In especially preferred embodiment, based on being lost by all the conditional of them Abandon whether the sampled point of test and/or segment will repeat to render(And preferably whether they will block)Sampled point in assembly line And/or segment(Since if sampled point and/or segment are tested by they all conditional discardings(With early stage depth Test), then should indicate that these sampled points and/or segment will enter appointing for the expression same position of assembly line before them In front of what sampled point and/or segment(And it therefore blocks(If they are opaque)Any sampled point and/or segment)).
Therefore, conditional discarding test " passing through " event in no longer need those processed sampled points and/or The determination of segment is preferably executed by one or more stages of graphics processing pipeline, and one or more of stages know Do not go out(It determines)It includes currently(Such as it handles)Any sampled point and/or segment will by be passed through it is conditional abandon test One or more sampled points and/or one or more segments(Suitably)It repeats to render.
The whether recoverable determination of the processing of any other sampled point and/or segment in assembly line can be similarly based on Any desired and suitable standard.In especially preferred embodiment, this based in assembly line the sampled point slowed down and/or Whether segment no longer can not repeated to render by the conditional sampled point for abandoning test and/or segment(And preferably it Whether can no longer be blocked)(Since if sampled point and/or segment are not tested and are dropped by conditional discarding, It will imply that these sampled points and/or segment will be in any samplings for the expression same position for entering assembly line before them Before point and/or segment(And it does not therefore block(If they are opaque)Any sampled point and/or segment)).
Therefore, it is abandoned in test " not passing through " event to these recoverable sampled points and/or segment conditional Determination is preferably executed by one or more stages of graphics processing pipeline, and one or more of stages are identified (It determines)It includes currently(For example, processing)Present can not passed through conditional abandon the one or more of test and sample Point and/or one or more segments(Suitably)Repeat any sampled point rendered and/or segment.
These processing can be executed according to any suitable and desired mode, it is preferred that by will currently occupy assembly line The sampled point in stage and/or the one of segment or some or all of(Such as(X, y))Position with pass through(Or do not pass through)Attached item The sampled point and/or segment of the discarding test of part(Such as(X, y))Position is compared to execute.
Considering sampled point(Relative to whole fragment)When, by " reality " position for the sampled point that will be paid close attention to(But In preferred embodiment, by by the position of the segment for the sampled point paid close attention to)With the relative position of the sampled point in segment (For example, based on the coverage mask with fragment association)It is compared to execute.
When considering segment, preferably by by one in the segment for currently occupying flow line stage or some or all Position with by or be not compared to execute by the conditional position of segment for abandoning test.
Considering(For example, passing through later stage rejection test)When one group of multiple segment, it is preferable that by the way that currently stream will be occupied One in the segment of last pipeline stages or some or all of position with it is multiple by conditional abandon test described one group The position of segment covering in segment(Region)Range be compared to execute.
It preferably pertains to than " older " such as the segments slowed down that triggers them(Before the segment in a pipeline 's)The execution such as segment determine whether segment etc. " should terminate " or the processing of " recovery ".Primitive to be processed(And then segment and/ Or sampled point)It can be associated with timestamp to be conducive to this.
It is exported rendering(Plane)In with pass through(Or do not pass through)Conditional discarding test(Suitably)Sampled point And/or segment occupies same position(That is, with identical(X, y)Position)Any older sampled point and/or segment processing It then can(And preferably then)(Selectively)Stop(Or restore respectively)(For example, with the stopping also corresponded to(Or restore) Subject to other standards of the processing of sampled point).
In a preferred embodiment, whether discardable to sampled point and/or segment to prevent by the determination being further processed Be subject to it is other inspection and/or standard.Preferably, stopping first to segment(Or sampled point)Processing before check potential quilt It abandons(For example, will be blocked)Segment in assembly line(Or sampled point)Other attributes, to determine segment(Or sampling Point)Whether should be still processed based on any other reason, the reason because it has with occlusion query for example, be such as associated with The side effect being still required.The inspection preferably includes, and determines segment(Or sampled point)Whether because of occlusion query(Have Its subsidiary effective occlusion query)Or because other side effects are still required(In this case, it should not be abandoned).
Therefore, in especially preferred embodiment, graphics processing pipeline is configured as, in response to pass through sub conditione Discarding test fragment association at least one sampled point, selectively stop sampled point in a pipeline and/or one The processing of a or multiple segments.
When sampled point or one or more segment by or when not tested by conditional discarding, determine in assembly line Whether the operation that can stop or restore can be held according to any suitable and desired mode for the processing of any sampled point and/or segment Row.
Preferably, sampled point or one or more segment by and/or do not touched by the conditional event for abandoning test It has sent out relevant information(Such as, and preferably, pass through(Or do not pass through)The sampled point of test or the position of segment)Broadcast is extremely located It manages other in assembly line(For example, earlier)It is stage, described other(For example, earlier)Stage is preferably by described information To estimate whether the processing of their currently processed any sampled points or segment can stop or restore(For example, and preferably, pressing According to ways discussed above).
When being tested about whole fragment, from the discussion above, which preferably includes the piece of concern Section(X, y)Position.When being tested about one group of multiple segment, the location information preferably include by pay close attention to described one What the segment in the multiple segments of group covered(X, y)The range of position(According further to above discussion).It is carried out about sampled point When test, location information preferably includes and the associated segment of sampled point(X, y)Position, and about the sample in The instruction of which sampling point position of the segment(Preferably in the form of coverage mask, from the discussion above).
Broadcast message preferably further include " newness degree " of the conditional segment etc. for abandoning test of instruction experience when Between stab(And trigger the broadcast of information)And/or the instruction signal is " recovery " or " termination "(" stopping processing ")Signal.
Therefore, in especially preferred embodiment, graphic system is configured as, if slowing down stream with advance triggering At least one sampled point of the fragment association of sampled point and/or segment in waterline is tested by its final conditional discarding, It then will be about at least one sampled point by the conditional concern for abandoning test(And/or segment)Information broadcast to figure Handle at least one of assembly line(It is preferably other(And preferably earlier))Stage, and graphics processing pipeline is extremely A few stage is configured with abandons the wide of at least one sampled point and/or fragment association tested with by conditional Information is broadcast to determine with whether the processing of any segment of the fragment association currently in the stage and/or sampled point can stop Only.
Similarly, in especially preferred embodiment, graphic system is configured as, if slowed down with advance triggering At least one sampled point of the fragment association of sampled point and/or segment in assembly line is not tested by conditional discarding, then It will be about at least one sampled point for not passing through conditional discarding test(And/or the segment of concern)Information broadcast to figure Handle at least one of assembly line(It is preferably other(And preferably earlier))Stage, and graphics processing pipeline is extremely A few stage be configured with not by the conditional at least one sampled point for abandoning test and/or fragment association Whether broadcast message can be extensive with the processing of any segment of the fragment association currently in the stage and/or sampled point to determine It is multiple.
Preferably, graphics processing pipeline is configured for this two processing(That is, triggering slows down in assembly line in advance Triggering is broadcasted " recovery " or " termination " signal by each segment of sampled point and/or segment, this depends on the sub conditione of its experience Discarding test result).
Therefore, in especially preferred embodiment, the graphics processing pipeline is configured as:
For the fragment association generated by rasterizer for slowing down sampled point and/or segment in assembly line with advance triggering At least one sampled point execute conditional discardings and test;
If at least one sampled point is tested by conditional discarding, by about pass through it is conditional abandon test The information of at least one sampled point is broadcasted at least one to graphics processing pipeline(Preferably earlier)Stage;And
At least one stage of graphics processing pipeline is configured with tests at least with by conditional discarding One associated broadcast message of sampled point determines whether current any sampled point in this stage will be by by conditional At least one sampled point for abandoning test repeats to render, and if there is any such sampled point, then selectively stops These repeat being further processed for the sampled point rendered.
Similarly, in especially preferred embodiment, graphics processing pipeline is configured as:
For the fragment association generated by rasterizer for slowing down sampled point and/or segment in assembly line with advance triggering At least one sampled point execute conditional discardings and test;
If at least one sampled point will be surveyed not by conditional discarding test about conditional discarding is not passed through The information of at least one sampled point of examination is broadcasted at least one to graphics processing pipeline(Preferably earlier)Stage;And
At least one stage of graphics processing pipeline is configured with and is not tested extremely by conditional discarding Lack an associated broadcast message of sampled point to determine whether current any sampled point in this stage will not be by by not attached At least one sampled point of the discarding test of condition repeats to render, and if there is any such sampled point, then selective Restore the processing of these sampled points in ground.
From the discussion above, most preferably, the information in broadcast to the stage of graphics processing pipeline includes passing through(Or not Pass through)The conditional position for abandoning the sampled point and/or segment tested and preferably newness degree and/or graphics process stream At least one stage of waterline is configured as, using with by or do not pass through it is conditional abandon test sampled point and/or piece Whether the location information of the associated broadcast of section determines the current any sampled point and/or segment in this stage in post-processing object (Destination buffer)(For example, processed piece)In with by or not by it is conditional abandon test sampled point and/ Or segment occupies same position, and selectively stop or restore respectively in post-processing object with respectively by or not by attached The sampled point and/or segment of the discarding test of condition occupy any sampled point of same position and/or the later processing of segment.
It is tested in " passing through " or " not passing through " event in conditional discarding, determines whether are any sampled point and/or segment One or more stages of processing assembly line that is to be processed or should being resumed no longer are needed to may include graphics processing pipeline Any desired and suitable stage.It is one or more early that they preferably include passing through as sampled point for graphics processing pipeline The result of phase rejection test can determine at least one or more the stage whether processing of segment etc. should be slowed.For this purpose, place Reason assembly line can be divided into many stages as needed.
In especially preferred embodiment, multiple segments(And all segments in the preferably described stage)And/or Sampled point can be tested concurrently.This is then conducive to the sub conditione for effectively utilizing the sticking patch that can once test for example multiple segments Discarding test.
Determine that the processing for the sampled point and/or segment that its processing can stop can stop and/or according to any desired and suitable Mode omit.Preferably, this is " termination " by the sampled point and/or fragment label that will identify that(In vain)It realizes, phase Closing processing stage, then whether inspection sampled point and/or segment do not terminate before carrying out any be further processed to it(Have Effect).This will then be avoided and/or stopped any non-essential processing of these sampled points and/or segment.
When that will consider independent sampled point, sampled point is preferably suitable in coverage mask by the segment for concern Ground is arranged its value and is marked as in vain.
When considering segment entirety, each segment can be for example with " termination " associated with it(Engineering noise)Bit(For example, A part as its associated fragment data), when which is set, instruction segment need not be handled(And it can be lost It abandons).It does so in a preferred embodiment.Processing stage then can for example check each segment that they are received Inactive bit is to be handled.If it is invalid with all sampled points of fragment association that the test of individual sampled point finally makes, It may also set up the bit.
Alternative arrangement(Such as make the segment queue operated as buffer area with effective label in setting piece Queue is discharged when the invalid tag of section(Buffer area)Row)It can be used as substituting, or in addition use as needed.
Although any " termination " segment can still in a pipeline(But it is untreated), but in a preferred embodiment, it takes Step from assembly line to remove invalid fragments.This point is preferably operable with from assembly line by being arranged in a pipeline Middle removal(What they were received)One or more compression stages of invalid fragments are realized.The compression stage may include for example FIFO(First in first out)Queue, as segment is advanced by FIFO, queue is operated to remove any invalid fragments(To remove Any vacancy).
It, can be according to any desired and suitable side for determining that the sampled point that " restore " its processing and/or segment Formula executes.This can be dependent firstly on how the processing such as segment slows down.
In a preferred embodiment, pass through(Priority status is removed relative to its " slowing down ")Increase the recovery of its processing priority Segment etc..Preferably, segment etc. is restored initial to it(Normally)Processing priority and speed.
Manage at which the segment and/or sampled point that will be slowed processing by pause they by the processing of assembly line by When slowing down, segment and/or sampled point preferably pass through " stopping suspending "(No longer suspend)Their processing and restore.
In a preferred embodiment, wait for segment of the pause " restored " etc. from " rigid pond "(Their processing is at this In suspend)It takes out, and is back to assembly line to be handled according to normal mode.
Manage at which the processing of the segment and/or sampled point that will be slowed by by the sampled point that will identify that and/or Fragment label is " going preferential "(Such as there is the processing priority reduced)Go it is preferential they when the processing of assembly line slows down, Preferably restore segment and/or sampled point by by sampling and/or fragment label being no longer " go preferential ".It is therefore preferred that Suitably update(Change)With suitable " going preferential " metadata of fragment association(Such as sampled point mask)And/or " going preferential " Bit.
Similarly, it is using with the segment queue release operated as buffer area for removing preferential label(If set That has set segment removes preferential label)Queue(Buffer area)When row, go preferential label can be by suitably when segment etc. will be restored Update.
From the above it can be followed that in especially preferred embodiment, if segment and/or sampled point are rejected by early stage (For example, depth)The signal for triggering the processing for slowing down one or more segments in a pipeline etc. is tested and sends, then, If it is tested by all conditional discardings that it is experienced by, triggering stopping processing being sent(It abandons)Its processing is pre- The signal of the one or more segments first slowed down etc.;And if it is not tested by the conditional discarding that it is experienced by, Then sending triggering recovery, it handles the signal of the processing of one or more segments slowed down in advance etc..
It will also be appreciated from the above that its segment for having slowed down in advance of processing and/or sampling will then make its processing stop or Restore, this is dependent firstly on triggering and slows down the segment of sampled point and/or segment and/or the handling result of sampled point.
In especially preferred embodiment, segment is passed through one only about the fully opaque segment execution present invention The event of a or multiple early stage rejection tests is used subsequently to determine whether the processing of any segment in processing assembly line should subtract Slowly equal operation.Therefore, if being transparent segment by the segment of early stage rejection test or one group of multiple segment(That is, non-fully Opaque segment)Or including transparent segment, then segment or one group of segment preferably continue to be handled, it is preferred that It is not used in by event with segment or the associated early stage rejection test of one group of segment and determines any in handling assembly line Whether the processing of section should slow down.
This directly makes potential of the present invention for needing to undergo transparent test and the segment for being clear to coverage test Section or sampled point slow down and " termination " operates operation failure(And it is equal to the transparent segment and/or sampling that directly permission is closer Point can not prevent segment farther out and/or the sampled point fact still visible in final output).
Applicants further recognized that in segment(Or at least with the sampled point of fragment association)It undergoes and is rejected by early stage Test, and meet the above standard that mask is write with full RGB;Segment does not have the mixed function dependent on previous RGBA values;Piece The coloration program of section is not read from piece buffer;Segment is completely opaque;After segment is not based on any reason compulsory execution When phase depth updates, for such segment and/or sampled point, in fact, institute can be immediately determined that in rejection test stage early stage Any other sampled point etc. with same position in a pipeline will be blocked by stating sampled point etc..
This is possible, because for example in early stage depth test, the sampling in a pipeline with same position Point and/or segment can be assumed to be located at the rear of the new sampled point and/or segment by early stage rejection test, and therefore may be used Assuming that by being blocked by those sampled points and/or segment later(If sampled point and/or segment later is opaque)(If logical It crosses early stage depth test, and does not force to carry out post depth update, then it is necessary by the new sampled point and/or segment of test Positioned at same position any sampled point earlier and/or segment in front of).
Although may still " will simply slow down " signal in this case is sent to segment etc. in a pipeline, It, will actually may safely immediately but the applicants have appreciated that when described segment etc. is by early stage rejection test (At this time)The suitable segment etc. of stopping processing in a pipeline,.
Therefore, in a preferred embodiment, the present invention can(And really)It is rejected and is surveyed by early stage using sampled point The result of examination determines whether the processing of another sampled point just handled in graphics processing pipeline can stop(At least can be in morning The sampled point and/or segment that test is known in rejection test stage phase " will repeat to render "(It blocks)Sampling in a pipeline In the case of point and/or segment).
This then of the invention to further decrease in figure compared with for example existing early stage depth test technology The degree of hidden surface is unnecessarily handled in processing assembly line.
Therefore, in especially preferred embodiment, the method for the present invention includes the following steps:
Be sent to renderer in segment with before being handled, about with the fragment association that is generated by rasterizer extremely A few sampled point executes early stage rejection test;And
If at least one sampled point by early stage rejection test, sends forward segment to be handled;And
For the segment for having selectable attribute, as at least one sampled point by early stage rejection test as a result, root Whether the processing of another sampled point in graphics processing pipeline is determined according to the attribute of segment should slow down or graphics process stream Whether the processing of another sampled point in waterline can stop.
For meeting(Potentially)Stop the standard of the processing of other segments in graphics processing pipeline etc. immediately Those of sampled point and/or segment etc., the operation preferably with the above-mentioned processing operation for slowing down segment in assembly line etc. It is similar, it is intended only as slowing down the replacement of the processing of segment in a pipeline etc., the processing of segment etc.(Suitably)Stop ((Immediately)Abandon segment etc.).This point can by and preferably according to it is corresponding with aforesaid operations in a manner of realize and implement, with Slow down the processing of segment in assembly line etc..
" termination " is potentially triggered for the segment by early stage rejection test(It abandons)Another segment in assembly line etc. Standard preferably include:The segment of mask is write with full RGB;Piece without the mixed function dependent on previous RGBA values Section;Coloration program for the segment not read from piece buffer;Fully opaque segment;And it does not force(Pass through Application programmer)Execute the newer segment of post depth.
The stage of graphics processing pipeline can be configured as according to any suitable and desired mode side according to the invention Formula is operated.In a preferred embodiment, the test and more new logic that the stage includes combination, can be operated to hold Row is rejected and/or conditional discarding test, and if passes through(Or do not pass through)Test(It is surveyed at least for conditional discarding Examination)And the segment meets any required standard, then will pass through(Or do not pass through)Event and necessary information associated with it " broadcast " to graphics pipeline the suitable stage.
" passing through " is tested in response to early stage rejection test and conditional discarding(Or " not passing through ")(At least for sub conditione Discarding test)One or more stages of the graphics processing pipeline of event can be configured as according to any suitable and desired Mode executes this process.Preferably, they have with their associated agencies, it is described agency to the segment in the stage of concern It is responsible for and receives test " passing through " or " not passing through " information, and followed by operation in their " domain "(Stage)Middle knowledge Its not any processing can be slowed or restore and/or no longer need processed segment and/or sampled point, and then slow down or Restore(It restores)The processing of those segments and/or sampled point and/or prevent any unnecessary of those segments and/or sampled point It is further processed.
In some embodiments, graphics processing pipeline includes storing data as described herein and/or storage for holding One or more memories and/or memory device of the software of row process described herein, and/or led to them Letter.Graphics processing pipeline can also be communicated with host microprocessors, and/or with the data that are generated based on graphics processor The display of display image is communicated.
The renderer of graphics processing pipeline should be operable to render(Coloring)Its graphics fragment received, to generate the phase The output pattern fragment data of prestige, as known in the art.The renderer of graphics processing pipeline may include it is any suitable and Desired rendering element, and can be constructed according to any suitable and desired mode.Thus, for example, graphics processing pipeline Renderer may include fixed function rendering pipeline, including one or more fixed function rendering stages, such as texture mapping Device, mixer, atomization unit etc..In a preferred embodiment, renderer includes fragment shader(Tinter assembly line)( Flow line stage is programmed, it is operable and programmable to execute fragment shader program in segment, to render them).Make When with fragment shading, the present invention can be especially advantageous, since fragment shading can be relatively expensive processing, and more effectively in early days Hidden surface is eliminated especially advantageous in place of having carried out fragment shading.
It should be appreciated by those skilled in the art that renderer will handle the segment of its reception, the piece that output renders is subsequently generated Segment data, wherein the fragment data rendered is then preferably written to the output buffer in external memory, such as frame buffer, To be used(For example, showing frame over the display).
Regardless of the available output form of graphic system, the present invention all can be used.Thus, for example, rendering Output, which is intended to be formed, to be used for(For example, on screen or printer)The image of display(Frame)When, the present invention can be used(And one It is particularly the case in a preferred embodiment).However, the present invention can also be used to render the feelings that output is not intended to display Condition, such as it is the texture generated using graphic system to render output(For example, in " rendering to texture " operates), Huo Zheshi On border, the output generated using graphic system is the data array of any other form.
The various functions of the present invention can be executed according to any desired and suitable mode.For example, the function of the present invention can root According to needing to realize in hardware or in software.Thus, for example, the various functions element of the present invention, processing stage and " device " can Suitable one or more processors including operable to perform various functions etc., it is one or more controllers, functional single Member, circuit, processing logic, microprocessor arrangement etc., such as programmable suitably construction operated in a manner of desirably Specialized hardware element or processing circuit and/or programmable hardware element or processing circuit.
It is also noted herein that it should be appreciated by those skilled in the art that various functions of the present invention etc. can be at given place It concurrently replicates and/or executes on reason device.Similarly, various processing stages can share processing circuit etc. as needed.
Present invention can apply to have the graphic system of " assembly line " arrangement, graphics processor and renderer Any suitable form or construction.Graphics processing pipeline may include any suitable and phase that graphics processing pipeline includes normally The processing stage etc. of prestige.In especially preferred embodiment, graphic system is the graphic system based on piece.Class As, in a preferred embodiment, the graphic system is multiple nucleus system(That is, including multiple graphics process cores).
Therefore, the present invention is extended to including any one of various aspects according to invention described herein or more Equipment, or according to the method for any one of various aspects of invention described herein or more operate graphics processor And graphics processing platform.Using any hardware is condition necessary to execution specific function discussed above, the graphics processor Any one of usual functional element that graphics processor includes etc. or more or whole can be also comprised.
It should also be realized by those skilled in the art that the aspect being described and embodiment of the present invention can include suitably It is as described herein preferably with any one of optional feature or more or all.
It according to the method for the present invention can be at least partially by the software implementation of such as computer program.It is therefore seen that When in terms of other aspects, the present invention provides when on data processing equipment particularly suitable for executing side as described herein The computer software of method, and it is adapted for carrying out the meter for including code device of all steps of one or more methods as described herein Calculation machine program(When described program is run on a data processing system).Data processing system can be microprocessor, may be programmed FPGA(Field programmable gate array)Deng.
Therefore, the present invention can suitably be embodied as the computer program product for computer system.This realization can wrap It includes and is fixed on tangible medium(Such as non-transitory computer-readable medium, for example, disk, CD ROM, ROM, RAM, flash memory or hard Disk)On series of computation machine readable instruction.This realization further includes that can be passed through by modem or other interface arrangements Tangible medium(Including but not limited to, optics or analog communication line)Or utilize wireless technology(Including but not limited to, microwave, red Outer or other transmission technologys)Intangibly it is transmitted to the series of computation machine readable instruction of computer system.The series of computation Machine readable instruction realizes all or part of of function previously described herein.
Description of the drawings
Only by way of example and multiple preferred embodiments of the present invention will be described with reference to the accompanying drawings now, in attached drawing:
Fig. 1 schematically shows the embodiment of graphic system according to the present invention.
Specific implementation mode
Multiple preferred embodiments of the present invention will now be described.By referring especially to the present invention in graphic system Use these embodiments of description.However, as described above, present invention can apply to include early stage " data entity " rejection test Other pipelined data processing systems.
Fig. 1 schematically shows the graphics processor 1 that can be operated according to the present invention.
Fig. 1 shows the main element and flow line stage of the graphics processor 1 of the operation about present embodiment.Ability Field technique personnel are it should be understood that may be present other elements of graphics processor not shown in FIG. 1.Herein it should be noted that Fig. 1 is only illustrative, and even if the functional element and flow line stage that show are shown schematically as detaching in Fig. 1 Stage, such as they can also share important hardware circuit in practice.It should also be understood that graphics processor shown in FIG. 1 Each stage, element and unit etc. can realize as needed, and will therefore include for example for execute necessary operation and The suitable circuit of function and/or processing logic etc..
Graphic system shown in FIG. 1 is the system based on piece.Therefore, as it is known in the art, graphics process Device 1 will generate and render output data array(The output frame such as to be generated)Piece.(The present invention can be equally applicable to other System, all Immediate Mode rendering systems as discussed above.)As it is known in the art, output data array can be usually purport It is being shown in display device(Such as screen or printer)On output frame, but can also for example including graphics processor " render To texture " output etc..
Fig. 1 schematically shows the graphic primitive generated for being input to rasterizing processing(Polygon)After 2 Flow line stage.Therefore, graph data at this time(Vertex data)Deformation and Lighting operations are undergone(It is not shown), and primitive Setup phase(It is not shown)The primitive to be rendered is set in response to ordering and being provided to the vertex data of graphics processor 1, As known in the art.
As shown in Figure 1, this Partial Fragment processing assembly line of graphics processor 1 includes multiple processing stages, multiple place The reason stage includes:Rasterizing stage 3, early stage classification ZS(Depth and template)Test phase 4, early stage ZS(Depth and template)Stage 13, the rendering stage and later stage ZS of 6 form of fragment shading stage(Depth and template)Test phase 7.
As it is known in the art, the rasterizing stage 3 is operated renders output will be constituted(For example, figure to be shown Picture)Primitive grid turn to individual graphics fragment to be handled.Therefore, rasterizer 3 receives graphic primitive 2 to carry out wash with watercolours Dye, primitive grid, which is turned to sampled point and generated, has suitable position(Indicate suitable sampling location)Graphics fragment, with Render primitive.In the present embodiment, indicate multiple by each graphics fragment that rasterizer 3 generates(Usual 4)Sampling Position(It is associated with the multiple sampling location).(Certainly, other arrangements will be possible).Each graphics fragment and instruction Segment indicates the coverage mask association of which sampled point of multiple sampling locations, it is practically used for rendering(That is, practical by paying close attention to Primitive covering).
In the present embodiment, rasterizer 3 is classification rasterizer, is operated to be adopted relative to smaller and smaller Sampling point sticking patch(Therefore, correspondingly, segment sticking patch)Primitive is repeatedly tested, until corresponding to the minimum sticking patch of 2x2 segment groups Size(That is, until can be rasterized into as a series of sampled points of 2x2 segment groups), abandon not(At least partly)Cover primitive Any sticking patch.Each sticking patch of test corresponds to one group of given segment.
This point is realized by rasterizer 3:I.e. since the big sticking patch in post-processing object region and test the base of concern Whether member is in the sticking patch., if it is not, then abandon entire sticking patch, and test next sticking patch, etc..On the other hand, such as Fruit finds that primitive is located in the sticking patch(To cover the sticking patch at least partly), then the sticking patch is again divided into 4 parts, And each " sub- sticking patch ", etc. then is tested according to same way, until reaching minimum patch size.
Once reaching minimum patch size(That is, covering the sticking patch of the 2x2 segments of identified primitive at least partly), The individual sampled point that rasterizer 3 is just then tested in the final sticking patch is to determine whether sampled point is covered by the primitive. Rasterizer 3, which then corresponds to, to be found to be generated by the sampled point that primitive covers and exported individual segment, to be rendered.
No matter whether sampling location is capped(That is, in fact, no matter whether segment is for rendering the sampled point(It is directed to The sampled point, no matter whether its data should be stored)), for each sampling in one group of sampling location with fragment association Position, each fragment association of the rasterizer 3 also with the instruction of the coverage mask of bitmap form.
Certainly, other rasterizing arrangements are possible.
As shown in Figure 1, rasterizer 3 also with early stage " classification " depth(Z)It is associated with the template test stage 4.The classification is deep Degree and template test stage 4 execute " early stage " depth and template test to determine this on the sticking patch generated by rasterizer 3 Whether a little sticking patch can be removed.
Therefore, the sampled point generated by rasterizer(In fact, segment)Each sticking patch be sent to early stage be classified it is deep Degree and template test stage 4, then in sampled point(Segment)Sticking patch on execute Z(Depth)Test is mended with determining at this stage Whether piece can be dropped(It rejects).Therefore, early stage hierarchy depth and template test device 4 are received for it from rasterizer 3 each A sticking patch exports depth value range by carrying out suitable depth-sampling on sticking patch, and the depth value range and elder generation is leading The sampling covered with sticking patch for going out and storing(Segment)The associated depth value range in position is compared, and is to attempt determining sticking patch It is no to block the other segments and sampled point to be rendered, or whether repeat the other segments to be rendered and sampled point(Example Such as, it will subsequently occur on assembly line, or the segment and sampled point being rendered).At the same time, early stage template is executed to survey Examination.
If just tested sticking patch is lost not by early stage depth and template test in any be further processed It abandons(It rejects).
If just tested sticking patch is back to rasterizer 3 with further by early stage depth and template test It is again divided into smaller " sub- sticking patch ", as discussed above.Each " sub- sticking patch " is subsequently returned to early stage depth and template is surveyed Examination device 4 is test, etc., until reaching minimum patch size.
When executing depth and template test on the sticking patch in the multiple sampled points received from rasterizer 3, early stage is classified deep Depth value range is stored in depth and stencil buffer 5 used in degree and template test stage 4.It is indicated for buffer Each patch size and position, by depth value(And stencil value)Range be stored in depth and stencil buffer 5(Especially For rasterizer 3 for the producible each patch size of piece being processed and position).
The depth value range stored for each sticking patch is initially set to default value, or is set as the desired depth of sticking patch It is worth range(If can determine).(It, can the possible depth that can have of the previously known primitive for piece in some arrangements Angle value range.Then, it can be used for the range of the desired depth value of the sticking patch for the setting concern of depth buffer 5.)Then, with It through early stage hierarchy depth and template test stage 4, early stage depth and template test stage 13 and post depth and template survey By each depth and template test, the sticking patch depth value range of storage obtains more the sticking patch and/or sampled point that the examination stage 7 tests Newly.
Even if the segment earlier in the assembly line of same position does not complete any depth or template test also(Example Such as, early stage hierarchy depth and template test 4 and early stage depth and template test 13 are not undergone, and do not undergo post depth and mould Board test 7), for multiple sampling point positions of the piece just rendered in depth and stencil buffer 5(Therefore, segment)Benefit The depth value of piece storage expected range also implies that early stage hierarchy depth and template test device 4 can be generated still in regard to rasterizer 3 The sticking patch of sampling point position execute depth and template test.This is because even if being also not carried out the depth about segment earlier Test, desired depth value range can also be used for determining depth test(Such as)There can be which kind of result.Therefore, this allows early stage Hierarchy depth and template test 4 are used for(Potentially)Mode in the embodiment makes the place of the segment earlier in assembly line Reason stops, even if segment does not undergo depth or template test also actually earlier is also such for these.
The range of sticking patch storage and test depth value for sampling point position means the larger sticking patch of sampling point position It can be easy by early stage depth and template test(Since the range of storage allows test to determine whether sticking patch will store completely Range except, and thus, for example pass through early stage hierarchy depth and template test completely).It therefore, such as will be further below It discusses, this can be conducive to broadcast the early stage depth and mould in the much bigger region that post-processing object is influenced in single process cycle Board test is by event, to which it can therefore can(Potentially)Make the whole fragment in patch area in a process cycle The processing of group stops(Without with for example the processing of each segment must potentially being made one by one to stop).
Early stage hierarchy depth and template test stage 4 are configured as operating in the way of suitably guarding, such as this field In it is known.
Once reaching minimum patch size(In this embodiment, the sticking patch of 2x2 segments), rasterizer 3 will just indicate The sticking patch of Z and template test stage 4 are classified by early stage(Therefore, sampled point)Segment be published to graphics processing pipeline its Remaining part point, to be handled.
The first part of the processing is to make to issue by rasterizer 3 in early stage depth and template test stage 13(Output) Each segment by early stage depth and template test.This early stage depth and template test stage 13 with pass through rasterizer 3 publication fragment associations it is individual(Covering)Depth and template test are executed on sampling location(That is, being differentiated per sampled point Rate).
Therefore, early stage depth and template test device 13 use the every sampling location being stored in depth and stencil buffer 5 Depth and stencil value.Therefore, in addition to every sticking patch depth value range, depth and stencil buffer 5 indicate each for buffer A sampled point(In particular for each sampling point position of piece being processed)Suitable depth is stored respectively(Z)Value and mould Plate value.When just being passed through by the sampled point that early stage depth and template test stage 13 and post depth and template test stage 7 test When each depth and template test, these values are stored in depth and stencil buffer 5.
In this embodiment, depth and stencil buffer 5 are configured as two different buffers(But they can be In same physical storage), a buffer storage is per sticking patch depth bounds, and another storage is per sampling depth value.When So, other arrangements are possible.
Early stage depth and template test stage 13 are configured as operating in the way of suitably guarding again, such as this field In it is known.
Therefore, pass through " queue " 12(The function and purpose of this queue 12 will be discussed in greater detail below)Morning will be passed through The segment of phase depth and template test stage 13(That is, at least one pass by early stage depth and template test stage 13 The segment of the sampling location of connection)It is sent forward to the fragment shading stage 6(Renderer), as shown in Figure 1.
(It is not rejected by early stage depth and template test stage 13 by early stage depth and the segment in template test stage 13, As known in the art.)
The fragment shading stage 6 executes suitable segment processing in the segment of its reception(It renders)Operation is rendered with being directed to Output(For example, the display for segment)Segment is handled, to generate suitable fragment data etc., as known in the art.
Segment processing may include any suitable and desired fragment shading processing, and fragment shading is such as executed in segment Program, to segment application texture, to segment application mixing, atomization or it is other operation etc., to generate suitable fragment data, such as this Known in field.In the present embodiment, the fragment shading stage 6 uses tinter assembly line(Programmable fragment colours)Shape Formula, but if necessary, it such as in addition uses or other arrangements of substitution fixed function fragment shading unit is also Can with.
Followed by " later stage " segment Z and template test stage 7, inter alia,(If not undergo early stage for example The stage 7 is executed in the segment of Z and template test)Segment of the stage 7 in coloring(In the covering of fragment association with coloring On sampled point)The end of upper execution pipeline depth test, to determine whether the sampled point that the segment rendered indicates will repeat wash with watercolours Contaminate the segment that its value is currently stored in piece buffer 5(That is, determining the segment for being issued from the fragment shading stage 6 Whether fragment data should be stored in piece buffer(It should substitute or change the piece buffer for the segment being rendered In fragment data)).
Therefore, the segment that post depth test phase 7 will be issued from the fragment shading stage 6(With the fragment association)Depth Value is stored in the sampling location for concern in depth buffer 5(Per sampling location)Depth value is compared.Pass through The depth value of the sampled point of post depth test 7 also suitably writes Z- buffers 5 to be updated, as known in the art 's.
This later stage segment depth and template test stage 7 also execute any necessary template test in segment.
By the segment of later stage segment test phase 7 then by remaining any operation needed in segment, such as with frame Buffer mixing, shake etc.(It is not shown).
Finally, output fragment data value writes suitable piece buffer 8, as known in the art, the piece buffering Device 8 is directed to each sampled point that buffer indicates(Substantially it is directed to each sampled point of piece being processed)Storage is suitable Value(Such as color value).
Once having been processed by each piece, data are just for example exported from piece buffer 8 to main memory(For example, Frame buffer in main memory)(It is not shown)To be stored, and next piece is subsequently processed, etc., until It has handled enough pieces and has been exported with generating entire render(For example, frame to be shown(Image)).
Certainly, other arrangements of assembly line are handled for segment to be possible.
Described above is the basic rasterizings of graphic system shown in FIG. 1 and rendering to handle.Now, it will correspondingly retouch State the operation of graphic system shown in FIG. 1 according to the embodiment of the present invention.
According to the present invention, present embodiment is respectively using the sticking patch by early stage hierarchy depth test 4 as a result, or pass through The segment of early stage depth test 13 as a result, to determine whether the processing of other segments in graphics processing pipeline should subtract Slowly or can stop.
Therefore, as shown in Figure 1, early stage hierarchy depth and template test stage 4 and early stage depth and template test stage 13 It is configured as:If the sticking patch or segment of segment respectively by corresponding early stage rejection test, not only pass sticking patch or segment Be handed to processing assembly line in its next stage, but also " will pass through " with early stage rejection test the relevant information of event broadcast to Each stage of assembly line(As shown in the dotted line 9,10,11,14 in Fig. 1).They be additionally configured to for by early stage depth Test(It can realize here)Fragment association sampled point it is slow using associated depth value and/or stencil value update depth and template Rush device 5.
In the present embodiment, rejection test " passes through " broadcast of event and the update of depth buffer etc. not for logical All sticking patch and segment for crossing early stage hierarchy depth test 4 and early stage depth test 13 execute, but only for meeting specific mark It is accurate(With particular community)Sticking patch and segment execute.It can avoid the mistake when segment later is by early stage depth test in this way Ground slows down and abandons the segment in assembly line.
Present embodiment makes in early stage hierarchy depth and template test unit 4 and early stage depth and template test unit 13 " pass through " whether event should be broadcasted to assembly line and early stage depth with " automatic detection " scheme to determine early stage depth test Test " passing through " event broadcasts the form that take.
For the early stage depth test " passing through " for stopping the processing of other segments in triggerable graphics processing pipeline Event is broadcasted(It sends)To assembly line, this automatic detection scheme has following demand:New sticking patch or segment needs to have passed through Early stage z/s tests(And it is tested by early stage z/s rather than later stage z/s test processes);New sticking patch or segment needs have full rgb Write mask(Z/ templates have been written to thereon)With the mixed function independent of previous rgba values;For new sticking patch or segment Tinter cannot read piece buffer;And new sticking patch or segment need not be forced to carry out the update of later stage z.
(Due to the fact that new sticking patch or segment need to force to carry out the update of later stage z:Such as:Transparent test;It is transparent To covering;Tinter includes to abandon;It includes to abandon to mix tinter;Or the segment earlier in tinter forces to carry out the later stage Z updates.Therefore, this " forcing the update of later stage z " demand means:When being tested by early stage Z only for fully opaque Sticking patch and segment execute the operation for the processing for stopping other segments in assembly line immediately.This directly allows closer transparent The fact that sticking patch or segment can not prevent segment farther out still visible in final output.)
The new sticking patch or segment for meeting the above standard is triggered other segments in triggerable graphics processing pipeline Processing stopping early stage depth test " pass through " event broadcast(It sends)To assembly line.If sticking patch or segment do not meet this A little standards, then " the automatic detection " in early stage hierarchy depth and template test unit 4 and early stage depth and template test unit 13 Scheme is it is later determined that will be in triggerable graphics processing pipeline by the way that whether the sticking patch or segment of early stage depth test should trigger Other segments processing the early stage depth test slowed down " pass through " event broadcast(It sends)To assembly line.
For the early stage depth test of the processing of other segments in triggerable graphics processing pipeline slowed down is " logical Cross " event broadcast(It sends)To assembly line, the automatic detection scheme has following demand:New sticking patch or segment needs to have led to Cross the test of early stage z/s(And it is tested by early stage z/s rather than later stage z/s test processes);New sticking patch or segment need to have complete Rgb writes mask(Z/ templates have been written to thereon)With the mixed function independent of previous rgba values;For new sticking patch or piece The tinter of section cannot read piece buffer;And new sticking patch or segment need not be forced to carry out the update of later stage z(Later stage z is more New reason has:It is transparent to test, be clear to covering, tinter comprising discarding, mixing tinter comprising in discarding or tinter Segment earlier with same position force to carry out post depth update).
Therefore, in the present embodiment, allow(It uses)Due to the fact that and enforcing newer of post depth Section trigger action with(Potentially)Slow down the processing of other segments and/or sampled point, the reason is:Transparent test is clear to Coverage test, tinter include to abandon;It includes to abandon to mix tinter;Or the segment earlier in tinter is forced after carrying out Phase depth updates.
The influence of these standards mainly will be by any type of conditional discarding of the part as its processing The segment of test will be triggered the early stage depth test of the processing of other segments in triggerable graphics processing pipeline slowed down " passing through " event is broadcasted to assembly line, rather than by the stopping of the processing of other segments in triggerable graphics processing pipeline Early stage depth test, which " passes through " event, broadcasts to assembly line.This is because in segment by conditional discarding state(Test) When, even if by early stage depth test, it can not determine that the segment will finally hide far and away in depth test stage early stage The segment of gear in a pipeline.
Although present embodiment tests 4 or deep in early days to trigger using " automatic detection " scheme with by early stage hierarchy depth The sticking patch or the related early stage depth test of segment of degree test 13 can also be used mode bit to make by the broadcast of event information For the spare arrangement for this.Mode bit can be set as closing " automatic detection " scheme, and alternatively, by another (For example, rejection test passes through event " activation ")The setting of mode bit(Whether)Pass through event information to trigger early stage rejection test Broadcast.Whether this will then enable such as application programmer to be arranged will execute rejection test and pass through event action(Pass through Suitable mode bit is set).
Early stage hierarchy depth and template test stage 4 and early stage depth and template test stage 13 include combination test and More new logic, they can be operated to execute rejection test, and if be suited the requirements by test and sticking patch or segment Standard, then will by the suitable stage of event and necessary location information associated with it " broadcast " to graphics pipeline, and And update is such as the depth information in depth buffer.
In the present embodiment, when the sticking patch of " qualified " sampled point(That is, meeting triggering " stopping processing " or " slowing down place The sticking patch of the sampled point of the standard of the transmission of reason " signal)When by early stage hierarchy depth test 4, early stage hierarchy depth and template Test phase 4 will be covered by the sticking patch of test(X, y)9,10,11 are broadcasted to queue 12, fragment shading stage 6, grid in position It formats device 3 and early stage hierarchy depth and template test stage 4 itself(As shown in the dotted line 11 in Fig. 1).Broadcast message further includes Whether broadcast singal is for determining whether the processing of any segment should stop(Whether any segment should be dropped), or determine Any segment processing whether the instruction that should slow down, that is, whether broadcast singal is segment " termination " signal or segment " slowing down " The instruction of signal.It will such as be indicated followed by broadcast singal type in these stages of description later, graphics processing pipeline Estimate whether the processing of their currently processed any segments can stop or whether should with location information(Suitably)Slow down.
In the present embodiment, the test of early stage hierarchy depth is broadcast to hierarchy depth and template test stage by event 4 and rasterizer 3, because rasterizer 3 and early stage hierarchy depth and template test stage 4 are as discussed above ground according to repetition side Formula operates, and the sampling being previously generated for for example still undergoing rasterizing and early stage hierarchy depth and template test processing may be present The sticking patch selected can omit their place wherein if can determine that the sticking patch of such as sampling location later repeats to render them Reason.
In addition to early stage hierarchy depth to be tested to the other stages broadcasted by event to graphics processing pipeline, early stage divides Grade depth(Z)It is additionally configured to the template test stage 4(When appropriate)It is adopted using for what is tested by early stage hierarchy depth Associated depth value range and/or stencil value the update depth and stencil buffer 5 of the sticking patch of sampling point.Therefore, this so that these are slow Rushing device can include(Such as)It has undergone(And pass through)The depth value range of the sticking patch of early stage hierarchy depth and template test 4 is most New record, so that early stage hierarchy depth and template test are more efficient.
This update of depth buffer etc. is executed according to suitably conservative manner, can be at the place of sticking patch etc. to avoid update Lead to any risk of mistake in reason.
Correspondingly, in the present embodiment, when " qualified " segment is by early stage depth test 13, early stage depth and mould The board test stage 13 will be covered by the segment of test(X, y)Position and the instruction of broadcast singal type(According to the segment of concern Attribute)Broadcast is 14 to queue 12, and to the fragment shading stage 6(As shown in the dotted line 14 in Fig. 1).It such as will be in retouching later It states, these stages of graphics processing pipeline estimate their current places followed by the instruction of broadcast singal type and location information Whether whether the processing of any segment of reason can stop or should(Suitably)Slow down.
Once again, in addition to early stage depth test to be broadcasted to other stages to graphics processing pipeline by event, it is early Phase depth(Z)The template test stage 13 is configured as utilizing for the sampled point with the fragment association by early stage depth test Associated depth value and/or stencil value update depth and stencil buffer 5.Therefore, this enables these buffers to include(Example Such as)It has undergone(And pass through)The state-of-the-art record of the depth value range of the sampled point of early stage hierarchy depth and template test 13, to So that early stage and later stage hierarchy depth and template test are more efficient.
In response to broadcasting morning by early stage hierarchy depth and template test stage 4 and early stage depth and template test stage 13 Phase depth test " passes through " event segments " termination " signal(That is, instruction should determine the place of any segment in response to broadcast singal Whether reason can stop), as early stage rejection test " pass through " event as a result, receive " terminations " signal broadcast processing assembly line Stage followed by the location information in broadcast singal come determine any segment that they include currently whether no longer need by Processing.By will currently occupy all segments of flow line stage(X, y)Position with by passing through early stage hierarchy depth and template Broadcast " termination " signal designation that test phase 4 or early stage depth and template test stage 13 broadcast(X, y)Position(That is, with By early stage rejection test and trigger segment " termination " signal broadcast segment and/or sticking patch(X, y)Position)It is compared To execute this process(In this way, in fact, identification will be blocked by sticking patch or segment by early stage depth and template test Currently any segment in this stage).
Be subject to also correspond to for make segment processing stop specific other standards, then stop have and pass through Early stage rejection test and trigger segment " termination " signal sticking patch or segment it is identical(X, y)The place of any current clip of position Reason.Specifically, also checking for potential to abandon(That is, will be blocked)It is any whether the segment in assembly line should be based on Other reasons and continue to be handled, the reason for example, because its have such as with unsolved occlusion query it is associated still by The side effect needed.If the segment being blocked does not have its subsidiary still effective occlusion query(And without other The side effect needed), then abandoned(It, which is handled, stops)When if it has its subsidiary effective occlusion query really (Or some other side effects being still required), then do not abandoned(That is, continuing its processing).Pass through the graphics process stream of concern The stage of waterline executes this inspection.
In early stage rejection test segment " termination " " " event according to suitably guard by way of execute to no longer needing The determination of segment to be processed makes it no longer receive the risk of subsequent processing to reduce improperly discarding segment.
Test to each stage pipeline of graphics processing pipeline all segments in the stage.This makes assembly line rank Section can with early stage rejection test by event produce possible rejecting machine can the identical rate of rate abandon segment.
It is " termination " by the fragment label that will identify that(In vain)The processing of the segment in processing stage later is set to stop Only.In order to promote this point, make each segment that there is " termination " bit associated with it(For example, as its associated segments According to a part)If be configured to the bit, it indicates that the segment is not required to be processed(And it can drop).Assembly line Processing stage is configured to check for them and receives with the termination bit of each segment handled(And be therefore followed by subsequent processing or The segment is not handled).
Alternative arrangement(Such as make the segment queue operated as buffer area with effective label in setting piece Queue is discharged when the invalid tag of section(Buffer area)Row)It can be used as substituting, or in addition use as needed.
Early stage rejection test segment " termination " is broadcasted by event to the tool of each stage of its graphics processing pipeline Have in its local domain(That is, in the stage of concern or the part of processing stage)All segments responsible corresponding generation Reason.Each agency will be maintained at about the information of the segment in its local domain, and can be operated in response to its reception Fragment label is to terminate by event by early stage rejection test segment " termination "(In vain), to avoid and/or stop to them Unnecessary processing.Agency is configured to all segments in the local domain for concurrently testing them.
In response to broadcasting morning by early stage hierarchy depth and template test stage 4 and early stage depth and template test stage 13 Phase depth test " passes through " event segments and " slows down " signal(That is, instruction should determine the place of any segment in response to broadcast singal Whether reason should slow down), as early stage rejection test " pass through " event as a result, receiving the processing assembly line of " slowing down " signal Multi-stage broadcast determines whether the processing of any segment that they include currently answers followed by the location information in broadcast singal This slows down.
By will currently occupy all segments of flow line stage(X, y)Position with by passing through early stage hierarchy depth and mould The broadcast that board test stage 4 or early stage depth and template test stage 13 broadcast " slows down " signal designation(X, y)Position(That is, With by early stage rejection test and trigger segment and/or sticking patch that segment " slows down " broadcast of signal(X, y)Position)Compared Relatively execute the process(In this way, in fact, identification will be blocked by sticking patch or segment by early stage depth and template test Currently any segment in this stage).
Be subject to also correspond to for postpone segment processing specific other standards, then slow down with and pass through morning Phase rejection test and trigger segment " slow down " signal sticking patch or segment it is identical(X, y)The place of any current clip of position Reason.Specifically, also checking for whether the potential segment by the assembly line being slowed should be continued based on any other reason Handled, the reason for example, because its have such as with the associated side effect being still required of unsolved occlusion query.Such as The segment being slowed is not had its subsidiary still effective occlusion query by fruit(And the side effect without other needs), Then slow down its processing, but if it has its subsidiary effective occlusion query really(Or some other pairs being still required Effect), then do not slow down its processing.This inspection is executed by the stage of the graphics processing pipeline of concern.
According to correspondence is executed by way of suitably guarding, this subtracts in early stage rejection test segment " slows down " " " event The determination of the segment of its slow processing, to reduce the risk of incorrect or the irrelevantly segment in delay assembly line processing.
Test to each stage pipeline of graphics processing pipeline all segments in the stage.This makes assembly line rank Section can be to produce the identical rate delay of the possible rate of " slowing down " chance with early stage rejection test by event(Subtract Slowly)Segment.
Early stage rejection test segment " slowing down " is broadcasted by event to the tool of each stage of its graphics processing pipeline Have in its local domain(That is, in the stage of concern or the part of processing stage)All segments responsible corresponding generation Reason(It can be processing same agency of segment " termination " the early stage rejection test by event).Each agency will be about the segment Information be maintained in its local domain, and can be operated in response to its reception early stage rejection test segment " slowing down " pass through Fragment label is to go preferentially by event(Slow down)To slow down their processing.Agency is configured to concurrently test theirs All segments in local domain.
The processing of " slowing down " segment is slower compared with normal, it should be noted that it is desirable that, the processing of segment is phase Slow down or postpone for the speed that it is normally handled by assembly line, and un-segmented " being slowed down " at this time abandons(Stop forever Only)To be not further processed by assembly line.
In the present embodiment, arrangement is so that the processing that the processing of " slowing down " segment slows to triggering segment slows down Segment will be often beyond the degree of " slowing down " segment point in assembly line so as to triggering concern " slowing down " segment processing The processing of the segment slowed down will often(It is likely to)Sub conditione is completed before the processing of " slowing down " segment in a pipeline is completed Discarding test.Such as by description later, this then so that " triggering " segment can be used in(Potentially)It abandons(" termination ") Slow down segment, is further processed by assembly line to prevent it.
In the present embodiment, the processing that the segment that will be slowed is processed to by following steps slows down:Pass through flowing water Line goes their processing preferentially(That is, the priority by reducing their pipeline processes).This for " slowing down " segment by assigning It gives for buffer area access and/or for the lower priority of other processing by assembly line(Relative to the segment not slowed down) To realize.
It is " going preferential " by the fragment label that will identify that(For the processing priority with reduction)Segment " is gone excellent First ".Related assembly line processing stage then checks whether segment is marked as " going excellent before carrying out any processing to segment First ", and segment described in normal priority or the priority processing of reduction is therefore then used.
Each segment has " going preferential " bit associated with it(For example, one as its associated fragment data Point)If the bit is set, it indicates that the processing of segment is gone preferentially.Processing stage then can check they receive with " going preferential " bit of each segment handled.
The alternative arrangement of the processing for slowing down and postponing segment can be used as needed.For example, excellent with going The segment queue of first label operated as buffer area is discharging queue provided with segment when removing preferential label(Buffer area) Capable arrangement can be used as substituting or in addition use as needed.
Another suitable arrangement can be:Segment with instruction to be processed is arranged in segment pond, completion is worked as When instruction, and when there is the cache hit for preparing for executing and instruction, suitable segment is then taken from segment pond Go out and executes.It is used as and additionally examines by increases priority state when determining whether allow to take out segment from segment pond Worry factor, segment then can be such that their processing priority reduces.
Similarly, segment can be such that their processing slows down by suspending them by the processing of assembly line(For example, and excellent Selection of land, until " triggering " segment and/or sampled point complete the conditional discarding test of one or more).This stream can be achieved The pause of segment processing in waterline, for example, being arranged in " pond of ossifing by any segment for being processed to be suspended (zombie pool)”(Their processing suspends herein)In.
When as sticking patch by early stage hierarchy depth test 4 or segment triggered in advance by the result of early stage depth test 13 Segment " slows down " transmission of signal(Broadcast)Segment when undergoing its conditional discarding test, present embodiment is removed using attached Condition discarding test discarding or continue with(Conventional)Segment is also used except the result of the sampled point of fragment association By or the place of other segments earlier in graphics processing pipeline is not determined by the conditional result for abandoning test Whether reason can stop or should be resumed.
Therefore, it is configured as shown in Figure 1, the conditional tinter assembly line 6 for abandoning test will be executed, is touched when in advance The transmission that segment " slows down " signal is sent out(Broadcast)Segment when undergoing conditional discardings test, not only discarding segment or make Segment advances to the next stage of its processing(Depending on test result), and will about conditional discarding test " passing through " or The information of " not passing through " event was broadcasted to multiple stages of assembly line(As shown in the dotted line 20,21,22 and 23 in Fig. 1).
For the advance transmission for triggering segment and " slowing down " signal(Broadcast)All segments execute conditional discardings survey The broadcast of " passing through " or " not passing through " event of examination.
In the present embodiment, tinter assembly line 6 determines conditional discarding test " passing through " or " not passing through " event Whether should broadcast to assembly line and conditional test " passing through " or " not passing through " event that abandons and broadcast the shape that take Formula.Broadcast further includes " timestamp " of primitive(To only primitive earlier(Potentially)By effect of signals).
When segment is tested by the final conditional discarding that it is experienced by(That is, being experienced by by it all attached The discarding of condition is tested)When, conditional discarding test " passing through " event is broadcasted in triggering(It sends)It is described attached to assembly line Discarding test " passing through " event of condition can trigger in graphics processing pipeline and triggering into graphics processing pipeline By conditional discarding test " passing through " event broadcast(It sends)The processing of other segments before to the segment of assembly line stops.
Conditional discarding is not tested by the broadcast of " not passing through " event by the conditional segment triggering for abandoning test(Hair It send)To assembly line, it is described it is conditional abandon test " not passing through " event can trigger graphics processing pipeline in and enter figure Shape handles the broadcasting conditional discarding test " passing through " event in triggering of assembly line(It sends)To before the segment of assembly line In advance slow down segment processing restore(It restores).
The test and more new logic that tinter flow line stage 6 includes combination, can be operated conditional to execute Test is abandoned, and(If the satisfactory standard of segment,)Will by or do not pass through event and associated with it necessary believe " broadcast " is ceased to the suitable stage of graphics pipeline.
In the present embodiment, when " qualified " segment(That is, meeting triggering " backward ", " stopping processing " or " restoring (Restore)The segment of the standard of the transmission of processing " signal)When undergoing its conditional discarding test, tinter flow line stage 6 It will be by the segment covering of experience test(X, y)Broadcast 20,21 to fragment shading stage 6 and queue 12 in position(As needed, may be used It also broadcasts to rasterizer 3 and early stage hierarchy depth and template test stage 4).Broadcast message further includes being about broadcast singal It is no to be used to determine whether the processing of any segment stop(Whether any segment should be dropped)Or determine any segment Whether processing should restore(It restores)Instruction(That is, broadcast singal is " segments end backward " signal or " segment backward Restore " signal)With the timestamp of " new and old " of the segment of instruction concern.Such as by description later, graphics processing pipeline These stages are then indicated using broadcast singal type and position and " new and old " information estimate that they are currently processed any Whether whether the processing of segment can stop or should(Suitably)Restore.
In response to the conditional broadcast for abandoning test " passing through " event " segments end backward " signal(That is, instruction is rung It should should determine whether the processing of any segment can stop in broadcast singal), " passing through " event is tested as conditional discarding As a result, processing assembly line reception " terminations " signal broadcast stage determined followed by the location information in broadcast singal It is to be processed whether any segment that they include currently no longer needs.By will currently occupy all of flow line stage(It is older 's)Segment(X, y)Position and broadcast " termination " signal designation by being broadcasted by tinter flow line stage 6(X, y)Position It sets(That is, testing and triggering the segment for broadcasting segment " termination " signal backward by conditional abandon(X, y)Position)Into Row relatively executes this processing(Actually will identify that so currently will be by final conditional by it in the stage The segment of discarding test is blocked any(It is older)Segment).
It is subject to the specific other standards for making the processing of segment stop also corresponded to, and passes through its final sub conditione Discarding test and trigger segment " termination " " backward " signal segment have it is identical(X, y)Position it is any(It is older)When The processing of preceding segment stops immediately.Specifically, also checking in assembly line being potentially dropped(That is, will be blocked)Piece Section whether continue to be handled based on any other reason, other reasons for example, because its have such as with it is unsolved The associated side effect being still required of occlusion query.If the segment being blocked is looked into without its subsidiary still effectively blocking It askes(And the side effect without other needs), then abandoned(It, which is handled, stops)When if it is subsidiary really with it Effective occlusion query(Or some other side effects being still required), then do not abandoned(That is, continuing its processing).Pass through The stage of the graphics processing pipeline of concern executes this inspection.
In conditional discarding test fragment " termination " " " event according to suitably guard by way of execute to not The determination of segment to be treated again makes it no longer receive the risk of subsequent processing to reduce improperly discarding segment.
Test to each stage pipeline of graphics processing pipeline all segments in the stage.This makes assembly line rank Section can with it is conditional abandon test by event produce possible rejecting machine can the identical rate discarding piece of rate Section.
It is " termination " by the fragment label that will identify that(In vain)The processing of the segment in processing stage earlier is set to stop Only.From the discussion above, therefore, make each segment that there is " termination " bit associated with it(For example, as its associated A part for segment data)If be configured to the bit, it indicates that the segment is not required to be processed(And it can drop).
(Once again, alternative arrangement(Such as make the segment queue operated as buffer area with effective label Queue is discharged when the invalid tag of segment is arranged(Buffer area)Row)It can be used as substituting, or in addition use as needed).)
Conditional discarding test " backward " segment " termination " is broadcasted by event to its graphics processing pipeline Each stage have in its local domain(That is, in the stage of concern or the part of processing stage)All segments it is negative The corresponding agency of duty.Preferably, the segment " termination " and " subtract which is sent with processing by depth test stage early stage Slowly the agency of event broadcast is same agency ".Each agency will be maintained at about the information of the segment in its local domain, and can Operated in response to the conditional discarding of its reception test " backward " segment " termination " by event by fragment label To terminate(In vain), to avoid and/or stop the unnecessary processing to them.Agency is configured to concurrently test All segments in their local domain.
This " segments end backward " signal operation allows segment(In advance triggering enter assembly line in the segment it The processing " slowing down " of preceding other segments)It is subsequently used in " termination " by its all conditional result for abandoning test flowing Any " segment slowed down " that the segment that is triggered in waterline is more than and blocks the segment that is actually triggered(Slow down at these Segment is by assembly line by before thoroughly handling).Even if cannot determine new piece far and away enough in depth test stage early stage Whether section will actually block segment in a pipeline, do so the segment later for also allowing access into assembly line for closing In(Before them)Earlier into assembly line(In a pipeline before the segment later)Segment executes hidden It eliminates in Tibetan face.
" not passing through " event " piece backward is tested in response to broadcasting conditional discarding by tinter flow line stage 6 Duan Huifu " signals(That is, instruction should determine whether the processing of any segment should restore in response to broadcast singal), as attached item Part discarding test " not passing through " event as a result, processing assembly line reception " recoverys " signal broadcast stage then using extensively Position in signal and " new and old " information are broadcast to determine whether the processing of any segment that they include currently should restore.Pass through The all of flow line stage will currently be occupied and slow down segment in advance(X, y)Position and " newness degree " with by passing through tinter stream Broadcast " recovery " signal designation that last pipeline stages 6 are broadcasted(X, y)Position and " newness degree "(That is, not lost by conditional It abandons test and triggers the segment of broadcast segment " recovery " signal(X, y)Position and " newness degree ")It is compared to execute this A processing(Actually will identify that so current currently known in this stage will not abandoned test by conditional Segment is blocked any(It is older)Segment).
Each stage of graphics processing pipeline concurrently tests all segments in the stage again.This makes flowing water The line stage can be not produce the identical speed of the possible rate of " recovery " chance with conditional discarding test by event Rate is restored(Slow down)Segment.
In the present embodiment, pass through(Relative to its " slowing down ", remove priority status)Increase its processing priority to restore Segment.Segment is restored initial to them(Normally)Processing priority and speed.By no longer by " recovery " fragment label be " go Preferentially " realize this point.Therefore, when segment " will be restored ", update(Change)(It goes to be arranged)With the fragment association Suitably " remove preferential " bit.
" segment backward is restored " is tested in conditional discarding not broadcast to its graphics processing pipeline by event Each stage have in its local domain(That is, in the stage of concern or the part of processing stage)All segments it is negative The corresponding agency of duty(Once again, the agency that the agency can pass through event etc. with processing segment " termination " is same agency).Respectively A agency will be maintained at about the information of the segment in its local domain, and can be operated with the sub conditione in response to its reception Discarding test fragment " recovery " by event by fragment label be do not go no longer it is preferential(No longer slow down), to restore(It restores) Their processing.Agency is configured to all segments in the local domain for concurrently testing them.
(When other arrangements are used to slow down the processing of segment, segment should be restored according to suitable mode.For example, Using with the segment queue operated as buffer area the discharging when removing preferential label in setting segment for removing preferential label Queue(Buffer area)In the case of row, when segment will be restored, preferential label can be suitably updated.Similarly, in segment In the case of so that their processing is slowed down by the processing of assembly line by suspending them, segment and/or sampled point can be by " stopping Only suspend " their processing(For example, by by them from " rigid pond "(Their processing suspends herein)It removes and makes them Back to assembly line to be handled according to normal mode)And restore.)
This " segment backward is restored " signal operation allows segment(In advance triggering enter assembly line in the segment it The processing " slowing down " of preceding other segments)It is not subsequently used in by its conditional one result abandoned in test " extensive It is multiple "(It restores)Any " piece slowed down that the segment that is triggered in a pipeline is more than and blocks the segment that is not triggered actually Section ", to which the segment slowed down is then processed normally again.
In the present embodiment, if except the segment that the processing for triggering them slows down is not surveyed by conditional discarding then Examination then restores(It restores)Except any " slowing down " segment under normal priority to be handled, the behaviour as present embodiment Make as a result, if being abandoned by " forward segments end " signal(" termination ")The segment that their processing slows down is triggered, then is lost It abandons(" termination ")" slowing down " segment.In this case, " termination " " is just slowing down " " forward segments end " letter of segment Number being also used in same operation " termination " " has slowed down " segment.
From above it should be understood that in the present embodiment, if a segment can trigger by early stage depth test and sending The signal that the processing of one or more segments in a pipeline slows down is then then surveyed when it undergoes its conditional discarding When examination, is sent when it is tested by its all conditional discarding and can trigger stopping processing(It abandons)Its processing slows down in advance One or more segments signal, or its not by its it is conditional abandon test in one when send triggering restore It handles the signal of the processing of the one or more segments slowed down in advance.
Similarly, pass through in early days with depth template test as a result, what its processing had slowed down in advance as segment later The processing of segment then can stop or restore(It restores), this is dependent firstly on the sub conditione for the segment for triggering the processing for slowing down segment Discarding test result.
As shown in Figure 1, in the present embodiment, graphics processing pipeline includes the queue 12 that segment has to pass through, cloth It sets before the fragment shader 6 of graphics processing pipeline.Queue 12 is configured to keep the one of complete tile-sized Group segment, but other arrangements are certainly possible.
Queue 12 has increase can be after rejection test stage early stage(That is, in hierarchy depth and template test device 4 and early After phase depth and template test device 13)Assembly line in number of fragments effect, to increase can be in the embodiment Mode by the segment operated quantity.It can be significantly increased after only final visible segment reaches queue 12 using queue 12 The fragment shading stage 6(And it is handled by the fragment shading stage 6)Possibility.This is favourable, because fragment shading is usually to every It is relatively expensive processing for segment, and to enter fragment shader better for therefore fewer segment.
Into the segment dequeue in that same order of enqueue 12, still " terminates " segment and triggered in dequeue The releasing of resource.
From the above it can be seen that at least in a preferred embodiment of the invention, the present invention provides for further subtracting The hidden surface that can occur in assembly line graphic system less(Final redundancy)The mechanism for the treatment of capacity.In addition, of the invention Arrangement be:When the rendering order for classical rendering pipeline is best, will not interfere with(To with best Minimal-overhead is obtained on the existing rendering pipeline arrangement of rendering order), but when rendering order and non-optimal, will rise Effect, and in this case, at least in a preferred embodiment of the invention, segment from back to front and hidden can be eliminated Tibetan face, to reach with often sampling in terms of hidden surface elimination or handle equally effective degree per segment pre-rendered sequence.It is wanting In the case that the content of rendering prevents sort algorithm from easily detecting best sortord(For example, primitive intersects or has Overlapping depth bounds), the present invention can also than sequence be more effectively carried out this operation.
The anti-aliased processing that the technology of the present invention is also independent of used multi-point sampling is horizontal, so that higher level Multi-point sampling anti-aliased processing use it is obviously less expensive.
Using early stage rejection test by the result of event come determine any segment in a pipeline processing whether The processing for being particularly advantageous to then stop the relatively early segment for entering assembly line should be slowed down, but cannot be in early stage rejection test rank Section determines that segment later will generate it and blocks far and away, this is because segment for example later passes through graphics process stream at it It will be tested by one or more conditional discardings in the processing procedure of waterline.In this way, therefore early with wherein exclusive use Phase rejection test abandons immediately(" termination ")Can determine the arrangement for any segment blocked by segment later in assembly line Mode is compared so that the processing of more multiple clips can stop before the end that they reach assembly line.
Herein it should be noted that present embodiment(And the present invention)This segment slow down and subsequent " termination " behaviour Make and not simply locally sort again to segment in several cycles of current clip, but will have makes segment completely disengage order The effect of sequence(Actually by the processing of the relatively early segment for entering assembly line of delay), and in addition, the operation can't be held It is continuous necessarily to handle all segments, but operated to abandon and not handle any segment for finding no longer to need.

Claims (17)

1. a kind of method of operation graphics processing pipeline, the graphics processing pipeline includes multiple processing stages, multiple Processing stage includes:Rasterizer, by input primitive rasterizing to generate graphics fragment to be processed, each graphics fragment tool Have and the associated one or more sampled points of the graphics fragment;And renderer, to the piece generated by the rasterizer Duan Jinhang processing the described method comprises the following steps with generating output fragment data:
The renderer is sent to before being handled, to be closed for the segment in the segment generated by the rasterizer At least one sampled point of connection executes early stage rejection test;And
If at least one sampled point by the early stage rejection test, sends forward the segment to be handled, And it is determined in the graphics processing pipeline by the early stage rejection test in response at least one sampled point Whether the processing of another sampled point should slow down.
2. according to the method described in claim 1, wherein, to the place of another sampled point in the graphics processing pipeline Whether whether the sampled point that the determination that should slow down is based upon the early stage rejection test also has one or more spies to reason Determine attribute.
3. according to the method described in claim 2, wherein, the particular community includes that the sampled point is adopted by as to described One or more conditional discarding tests of a part for the processing of sampling point.
4. method according to claim 1,2 or 3, this approach includes the following steps:
Slow down the place of another sampled point in assembly line by going preferentially the processing of the sampled point in assembly line Reason.
5. according to the method described in claim 1, wherein, being rejected and being surveyed by the early stage in response at least one sampled point It tries to determine that the step of whether processing of another sampled point in the graphics processing pipeline can slow down includes the following steps: The sampled point of flow line stage and/or the position of segment will currently be occupied and by least one described in the early stage rejection test The position of a sampled point is compared.
6. according to the method described in claim 1, wherein, being rejected and being surveyed by the early stage in response at least one sampled point It tries to determine that the step of whether processing of another sampled point in the graphics processing pipeline can slow down further includes following step Suddenly:Before the processing for slowing down another sampled point, other attributes of another sampled point are checked, it is described another with determination Whether sampled point should still be handled with normal priority.
7. according to the method described in claim 1, this method is further comprising the steps of:
One or more sub conditiones are executed for at least one sampled point of the fragment association generated by the rasterizer Discarding test, trigger another sampling in the graphics processing pipeline in advance by the segment that the rasterizer generates Point processing whether the determination that should slow down;And
If at least one sampled point is tested by all conditional discardings that at least one sampled point to be subjected to, And as at least one sampled point by the early stage rejection test as a result, determining in the graphics processing pipeline The processing of another sampled point should slow down, then pass through as at least one sampled point and all conditional abandon test As a result, determining whether the processing of another sampled point can stop;
Or
If at least one sampled point is not tested by least one sampled point conditional discarding to be subjected to, and And as at least one sampled point by the early stage rejection test as a result, determining in the graphics processing pipeline The processing of another sampled point should slow down, then do not pass through the conditional discarding test as at least one sampled point As a result, determining whether the processing of another sampled point should restore.
8. a kind of method of operation graphics processing pipeline, the graphics processing pipeline includes multiple processing stages, multiple Processing stage includes:Rasterizer, by input primitive rasterizing to generate graphics fragment to be processed, each graphics fragment tool Have and the associated one or more sampled points of the graphics fragment;And renderer, to the piece generated by the rasterizer Duan Jinhang processing the described method comprises the following steps with generating output fragment data:
It is tested for conditional discarding is executed at least one sampled point of the fragment association generated by the rasterizer;
If at least one sampled point is tested by the conditional discarding, described is sent forward in a pipeline It section and will be broadcasted to the figure with by the conditional related information of at least one sampled point of test that abandons Shape handles at least one of the assembly line stage, and
As at least one sampled point by the conditional discarding test as a result, in the graphics processing pipeline At least one stage determined by using the information of broadcast in the graphics processing pipeline with currently described Whether any segment of the fragment association in the stage or the processing of sampled point can stop.
9. a kind of graphics processing pipeline, the graphics processing pipeline include:
Multiple processing stages, multiple processing stage include:Rasterizer, input primitive rasterizing is to be processed to generate Graphics fragment, each graphics fragment have and the associated one or more sampled points of the graphics fragment;Renderer, to by institute The segment for stating rasterizer generation is handled to generate output fragment data;And rejection test stage early stage, by described The segment that rasterizer generates is sent to the renderer so that before being handled, which is directed to and institute The sampled point for stating fragment association executes early stage rejection test;Wherein, the graphics processing pipeline is configured as:
In response at least one sampled point with the fragment association generated by the rasterizer by the early stage rejection test, The segment is sent forward to be handled, and determines that the processing of another sampled point in the graphics processing pipeline is It is no to slow down.
10. graphics processing pipeline according to claim 9, wherein to another in the graphics processing pipeline Whether whether also the determination that should slow down is based upon the sampled point of the early stage rejection test for the processing of one sampled point With one or more particular communities.
11. graphics processing pipeline according to claim 10, wherein the particular community include the sampled point by One or more conditional discarding tests of a part as the processing to the sampled point.
12. according to the graphics processing pipeline described in claim 9,10 or 11, wherein the place of another sampled point in assembly line Slowing down for reason includes the following steps:The processing of the sampled point in assembly line is gone preferentially.
13. graphics processing pipeline according to claim 9, wherein the graphics processing pipeline is configured as:Pass through The sampled point of flow line stage and/or the position of segment will currently be occupied and by least one described in the early stage rejection test The position of a sampled point is compared, and in response at least one sampled point by the early stage rejection test, determines institute Whether state the processing of another sampled point in graphics processing pipeline can slow down.
14. graphics processing pipeline according to claim 9, wherein the graphics processing pipeline is configured as:Subtracting Before the processing of slow another sampled point, other attributes of another sampled point are checked, with determination another sampled point Whether should still be handled with normal priority.
15. graphics processing pipeline according to claim 9, wherein the graphics processing pipeline is additionally configured to:
One or more sub conditiones are executed for at least one sampled point of the fragment association generated by the rasterizer Discarding test, trigger another sampling in the graphics processing pipeline in advance by the segment that the rasterizer generates Point processing whether the determination that should slow down;And
If at least one sampled point is tested by all conditional discardings that at least one sampled point to be subjected to, And as at least one sampled point by the early stage rejection test as a result, determining in the graphics processing pipeline The processing of another sampled point should slow down, then pass through as at least one sampled point and all conditional abandon test As a result, determining whether the processing of another sampled point can stop;
Or
If at least one sampled point is not tested by least one sampled point conditional discarding to be subjected to, and And as at least one sampled point by the early stage rejection test as a result, determining in the graphics processing pipeline The processing of another sampled point should slow down, then do not pass through the conditional discarding test as at least one sampled point As a result, determining whether the processing of another sampled point should restore.
16. a kind of graphics processing pipeline, the graphics processing pipeline include:
Multiple processing stages, multiple processing stage include:Rasterizer, input primitive rasterizing is to be processed to generate Graphics fragment, each graphics fragment have and the associated one or more sampled points of the graphics fragment;And renderer, it is right The segment generated by the rasterizer is handled to generate output fragment data, and wherein,
It is able to carry out and is tested for the conditional discarding with the sampled point of the fragment association generated by the rasterizer;And
Wherein, the graphics processing pipeline is configured as:
It is tested by conditional discarding in response at least one sampled point with the fragment association generated by the rasterizer, Send the segment forward in a pipeline, and by with pass through the conditional at least one sampling for abandoning test The related information of point was broadcasted at least one of the graphics processing pipeline stage;And
As at least one sampled point by the conditional discarding test as a result, being determined using the information of broadcast In the graphics processing pipeline is with any segment of the fragment association currently in the stage or the processing of sampled point It is no to stop.
17. a kind of computer program medium, record has computer program in the computer program medium, the computer program packet Computer software is included, when the computer program is run on data processing equipment, the software performing is according to right It is required that the method described in any one of 1 to 8.
CN201310692576.4A 2012-12-17 2013-12-17 Hidden surface in graphic system is eliminated Active CN103871020B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/716,952 2012-12-17
US13/716,952 US9153070B2 (en) 2012-12-17 2012-12-17 Hidden surface removal in graphics processing systems
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 CN103871020A (en) 2014-06-18
CN103871020B true 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) KR102057163B1 (en)
CN (2) CN103871095B (en)
GB (2) GB2511177B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292898B2 (en) * 2013-03-15 2016-03-22 Intel Corporation Conditional end of thread mechanism
US9846959B2 (en) * 2014-07-03 2017-12-19 Mediatek Inc. Apparatus and method for controlling early depth processing and post depth processing
GB2540227B (en) * 2015-12-21 2018-01-17 Imagination Tech Ltd Allocation of tiles to processing engines in a graphics processing system
US10417815B2 (en) * 2017-01-27 2019-09-17 Advanced Micro Devices, Inc. Out of order pixel shader exports
GB2571979B8 (en) * 2018-03-15 2023-07-12 Advanced Risc Mach Ltd Graphics processing
CN112116519B (en) * 2019-06-19 2022-12-27 畅想科技有限公司 Coarse depth testing in graphics processing systems
KR200491938Y1 (en) 2020-05-06 2020-07-03 조현근 Function multi scarf
GB2608094A (en) * 2021-01-27 2022-12-28 Advanced Risc Mach Ltd Graphics processing
CN116894906A (en) * 2023-09-11 2023-10-17 瀚博半导体(上海)有限公司 Graphics rendering method and processor hardware architecture

Citations (4)

* Cited by examiner, † Cited by third party
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
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000011602A2 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Method and apparatus for generating texture
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
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

Also Published As

Publication number Publication date
GB2511176B (en) 2015-04-15
KR20140078569A (en) 2014-06-25
KR20140078568A (en) 2014-06-25
GB2511177A (en) 2014-08-27
GB2511176A (en) 2014-08-27
GB201322284D0 (en) 2014-01-29
GB2511177B (en) 2015-04-15
KR102057163B1 (en) 2019-12-18
KR102057166B1 (en) 2019-12-18
CN103871095A (en) 2014-06-18
CN103871020A (en) 2014-06-18
GB201322278D0 (en) 2014-01-29
CN103871095B (en) 2018-07-17

Similar Documents

Publication Publication Date Title
CN103871020B (en) Hidden surface in graphic system is eliminated
US9779536B2 (en) Graphics processing
US11069024B2 (en) Primitive processing in a graphics processing system with tag buffer storage of primitive identifiers
US9552665B2 (en) Hidden surface removal in graphics processing systems
CN104885123B (en) The geometric figure processing method and graphics-rendering system rendered for figure
EP1738330B1 (en) Scalable shader architecture
US11164365B2 (en) Primitive processing in a graphics processing system
CN107038742A (en) Multichannel in screen space pipeline is rendered
CN110036414A (en) Overlapping fragments are removed or identified after Z- rejecting
US10769838B2 (en) Hierarchical graphics processing for primitives
CN107438865A (en) Graphic system
CN110276711A (en) Graphics process
US11972503B2 (en) Graphics processing
US20220358616A1 (en) Graphics processing
GB2607002A (en) Fragment dependency management for variable rate shading

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