DETAILED ACTION
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 .
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on March 25, 2025, July 7, 2025, September 15, 2025, and November 18, 2025 were filed on/after the filing date of the application on March 25, 2025. The submissions are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner.
Drawings
The drawings were received on March 25, 2025. These drawings are accepted.
Double Patenting
The non-statutory 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 non-statutory 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 non-statutory 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 filing of a terminal disclaimer by itself is not a complete reply to a non-statutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual 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/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of non-statutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 12,277,641. Although the claims at issue are not identical, they are not patentably distinct from each other as shown in the tables below.
Present Application #19/090,105
1
2
3
4
5
6
7
8
9
10
U.S. Patent #12,277,641
1
2
3
4
5
6
7
8
9
10
Present Application #19/090,105
11
12
13
14
15
16
17
18
19
20
U.S. Patent #12,277,641
11
12
13
14
15
16
17
18
19
20
Present Application #19/090,105 Claim 1
U.S. Patent #12,277,641 Claim 1
A shader processing unit for a graphics processing unit,
A shader processing unit for a graphics processing unit,
the shader processing unit configured to execute one or more shaders,
the one or more shaders comprising one or more ray tracing shaders that generate ray data associated with one or more rays, the ray data for a ray comprising a plurality of ray data elements (Limitation A),
the shader processing unit comprising:
the shader processing unit comprising:
storage; and
store logic configured to:
store logic configured to:
receive a ray store instruction that comprises:
receive a ray store instruction that comprises:
(i) information identifying a store group of a plurality of store groups, each store group of the plurality of store groups comprising one or more ray data elements,
(i) information identifying a store group of a plurality of store groups, each store group of the plurality of store groups comprising one or more ray data elements of the plurality of ray data elements, and
the ray data elements being associated with ray data generated by a ray tracing shader, and
Limitation A above
(ii) information identifying one or more ray data elements of the identified store group to be stored in an external unit;
(ii) information identifying one or more ray data elements of the identified store group to be stored in an external unit;
retrieve the identified ray data elements for one or more rays; and
in response to receiving the ray store instruction, retrieve the identified ray data elements for one or more rays from the storage; and
send one or more store requests to the external unit which cause the external unit to store the identified ray data elements.
send one or more store requests to the external unit which cause the external unit to store the identified ray data elements for the one or more rays.
Claim 1 of the present application differs from claim 1 of the patent application in that claim 1 of the present application is broader in scope than claim 1 of the patent application, thus encompasses that of the patent application.
Present Application #19/090,105 Claim 2
U.S. Patent #12,277,641 Claim 2
The shader processing unit of claim 1, wherein
The shader processing unit of claim 1, wherein
the information identifying one or more ray data elements of the identified store group identifies a block of ray data elements of the identified store group.
the information identifying one or more ray data elements of the identified store group identifies a block of ray data elements of the identified store group.
Present Application #19/090,105 Claim 3
U.S. Patent #12,277,641 Claim 3
The shader processing unit of claim 1, wherein
The shader processing unit of claim 1, wherein
the one or more ray data elements of each store group are divided into one or more sets of ray data elements, and
the one or more ray data elements of each store group are divided into one or more sets of ray data elements, and
the information identifying one or more ray data elements of the identified store group comprises information identifying one or more of the one or more sets of ray data elements of the identified store group.
the information identifying one or more ray data elements of the identified store group comprises information identifying one or more of the one or more sets of ray data elements of the identified store group.
Present Application #19/090,105 Claim 4
U.S. Patent #12,277,641 Claim 4
The shader processing unit of claim 3, wherein
The shader processing unit of claim 3, wherein
each set of ray data elements of a store group is associated with an offset indicating an ordering of that set of ray data elements with respect to the other sets of ray data elements in the store group, and
each set of ray data elements of a store group is associated with an offset indicating an ordering of that set of ray data elements with respect to the other sets of ray data elements in the store group, and
the information identifying one or more sets of ray data elements identifies sets of ray data elements associated with a contiguous block of offsets.
the information identifying one or more sets of ray data elements identifies sets of ray data elements associated with a contiguous block of offsets.
Present Application #19/090,105 Claim 5
U.S. Patent #12,277,641 Claim 5
The shader processing unit of claim 4, wherein
The shader processing unit of claim 4, wherein
the information identifying one or more ray data elements of the identified store group comprises information identifying a starting offset for the contiguous block of offsets and information identifying a number of offsets in the contiguous block of offsets.
the information identifying one or more ray data elements of the identified store group comprises information identifying a starting offset for the contiguous block of offsets and information identifying a number of offsets in the contiguous block of offsets.
Present Application #19/090,105 Claim 6
U.S. Patent #12,277,641 Claim 6
The shader processing unit of claim 3, wherein
The shader processing unit of claim 3, wherein
when at least one of the identified sets of ray data elements comprises two or more ray data elements, the information identifying one or more ray data elements of the identified store group comprises information identifying a ray data element of each of the at least one of the identified sets of ray data elements that comprise two or more ray data elements.
when at least one of the identified sets of ray data elements comprises two or more ray data elements, the information identifying one or more ray data elements of the identified store group comprises information identifying a ray data element of each of the at least one of the identified sets of ray data elements that comprise two or more ray data elements.
Present Application #19/090,105 Claim 7
U.S. Patent #12,277,641 Claim 7
The shader processing unit of claim 1, wherein:
The shader processing unit of claim 1, wherein:
the identified ray data elements for the one or more rays are sent to the external unit in a plurality of store transactions, each store transaction comprising up to a predetermined maximum number of ray data elements;
the identified ray data elements for the one or more rays are sent to the external unit in a plurality of store transactions, each store transaction comprising up to a predetermined maximum number of ray data elements;
the store logic is configured to divide the identified ray data elements for the one or more rays into the plurality of store transactions; and
the store logic is configured to divide the identified ray data elements for the one or more rays into the plurality of store transactions; and
the one or more store requests sent from the store logic to the external unit comprises a store transaction request for each of the plurality of store transactions.
the one or more store requests sent from the store logic to the external unit comprises a store transaction request for each of the plurality of store transactions.
Present Application #19/090,105 Claim 8
U.S. Patent #12,277,641 Claim 8
The shader processing unit of claim 7, wherein
The shader processing unit of claim 7, wherein
each store transaction comprises ray data elements associated with a same ray of the one or more rays.
each store transaction comprises ray data elements associated with a same ray of the one or more rays.
Present Application #19/090,105 Claim 9
U.S. Patent #12,277,641 Claim 9
The shader processing unit of claim 7, wherein
The shader processing unit of claim 7, wherein
the ray data elements of each store group are divided into one or more blocks of ray data elements, and
the ray data elements of each store group are divided into one or more blocks of ray data elements, and
each store transaction comprises ray data elements in a same block of ray data elements.
each store transaction comprises ray data elements in a same block of ray data elements.
Present Application #19/090,105 Claim 10
U.S. Patent #12,277,641 Claim 10
The shader processing unit of claim 9, wherein:
The shader processing unit of claim 9, wherein:
the one or more ray data elements of each store group are divided into one or more sets of ray data elements, and the information identifying one or more ray data elements of the identified store group comprises information identifying one or more of the one or more sets of ray data elements of the identified store group; and
the one or more ray data elements of each store group are divided into one or more sets of ray data elements, and the information identifying one or more ray data elements of the identified store group comprises information identifying one or more of the one or more sets of ray data elements of the identified store group; and
each block of ray data elements for a store group comprises one or more of the one or more sets of ray data elements of that store group.
each block of ray data elements for a store group comprises one or more of the one or more sets of ray data elements of that store group.
Present Application #19/090,105 Claim 11
U.S. Patent #12,277,641 Claim 11
The shader processing unit of claim 10, wherein:
The shader processing unit of claim 10, wherein:
each set of ray data elements of a store group is associated with an offset indicating an ordering of that set of ray data elements with respect to the other sets of ray data elements in the store group, and the information identifying one or more sets of ray data elements identifies sets of ray data elements associated with a contiguous block of offsets; and
each set of ray data elements of a store group is associated with an offset indicating an ordering of that set of ray data elements with respect to the other sets of ray data elements in the store group, and the information identifying one or more sets of ray data elements identifies sets of ray data elements associated with a contiguous block of offsets; and
each block of ray data elements for a store group comprises sets of ray data elements of said store group associated with a contiguous block of offsets.
each block of ray data elements for a store group comprises sets of ray data elements of that store group associated with a contiguous block of offsets.
Present Application #19/090,105 Claim 12
U.S. Patent #12,277,641 Claim 12
The shader processing unit of claim 10, wherein
The shader processing unit of claim 10, wherein
each store transaction request comprises information identifying the store group identified in the ray store instruction, information identifying a block of ray data elements of the store group, information identifying the ray data elements of the block that are identified in the ray store instruction, information identifying a ray of the one or more rays, and the identified ray data elements.
each store transaction request comprises information identifying the store group identified in the ray store instruction, information identifying a block of ray data elements of the store group, information identifying the ray data elements of the block that are identified in the ray store instruction, information identifying a ray of the one or more rays, and the identified ray data elements.
Present Application #19/090,105 Claim 13
U.S. Patent #12,277,641 Claim 13
The shader processing unit of claim 7, wherein
The shader processing unit of claim 7, wherein
the store logic is configured to divide the identified ray data elements for the one or more rays into the plurality of store transactions by, for each of the one or more rays, determining which blocks of ray data elements of the identified store group comprises an identified ray data element, and
the store logic is configured to divide the identified ray data elements for the one or more rays into the plurality of store transactions by, for each of the one or more rays, determining which blocks of ray data elements of the identified store group comprises an identified ray data element, and
each block of ray data elements that comprises an identified ray data element, generating a store transaction request to store the identified ray data elements in that block for that ray.
for each block of ray data elements that comprises an identified ray data element, generating a store transaction request to store the identified ray data elements in that block for that ray.
Present Application #19/090,105 Claim 14
U.S. Patent #12,277,641 Claim 14
The shader processing unit of claim 1, wherein
The shader processing unit of claim 1, wherein
the ray store instruction is associated with a plurality of rays and the one or more rays for which the identified ray data elements are stored are active rays of the plurality of rays.
the ray store instruction is associated with a plurality of rays and the one or more rays for which the identified ray data elements are stored are active rays of the plurality of rays.
Present Application #19/090,105 Claim 15
U.S. Patent #12,277,641 Claim 15
The shader processing unit of claim 1, wherein
The shader processing unit of claim 1, wherein
the ray store instruction further comprises information identifying a location in storage where the identified ray data elements are stored, and
the ray store instruction further comprises information identifying a location in the storage where the identified ray data elements are stored, and
the store logic is configured to retrieve the identified ray data elements from the identified location.
the store logic is configured to retrieve the identified ray data elements from the identified location.
Present Application #19/090,105 Claim 16
U.S. Patent #12,277,641 Claim 16
The shader processing unit of claim 1, wherein
The shader processing unit of claim 1, wherein
each store group of the plurality of store groups is associated with a unique identifier and the information identifying a store group comprises the unique identifier associated with the store group.
each store group of the plurality of store groups is associated with a unique identifier and the information identifying a store group comprises the unique identifier associated with the store group.
Present Application #19/090,105 Claim 17
U.S. Patent #12,277,641 Claim 17
A method of storing ray tracing data generated at a shader processing unit of a graphics processing unit,
A method of processing a ray tracing shader at a shader processing unit of a graphics processing unit,
the shader processing unit configured to execute one or more shaders,
the one or more shaders comprising one or more ray tracing shaders that generate ray data associated with one or more rays, the ray data for a ray comprising a plurality of ray data elements (Limitation A),
the method comprising:
the method comprising:
receiving, at the shader processing unit, a ray store instruction that comprises:
receiving, at the shader processing unit, a ray store instruction that comprises:
(i) information identifying a store group of a plurality of store groups, each store group of the plurality of store groups comprising one or more ray data elements,
(i) information identifying a store group of a plurality of store groups, each store group of the plurality of store groups comprising one or more ray data elements of the plurality of ray data elements, and
the ray data elements being associated with ray data generated by a ray tracing shader, and
Limitation A above
(ii) information identifying one or more ray data elements of the identified store group to be stored in an external unit;
(ii) information identifying one or more ray data elements of the identified store group to be stored in an external unit;
retrieving the identified ray data elements for one or more rays; and
in response to receiving the ray store instruction, retrieving the identified ray data elements for one or more rays from storage of the shader processing unit; and
sending one or more store requests from the shader processing unit to an external unit which causes the external unit to store the identified ray data elements.
sending one or more store requests from the shader processing unit to an external unit which causes the external unit to store the identified ray data elements for the one or more rays.
Claim 17 of the present application differs from claim 17 of the patent application in that claim 17 of the present application is broader in scope than claim 17 of the patent application, thus encompasses that of the patent application.
Present Application #19/090,105 Claim 18
U.S. Patent #12,277,641 Claim 18
A shader processing unit configured to perform the method as set forth in claim 17.
A shader processing unit configured to perform the method as set forth in claim 17.
Present Application #19/090,105 Claim 19
U.S. Patent #12,277,641 Claim 19
A graphics processing unit comprising the shader processing unit as set forth in claim 1.
A graphics processing unit comprising the shader processing unit as set forth in claim 1.
Present Application #19/090,105 Claim 20
U.S. Patent #12,277,641 Claim 20
A non-transitory computer readable storage medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture the shader processing unit as set forth in claim 1.
A non-transitory computer readable storage medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture the shader processing unit as set forth in claim 1.
Allowable Subject Matter
Claims 1-20 would be allowable if the Double Patenting rejection set forth above may be overcome.
The following is a statement of reasons for the indication of allowable subject matter: The present invention relates to a system and method for writing ray data from a shader processing unit of a graphics processing unit.
Prior art includes:
Nordlund et al. (US 2013/0155080)(cited in the Information Disclosure Statement (IDS) filed March 25, 2025) disclose a system comprising a graphics processing unit (GPU), further comprising a shader processor(s), functional units, and a command processor (see Figure 1), where the GPU may further comprise a memory copy engine and GPU memory, and the shader processor(s) may further comprise a shader processor (SP) memory (see Figure 3), each in communication with an external memory. Nordlund et al. further describe its memory copy engine to facilitate data exchange between SP memory, GPU memory, and further to an external memory, by receiving instructions from the command processor that identify data to transfer between SP memory, GPU memory, and/or external memory and when to transfer the data. In response to receiving the instructions, the memory copy engine carries out the data transfer between each of SP memory, GPU memory, and/or external memory (see at least [0059] thru [0061]). Nordlund et al. also specifically disclose its GPU, e.g. shader processor(s), may perform ray-tracing (see at least [0031]). Nordlund et al. (US 2013/0057562) further elaborates on the functionality of the memory copy engine.
Laine et al. (US 2016/0071312)(cited in the Information Disclosure Statement (IDS) filed March 25, 2025) disclose a system and method of performing tree traversal for a tree data structure, including performing ray-tracing, e.g. intersecting a ray with a tree that represents a plurality of geometric primitives, where the tree may be implemented as a bounding volume hierarchy (BVH), spatial subdivision tree, and the like. Laine et al. further describe, in response to an instruction, e.g. a request to perform a tree traversal operation for a given ray data structure, a ray data structure may be loaded into local storage of a tree-traversal unit (e.g. shader) and a traversal stack data structure may be initialized in the local storage. The ray data structure may be assigned an identifier for identifying the particular ray data structure associated with a particular tree traversal operation. The ray data structure may be stored in the local storage such that the ray data structure may be quickly accessed during the tree traversal operation associated with the ray. A ray may be defined, e.g., by a set of tuples specifying a starting coordinate and an ending coordinate, or, alternately, a starting coordinate, a direction, and a magnitude. The ray data structure may include one or more coordinates for specifying the ray, one or more attributes of the ray, and so forth (see at least [0094] thru [0103]).
Rabbani Rankouhi et al. (US 2022/0036639)(cited in the Information Disclosure Statement (IDS) filed March 25, 2025) disclose a system and method of performing ray intersection for ray tracing, the method includes dynamically allocating a private memory space, e.g. a ray shader core space for storing ray data, that allows sharing of data between different thread groups (see at least Figure 8, [0093] thru [0099]).
Although the prior art of record discloses certain features of the claimed invention as outlined above, the prior art of record fails to explicitly teach or suggest, singly or combined, the limitations of independent claims 1 and 17-20 as recited as a whole.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JACINTA M CRAWFORD whose telephone number is (571)270-1539. The examiner can normally be reached 8:30a.m. to 4:30p.m.
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, King Y. Poon can be reached at (571)272-7440. 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.
/JACINTA M CRAWFORD/Primary Examiner, Art Unit 2617