Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Objections
Claims 4 and 14 are objected to because of a minor informality: each of these claims recites “the culling process” which should be amended to read --the culling operation-- to properly reference “a culling operation” earlier in each claim. Appropriate correction is required.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used.
A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1 and 11 are provisionally rejected on the ground of nonstatutory obviousness-type double patenting as being anticipated by claims 1 and 7 (which conflict with application claim 1), and claims 11 and 17 (which conflict with application claim 11) of copending Application No. 18/637568.
Regarding independent claim 1 of the instant application, although the conflicting claims are not identical, the claims are not patentably distinct because application claim 1 is generic to all that is recited in copending claims 1 and 7; that is, the instant application claim is anticipated by the copending claim because it contains all the limitations of application claim 1, which is therefore an obvious variant thereof.
The limitations of claim 11 of the instant application are substantially similar to those of claim 1, and are similarly rejected, based on conflicting claims 11 and 17.
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
An illustration of the claim correspondence is as follows:
Instant Application
Copending Application No. 18/637,568
1. A method of operating a tile-based graphics processor that is operable to generate a render output by building a hierarchy of bounding boxes to be used to identify primitives to process to generate a rendering tile of the render output; the method comprising: generating one or more packets of one or more primitives; processing the one or more packets to generate a hierarchy of bounding boxes representative of positions of primitives of the one or more packets; traversing the hierarchy of bounding boxes to identify primitives to process to generate a rendering tile of a render output; and generating the rendering tile by processing the identified primitives; wherein processing the one or more packets to generate the hierarchy of bounding boxes comprises: generating a lower level of the hierarchy of bounding boxes by generating, for each primitive of a packet, a primitive bounding box that bounds the respective primitive; generating a higher level of the hierarchy of bounding boxes by generating, for each packet, a packet bounding box that bounds all of the primitives of the respective packet; and generating an intermediate level of the hierarchy of bounding boxes by: grouping primitives of a packet into one or more groups of one or more primitives; and generating, for each group, a primitive group bounding box that bounds the primitives of the respective group, and wherein traversing the hierarchy of bounding boxes to identify primitives to process to generate a rendering tile comprises: testing the rendering tile against bounding boxes of the hierarchy of bounding boxes to determine whether the rendering tile overlaps the bounding boxes.
[levels disclosed in copending claim 7]
1. A method of operating a tile-based graphics processor; the method comprising: generating a hierarchy of bounding boxes, wherein each bounding box of the hierarchy of bounding boxes bounds one or more primitives of a set of primitives to be processed to generate a render output; generating, for at least one bounding box of the hierarchy of bounding boxes, supplementary information that indicates, for each region of plural regions that the bounding box overlaps, whether or not the respective region contains at least one of the one or more primitives that the bounding box bounds; using the hierarchy of bounding boxes and the supplementary information to identify primitives of the set of primitives to process to generate a rendering tile of the render output; and processing the identified primitives to generate the rendering tile of the render output; wherein using the hierarchy of bounding boxes and the supplementary information to identify primitives of the set of primitives to process to generate a rendering tile of the render output comprises: traversing the hierarchy of bounding boxes by testing the rendering tile against one or more bounding boxes of the hierarchy of bounding boxes to determine whether the rendering tile overlaps the one or more bounding boxes; and when it is determined that the rendering tile overlaps a bounding box of the hierarchy of bounding boxes for which supplementary information is generated: determining whether the supplementary information indicates that a region of plural regions that the bounding box overlaps that corresponds to the rendering tile contains at least one of the one or more primitives that the bounding box bounds.
7. The method of claim 1, wherein the bounding box of the hierarchy of bounding boxes for which supplementary information is generated is a higher level bounding box of the hierarchy of bounding boxes that encompasses one or more lower level bounding boxes of the hierarchy of bounding boxes; and the method comprises: when it is determined that the supplementary information indicates that a region of plural regions that the higher level bounding box overlaps that corresponds to the rendering tile contains at least one of the one or more primitives that the higher level bounding box bounds: testing the rendering tile against the one or more lower level bounding boxes of the hierarchy of bounding boxes that are encompassed by the higher level bounding box, and when it is determined that the supplementary information indicates that a region of plural regions that the higher level bounding box overlaps that corresponds to the rendering tile does not contain at least one of the one or more primitives that the higher level bounding box bounds: not testing the rendering tile against the one or more lower level bounding boxes of the hierarchy of bounding boxes that are encompassed by the higher level bounding box.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-19 are rejected under 35 U.S.C. 103 as being unpatentable over Clark, in view of Jesus et al. (U.S. Patent Application Publication No. 2021/0248805), referred herein as Jesus.
Regarding claim 1, Clark teaches a method of operating a tile-based graphics processor that is operable to generate a render output by building a hierarchy of bounding boxes to be used to identify primitives to process to generate a rendering tile of the render output (figs 3 and 7; paragraph 52, lines 1-11; paragraph 69, lines 1-14); the method comprising:
generating one or more packets of one or more primitives, and processing the one or more packets to generate a hierarchy of bounding boxes representative of positions of primitives of the one or more packets (figs 2 and 7; paragraph 48; paragraph 68, lines 1-4; paragraph 69, lines 1-14; paragraph 70, the last 14 lines; primitives are grouped into packets B and C, for example, which are processed to generate a bounding box hierarchy representing positions of primitives in the packets);
traversing the hierarchy of bounding boxes to identify primitives to process to generate a rendering tile of a render output, and generating the rendering tile by processing the identified primitives (figs 2; paragraphs 48 and 49; paragraph 52, lines 1-11 and 14-36; paragraph 68, lines 1-4; paragraph 69, lines 1-14; paragraph 70, the last 14 lines);
wherein processing the one or more packets to generate the hierarchy of bounding boxes comprises: generating a lower level of the hierarchy of bounding boxes by generating, for each primitive of a packet, a primitive bounding box that bounds the respective primitive (fig 2, the lower level including primitive bounding boxes I’-O’, for example, each with respective bounded primitives 12-18; paragraph 48; paragraph 49, lines 19-29 and 35-50);
generating a higher level of the hierarchy of bounding boxes by generating, for each packet, a packet bounding box that bounds all of the primitives of the respective packet (fig 2, the higher level including packet bounding boxes B’ and C’, for example, each of which bounds all primitives of their respective packet; paragraph 48; paragraph 49, lines 3-8); and
generating an intermediate level of the hierarchy of bounding boxes by: grouping primitives of a packet into one or more groups of one or more primitives, and generating, for each group, a primitive group bounding box that bounds the primitives of the respective group (fig 2, the intermediate level including primitive group bounding boxes D’-G’, for example, where packet B groups primitives 10-14, packet C groups primitives 15-18, and each group has a respective bounding box; paragraph 48; paragraph 49, lines 8-14 and 29-35; paragraph 68, lines 1-4; paragraph 69, lines 1-14);
wherein traversing the hierarchy of bounding boxes to identify primitives to process to generate a rendering tile comprises: testing rays against bounding boxes of the hierarchy of bounding boxes to determine whether the rays intersect the bounding boxes (paragraph 4, lines 1-21; paragraph 49, lines 1-14 and 20-50; paragraph 52, lines 14-36; ray intersection tests are performed recursively down through the bounding box hierarchy acceleration structure – such as from the higher level, to the intermediate level, to the lower level, until you reach the primitive, as described in the limitations of claim 7 – to determine if rays intersect with a given level’s bounding box, and when a primitive bounding box is reached, the associated primitive is identified to be processed for rendering).
Clark does not explicitly teach testing the rendering tiles against the bounding boxes to determine if the rendering tiles overlap with the bounding box.
However, in a similar field of endeavor, Jesus teaches a method of operating a tile-based graphics processor that is operable to generate a render output by building a hierarchy comprising bounding boxes to be used to identify primitives processed to generate a rendering tile of the render output (figs 4, 6, 7, and 10; abstract; paragraphs 88 and 91; paragraph 94; paragraph 95, lines 1-13; paragraph 98), wherein the method comprises testing the rendering tiles against the bounding boxes for groups of primitives to determine if the rendering tiles overlap with the bounding box (figs 6, 9, and 21; paragraph 98; paragraph 163, lines 1-14; paragraph 169, lines 1-6 and the last 14 lines; paragraphs 175 and 177).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the hierarchical tile/bounding box overlap testing of Jesus with the hierarchy traversal of Clark because this can help reduce the number of branch traversals, and therefore reduce the number of primitives that need to be processed, such that processing throughput may be increased while reducing processing and storage requirements (see, for example, Jesus, paragraph 2, the last 6 lines; paragraphs 104 and 107; paragraph 173, the last 7 lines).
Regarding claim 2, Clark in view of Jesus teaches the method of claim 1, further comprising generating an even higher level of the hierarchy of bounding boxes by: grouping packets into one or more groups of packets; and generating, for each group of packets, a packet group bounding box that bounds all of the primitives of all of the packets of the respective group of packets (Clark, fig 2, the even higher level including packet group bounding box A, for example, which comprises packets B and C, and which comprises all primitives 10-18; paragraph 48; paragraph 49, lines 1-3).
Regarding claim 3, Clark in view of Jesus teaches the method of claim 1, wherein grouping primitives of a packet into one or more groups of one or more primitives comprises assigning primitives of the packet to the one or more groups in accordance with a processing order of the primitives (Clark, paragraph 56, lines 1-12; paragraph 67, lines 1-9; paragraph 68, lines 1-4; paragraph 69, lines 1-4; paragraph 71, lines 1-8).
Regarding claim 4, Clark in view of Jesus teaches the method of claim 1, comprising performing a culling operation on the primitives of a packet, and then grouping primitives of the packet that have survived the culling process into one or more groups of one or more primitives (Clark, paragraph 56, lines 1-12; paragraph 67, lines 1-9; paragraph 68, lines 1-4; paragraph 69, lines 1-4; paragraph 71, lines 1-8; culling operation: Jesus, paragraph 5, the last 5 lines; paragraph 105, lines 1-9 and the last 11 lines; paragraph 163, lines 1-14; paragraphs 175 and 177; the motivation to combine is similar to that discussed above in the rejection of claim 1).
Regarding claim 5, Clark in view of Jesus teaches the method of claim 1, comprising storing each primitive group bounding box in the corresponding packet (Clark, paragraph 48; paragraph 49, lines 8-14 and 29-35; paragraph 68, lines 1-4; paragraph 69, lines 1-14; paragraph 100, lines 1-4).
Regarding claim 6, Clark in view of Jesus teaches the method of claim 1, wherein each bounding box of the hierarchy of bounding boxes is a two-dimensional bounding box (Clark, figs 2 and 5; paragraphs 48 and 63).
Regarding claim 7, Clark in view of Jesus teaches the method of claim 1, wherein traversing the hierarchy of bounding boxes to identify primitives to process to generate a rendering tile comprises: when it is determined that the rays intersect a packet bounding box that bounds all primitives of a packet of primitives, testing rays against a primitive group bounding box that bounds a group of primitives of the packet of primitives; when it is determined that the rays intersect a primitive group bounding box that bounds a group of primitives of a packet of primitives, testing rays against a primitive bounding box that bounds a primitive of the group of primitives; and when it is determined that the rays intersect a primitive bounding box that bounds a primitive, identifying the primitive as a primitive to process to generate the rendering tile (Clark, paragraph 4, lines 1-21; paragraph 49, lines 1-14 and 20-50; paragraph 52, lines 14-36; Jesus, paragraph 98; paragraph 163, lines 1-14; paragraph 169, lines 1-6 and the last 14 lines; paragraphs 175 and 177; Jesus teaches testing tiles against bounding boxes to determine whether the tiles overlap the bounding boxes; Clark teaches performing the intersection tests recursively down through the bounding box hierarchy acceleration structure – such as from the higher level, to the intermediate level, to the lower level, until you reach the primitive, as described in the limitations of claim 7 – to determine intersections with a given level’s bounding box, and when a primitive bounding box is reached, the associated primitive is identified to be processed for rendering; the motivation to combine is similar to that discussed above in the rejection of claim 1).
Regarding claim 8, Clark in view of Jesus teaches a non-transitory computer readable storage medium storing software code which when executing on a processor (Clark, paragraph 107, the last 10 lines) performs the method of claim 1 (see the rejection of claim 1 above).
Regarding claim 9, Clark teaches a method of operating a tile-based graphics processor that is operable to generate a render output by traversing a hierarchy of bounding boxes to identify primitives to process to generate a rendering tile of the render output (figs 2, 3 and 7; paragraph 48; paragraph 52, lines 1-11 and 14-36; paragraph 68, lines 1-4; paragraph 69, lines 1-14; paragraph 70, the last 14 lines); the method comprising:
traversing a hierarchy of bounding boxes representative of positions of primitives of one or more packets of primitives to identify primitives of the one or more packets to process to generate a rendering tile of a render output, and generating the rendering tile by processing the identified primitives (figs 2; paragraphs 48 and 49; paragraph 52, lines 1-11 and 14-36; paragraph 68, lines 1-4; paragraph 69, lines 1-14; paragraph 70, the last 14 lines);
wherein traversing the hierarchy of bounding boxes comprises: testing rays against bounding boxes of the hierarchy of bounding boxes to determine whether the rays intersect the bounding boxes; when it is determined that the rays intersect a packet bounding box that bounds all primitives of a packet of primitives, testing rays against a primitive group bounding box that bounds a group of primitives of the packet of primitives; when it is determined that the rays intersect a primitive group bounding box that bounds a group of primitives of a packet of primitives, testing rays against a primitive bounding box that bounds a primitive of the group; and when it is determined that the rays intersect a primitive bounding box that bounds a primitive, identifying the primitive as a primitive to process to generate the rendering tile (paragraph 4, lines 1-21; paragraph 49, lines 1-14 and 20-50; paragraph 52, lines 14-36; ray intersection tests are performed recursively down through the bounding box hierarchy acceleration structure – such as from the higher level, to the intermediate level, to the lower level, until you reach the primitive, as described in the limitations of claim 7 – to determine if rays intersect with a given level’s bounding box, and when a primitive bounding box is reached, the associated primitive is identified to be processed for rendering).
Clark does not explicitly teach testing the rendering tiles against the bounding boxes to determine if the rendering tiles overlap with the bounding box, and using that as the basis for subsequent testing.
However, in a similar field of endeavor, Jesus teaches a method of operating a tile-based graphics processor that is operable to generate a render output by building a hierarchy comprising bounding boxes to be used to identify primitives processed to generate a rendering tile of the render output (figs 4, 6, 7, and 10; abstract; paragraphs 88 and 91; paragraph 94; paragraph 95, lines 1-13; paragraph 98), wherein the method comprises testing the rendering tiles against the bounding boxes for groups of primitives to determine if the rendering tiles overlap with the bounding box, and using that as the basis for subsequent testing (figs 6, 9, and 21; paragraph 98; paragraph 163, lines 1-14; paragraph 169, lines 1-6 and the last 14 lines; paragraphs 175 and 177).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the hierarchical tile/bounding box overlap testing of Jesus with the hierarchy traversal of Clark because this can help reduce the number of branch traversals, and therefore reduce the number of primitives that need to be processed, such that processing throughput may be increased while reducing processing and storage requirements (see, for example, Jesus, paragraph 2, the last 6 lines; paragraphs 104 and 107; paragraph 173, the last 7 lines).
Regarding claim 10, Clark in view of Jesus teaches the method of claim 9, wherein each primitive group bounding box is stored in the corresponding packet, and the method comprises: when it is determined that a rendering tile overlaps a packet bounding box for a packet: loading the packet and using the primitive group bounding box(es) stored in the packet to determine whether the rendering tile overlaps a primitive group bounding box (Clark, figs 2, packet B bounding box groups primitives 10-14, packet C bounding box groups primitives 15-18; paragraph 48; paragraph 49, lines 8-14 and 29-35; paragraph 68, lines 1-4; paragraph 69, lines 1-14; Jesus, paragraph 95, lines 1-13; paragraph 98; paragraph 163, lines 1-14; paragraph 169, the last 14 lines; the motivation to combine is similar to that discussed above in the rejection of claim 9).
Regarding claim 11, the limitations of this claim substantially correspond to the limitations of claim 1 (except for the processor and circuits, which are disclosed by Clark, fig 3 and paragraph 51); thus they are rejected on similar grounds.
Regarding claims 12-17, the limitations of these claims substantially correspond to the limitations of claims 2-7, respectively; thus they are rejected on similar grounds as their corresponding claims.
Regarding claim 18, the limitations of this claim substantially correspond to the limitations of claim 9 (except for the processor and circuits, which are disclosed by Clark, fig 3 and paragraph 51); thus they are rejected on similar grounds.
Regarding claim 19, the limitations of this claim substantially correspond to the limitations of claim 10; thus they are rejected on similar grounds.
Response to Arguments
On pages 9-11 of the Applicant’s Remarks, with respect to the prior art rejections of the independent claims, the Applicant argues that the combined teaches of Clark and Jesus do not teach the subject matter of the claims because the Office Action states that Clark does not teach testing the tiles against bounding boxes, and Jesus teaches tile groups, but does not teach a hierarchy of bounding boxes. The Examiner respectfully disagrees with this argument.
It is first noted that one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). As discussed in the rejections, Clark explicitly teaches the bounding box hierarchy; thus Jesus is not relied upon to teach this feature. As further discussed, Clark does not explicitly teach “testing the rendering tiles against the bounding boxes to determine if the rendering tiles overlap with the bounding box.” However, Jesus clearly teaches this feature and was properly combined with Clark. Additionally, it is separately noted that the data structures being utilized for the testing and comparison in Jesus are indeed hierarchical, and encompass bounding boxes (see, for example, the citation to Jesus, paragraph 98), and are thus very similar in nature to the claimed hierarchy. Accordingly, it is respectfully submitted that the combination of Clark, which teaches most of the limitations, including the bounding box hierarchy, and Jesus, which teaches testing rendering tiles against bounding boxes, teaches the claimed subject matter.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DAVID T WELCH whose telephone number is (571)270-5364. The examiner can normally be reached Monday-Thursday, 8:30-5:30 EST, and alternate Fridays, 9:00-2:30 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Xiao Wu can be reached at 571-272-7761. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
DAVID T. WELCH
Primary Examiner
Art Unit 2613
/DAVID T WELCH/Primary Examiner, Art Unit 2613