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 .
Response to Amendment
This action is in response to the amendment filed on 3rd December, 2025. Claim 17 has been cancelled. Claims 1-16 and 18-21 remain rejected in the application.
Response to Arguments
Applicant's arguments with respect to Claims 1, 14, and 20, filed on 3rd December, 2025, with respect to the rejection under 35 U.S.C. § 103 regarding that the prior art does not teach "for at least one selected tile of the plurality of tiles, storing a per-tile primitive block list indicating which of the one or more primitive blocks contain primitives located within that tile" and "for the at least one selected tile, determining whether the output of a previous render for that tile can be used as an output for the render based on the per-tile primitive block list and the primitive block data for the primitive blocks indicated therein, and corresponding data from the previous render". The proposed arguments have been fully considered, but are not persuasive.
In response to applicant's argument that “comparing signatured generated from draw calls does not correspond to determining whether the output of a previous tile render can be used as an output for a current render based on a per-tile primitive block list and primitive block data for the blocks in the list”, a recitation of the intended use of the claimed invention must result in a structural difference between the claimed invention and the prior art in order to patentably distinguish the claimed invention from the prior art. If the prior art structure is capable of performing the intended use, then it meets the claim. Therefore, applicant’s remark cannot be considered persuasive.
In response to applicant's argument that Murarka does not disclose another alternative method for detecting redundancy in the rendering of different frames using per-tile primitive block lists and primitive block data, the fact that the inventor has recognized another advantage which would flow naturally from following the suggestion of the prior art cannot be the basis for patentability when the differences would otherwise be obvious. See Ex parte Obiaya, 227 USPQ 58, 60 (Bd. Pat. App. & Inter. 1985). Therefore, applicant’s remark cannot be considered persuasive.
In response to applicant's arguments against the references individually, 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).
In response to applicant’s argument that there is no teaching, suggestion, or motivation to combine the references, the examiner recognizes that obviousness may be established by combining or modifying the teachings of the prior art to produce the claimed invention where there is some teaching, suggestion, or motivation to do so found either in the references themselves or in the knowledge generally available to one of ordinary skill in the art. See In re Fine, 837 F.2d 1071, 5 USPQ2d 1596 (Fed. Cir. 1988), In re Jones, 958 F.2d 347, 21 USPQ2d 1941 (Fed. Cir. 1992), and KSR International Co. v. Teleflex, Inc., 550 U.S. 398, 82 USPQ2d 1385 (2007). In this case, Murarka on Paragraph [0073] discloses "the tiles generated in the preceding frame with the same signatures of the drawcalls of the succeeding frame may be used in the generation of tiles of the successive frame to reduce the computational load and/or may reduce the power used to generate the tiles of the successive frame". Therefore, applicant’s remark cannot be considered persuasive.
In response to applicant's argument that the prior art does not teach "for at least one selected tile of the plurality of tiles, storing a per-tile primitive block list indicating which of the one or more primitive blocks contain primitives located within that tile" and "for the at least one selected tile, determining whether the output of a previous render for that tile can be used as an output for the render based on the per-tile primitive block list and the primitive block data for the primitive blocks indicated therein, and corresponding data from the previous render" as recited in Claim 1, these limitations are taught by the combination of Brigg and Murarka. In particular, Brigg teaches the following:
Paragraph [0067]: discloses the rasterization logic 306 rendering "the primitives in a tile-by-tile <read on at least one selected tile> manner by fetching the untransformed display list <read on per-tile primitive block list> for the tile and fetching the untransformed geometry data for the untransformed primitives that, when transformed, fall, at least partially, within a tile as indicated by the untransformed display list for that tile," where "once transformed geometry data (e.g. transformed primitives) for an untransformed primitive block has been generated it is stored in a cache (e.g. as a transformed primitive block) for use in rendering the tile that caused its generation <read on determine whether output of render for selected tile can be used as output for rendering>, and potentially for use in rendering one or more subsequent tiles".
Additionally, Murarka teaches the following:
Paragraph [0083]: discloses "the graphics processing apparatus 600 may identify tiles of the succeeding frame <read on selected tile> that are identical to tiles of a selected preceding frame <read on previous render for that tile>," where "information <read on primitive block data for primitive blocks> obtained from a comparison of drawcalls <read on corresponding data from previous render> may be used to indicate whether there are tiles <read on per-tile primitive block list> that did not change from the preceding frame to the succeeding frame".
Therefore, applicant’s remark cannot be considered persuasive.
Regarding arguments to Claims 2-13, 15-19, and 21, they directly/indirectly depend on independent Claims 1, 14, and 20 respectively. Applicant does not argue anything other than independent Claims 1, 14, and 20. The limitations in those claims, in conjunction with combination, was previously established as explained.
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-7, 9, 13-16, and 18-21 are rejected under 35 U.S.C. 103 as being unpatentable over Brigg et al. (US 20200202484 A1, previously cited), hereinafter referenced as Brigg, in view of Murarka et al. (US 20180040098 A1, previously cited), hereinafter referenced as Murarka.
Regarding Claim 1, Brigg discloses a method of performing a render using a graphics processing unit configured to implement a tile-based graphics pipeline in which a rendering space is sub-divided into a plurality of tiles (Brigg, FIG. 14 teaches method 1400, which manages primitive blocks in a rendering pipeline), the method comprising:
PNG
media_image1.png
671
456
media_image1.png
Greyscale
receiving a plurality of primitives processed by a geometry processing stage of the graphics pipeline (Brigg, [0056]: teaches a plurality of untransformed primitives; [0054]: teaches the geometry processing logic 304 <read on geometry processing stage>, where the "transformation logic 308 receives untransformed geometry for a plurality of untransformed primitives" as shown in FIG. 3);
PNG
media_image2.png
382
604
media_image2.png
Greyscale
grouping the primitives into one or more sets (Brigg, [0056]: teaches a plurality of untransformed primitives being divided into groups <read on sets>) and
generating a primitive block from each set to form one or more primitive blocks (Brigg, [0056]: teaches the primitive block generator 309 dividing the "plurality of untransformed primitives into groups based on the transformed position data therefor, and generates a primitive block for each group which identifies the portion of the untransformed geometry data related to those untransformed primitives");
determining which of the primitives are located within each tile of the plurality of tiles (Brigg, [0101]: teaches "primitives of the current primitive block fall within multiple tiles and/or the current primitive falls within multiple tiles"; [0103]: teaches the primitive block generator determining whether the current primitive is to be added to the current primitive block);
storing primitive block data characterising the content of the one or more primitive blocks (Brigg, [0091]: teaches the untransformed primitive block being transformed only when the transformed geometry data related to the identified transformed primitives are stored in the transformed primitive block <read on primitive block data>);
for at least one selected tile of the plurality of tiles, storing a per-tile primitive block list indicating which of the one or more primitive blocks contain primitives located within that tile (Brigg, [0064]: teaches transformed geometry data of an untransformed primitive block being generated and then stored in a cache for use in rendering; [0064]: further teaches the rasterization logic 306 rendering "the primitives in a tile-by-tile <read on at least one selected tile> manner by fetching the untransformed display list <read on per-tile primitive block list> for the tile and fetching the untransformed geometry data for the untransformed primitives that, when transformed, fall, at least partially, within a tile as indicated by the untransformed display list for that tile"); and
for the at least one selected tile, determining whether the output of a [[previous]] render for that tile can be used as an output for the render based on the per-tile primitive block list and the primitive block data for the primitive blocks indicated therein, [[and corresponding data from the previous render]] (Brigg, [0067]: teaches the rasterization logic 306 rendering "the primitives in a tile-by-tile <read on at least one selected tile> manner by fetching the untransformed display list <read on per-tile primitive block list> for the tile and fetching the untransformed geometry data for the untransformed primitives that, when transformed, fall, at least partially, within a tile as indicated by the untransformed display list for that tile," where "once transformed geometry data (e.g. transformed primitives) for an untransformed primitive block has been generated it is stored in a cache (e.g. as a transformed primitive block) for use in rendering the tile that caused its generation <read on determine whether output of render for selected tile can be used as output for rendering>, and potentially for use in rendering one or more subsequent tiles").
However, Brigg does not expressly disclose
for the at least one selected tile, determining whether the output of a previous render for that tile can be used as an output for the render based on the per-tile primitive block list and the primitive block data for the primitive blocks indicated therein, and corresponding data from the previous render.
Murarka discloses
for the at least one selected tile, determining whether the output of a previous render for that tile can be used as an output for the render based on the per-tile primitive block list and the primitive block data for the primitive blocks indicated therein, and corresponding data from the previous render (Murarka, [0083]: teaches "the graphics processing apparatus 600 may identify tiles of the succeeding frame <read on selected tile> that are identical to tiles of a selected preceding frame <read on previous render for that tile>," where "information <read on primitive block data for primitive blocks> obtained from a comparison of drawcalls <read on corresponding data from previous render> may be used to indicate whether there are tiles <read on per-tile primitive block list> that did not change from the preceding frame to the succeeding frame"; Note: it should be noted that although not expressly stated, primitives are commonly used in the art as the GPU uses a 3D graphics pipeline to render 3D objects; in addition, the draw command (i.e., the drawcall) indicates which object to render in an image or a frame).
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claim 14, it recites the limitations that are similar in scope to Claim 1, but in a graphics processing system. As shown in the rejection, the combination of Brigg and Murarka discloses the limitations of Claim 1. Additionally, Brigg discloses a graphics processing system configured to implement a tile-based graphics pipeline in which a rendering space is sub-divided into a plurality of tiles (Brigg, FIG. 3 teaches a graphics processing system 300; [0056]: teaches "the primitive block generator 309 divides the plurality of untransformed primitives into groups based on the transformed position data"), comprising:
a primitive block generator configured to (Brigg, [0120]: teaches a primitive block generator as shown in FIG. 10):…
PNG
media_image3.png
398
602
media_image3.png
Greyscale
Thus, Claim 14 is met by Brigg according to the mapping presented in the rejection of Claim 1, given the method corresponds to a graphics processing system.
Regarding Claim 20, it recites the limitations that are similar in scope to Claim 1, but in a non-transitory computer readable storage medium. As shown in the rejection, the combination of Brigg and Murarka discloses the limitations of Claim 1. Additionally, Brigg discloses 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 a graphics processing system configured to implement a tile-based graphics pipeline in which a rendering space is sub-divided into a plurality of tiles (Brigg, [0023]: teaches "a non-transitory computer readable storage medium having stored there on a computer readable description of a graphics processing system, primitive block generator or cache"; [0022]: teaches the graphics processing system being provided "an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the system to manufacture the graphics processing systems, primitive block generators and caches"; [0020]: teaches "the graphics processing system having a rendering space sub-divided into a plurality of tiles to which primitives can be associated"),
the graphics processing system (Brigg, FIG. 3 teaches a graphics processing system 300) comprising:
a primitive block generator configured to (Brigg, [0120]: teaches a primitive block generator as shown in FIG. 10):…
Thus, Claim 20 is met by Brigg according to the mapping presented in the rejection of Claim 1, given the method corresponds to a non-transitory computer readable storage medium.
Regarding Claims 2 and 15, the combination of Brigg and Murarka discloses the method and the graphics processing system of Claims 1 and 14 respectively. Brigg does not expressly disclose the limitations of Claims 2 and 15; however, Murarka discloses wherein determining whether the output of a previous render for that tile can be used as an output for the render comprises
comparing the primitive block data for the primitive blocks indicated by the per-tile primitive block list with corresponding primitive block data of the previous render (Murarka, [0083]: teaches "the graphics processing apparatus 600 may identify tiles of the succeeding frame that are identical to tiles of a selected preceding frame <read on previous render for that tile>," where "information <read on primitive block data for primitive blocks> obtained from a comparison of drawcalls <read on corresponding primitive block data> may be used to indicate whether there are tiles <read on per-tile primitive block list> that did not change from the preceding frame to the succeeding frame").
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claim 3, the combination of Brigg and Murarka discloses the method of Claim 2. Brigg does not expressly disclose the limitations of Claim 3; however, Murarka discloses wherein determining whether the output of a previous render for that tile can be used as an output for the render further comprises,
in response to determining that the primitive block data does match, using the output of the previous render for that tile as the output for the render (Murarka, [0061]: teaches the graphics processing apparatus 10 determining whether to use a result of rendering the first tile of the preceding frame to render the second tile of the succeeding frame; [0049]: teaches using part or the whole previous rendered frame to render the current frame <read on output for render>).
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claim 16, the combination of Brigg and Murarka discloses the graphics processing system of Claim 15. Brigg does not expressly disclose the limitations of Claim 16; however, Murarka discloses wherein, to determine whether the output of a previous render for that tile can be used as an output for the render the testing unit is further configured to,
in response to determining that the primitive block data does match, use the output of the previous render for that tile as the output for the render (Murarka, [0061]: teaches the graphics processing apparatus 10 determining whether to use a result of rendering the first tile of the preceding frame to render the second tile of the succeeding frame; [0049]: teaches using part or the whole previous rendered frame to render the current frame <read on output for render>); and
in response to determining that the primitive block data does not match, cause the graphics pipeline to render that tile (Murarka, [0057]: teaches "when the signature of the first drawcall is not identical to the signature of the second drawcall <read on output based on corresponding data from previous render>, the graphics processing apparatus 10 may re-render the second tile rather than use the result of the rendered first tile").
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claim 4, the combination of Brigg and Murarka discloses the method of Claim 2. Brigg does not expressly disclose the limitations of Claim 4; however, Murarka discloses wherein determining whether the output of a previous render for that tile can be used as an output for the render further comprises,
in response to determining that the primitive block data does not match, causing the graphics pipeline to render that tile (Murarka, [0061]: teaches the graphics processing apparatus 10 determining whether to use a result of rendering the first tile of the preceding frame to render the second tile of the succeeding frame; [0056]: teaches the graphics processing apparatus 10 reusing a result of rendering the first tile to render the second tile).
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claims 5 and 18, the combination of Brigg and Murarka discloses the method and the graphics processing system of Claims 2 and 15 respectively. Brigg does not expressly disclose the limitations of Claims 5 and 18; however, Murarka discloses wherein determining whether the output of a previous render for that tile can be used as an output for the render further comprises,
prior to comparing the primitive block data, comparing the per-tile primitive block list with a corresponding per-tile primitive block list from the previous render and (Murarka, [0083]: teaches "the graphics processing apparatus 600 may identify tiles of the succeeding frame that are identical to tiles of a selected preceding frame <read on previous render for that tile>," where "information <read on primitive block data for primitive blocks> obtained from a comparison of drawcalls <read on corresponding primitive block data> may be used to indicate whether there are tiles <read on per-tile primitive block list> that did not change from the preceding frame to the succeeding frame"),
in response to determining that the per-tile primitive block lists do not match, causing the graphics pipeline to render that tile (Murarka, [0057]: teaches "when the signature of the first drawcall is not identical to the signature of the second drawcall <read on output based on corresponding data from previous render>, the graphics processing apparatus 10 may re-render the second tile rather than use the result of the rendered first tile").
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claim 6, the combination of Brigg and Murarka discloses the method of Claim 1. Additionally, Brigg further discloses wherein
the per-tile primitive block list comprises a bitmask having a plurality of bits (Brigg, [0061]: teaches the untransformed display list <read on per-tile primitive block list> for a tile comprising "information identifying the untransformed primitive blocks that contain the relevant untransformed primitives and a primitive mask <read on bitmask> for each identified untransformed primitive block that identifies which untransformed primitives within that untransformed primitive block, when transformed, lie, at least partially, within the bounds of that tile"; [0061]: further teaches "if each untransformed primitive block can comprise a maximum of 32 untransformed primitives then each primitive mask may comprise 32 bits <read on plurality of bits>"),
each representing a primitive block (Brigg, [0061]: teaches "a primitive mask for each identified untransformed primitive block"), and
the plurality of bits are set to indicate which of the one or more primitive blocks contain primitives located within that tile (Brigg, [0061]: teaches "the primitive mask may comprise, for example, a bit for each untransformed primitive in the untransformed primitive block and may be set to one value (e.g., a "1") when that untransformed primitive is in the tile and set to another value (e.g., "0") when the untransformed primitive is not in the tile").
Regarding Claim 7, the combination of Brigg and Murarka discloses the method of Claim 1. Additionally, Brigg further discloses wherein
grouping the primitives into one or more sets (Brigg, [0050]: teaches grouping untransformed primitives into untransformed primitive blocks) and
generating a primitive block from each set to form one or more primitive blocks (Brigg, [0056]: teaches "the primitive block generator 309 divides the plurality of untransformed primitives into groups based on the transformed position data therefor, and generates a primitive block for each group which identifies the portion of the untransformed geometry data related to those untransformed primitives") comprises
identifying primitives having state data in common (Brigg, [0057]: teaches an untransformed primitive block containing a header 404, state data 406, and primitive index data 408;
[0059]: teaches "the state data may comprise information that identifies the state of a plurality of parameters wherein each parameter is defined by a plurality of bits"; [0117]: teaches a plurality of primitives in a primitive block sharing the same render state data <read on common state data> (e.g., the same depth compare mode and type of primitive)) and
storing in the primitive block vertex coordinates (Brigg, [0051]: teaches grouping "the untransformed primitives into untransformed primitive blocks based on the corresponding transformed geometry data <read on primitive block vertex coordinates> and store the untransformed primitive blocks in memory 302") and
vertex varyings for the identified primitives in association with the common state data (Brigg, [0059]: teaches "the state data may be large (e.g., 5 double words or greater)", where "it comprises information that identifies the state of a plurality of parameters wherein each parameter is defined by a plurality of bits"; FIG. 4 teaches the primitive index data 408, where a table of primitives contains a list of vertices <read on vertex varyings>).
Regarding Claim 9, the combination of Brigg and Murarka discloses the method of Claim 1. Brigg does not expressly disclose the limitations of Claim 9; however, Murarka discloses
storing render-wide data indicating one or more characteristics of the render (Murarka, [0053]: teaches the graphics processing apparatus 10 generating a signature <read on render-wide data> of the first and second drawcalls; [0054]: teaches the graphics processing apparatus 10 generating a signature for the fir and second drawcalls, where the generation of the signature uses graphics data, such as vertex data, index data, attribute data, shaders, textures, and uniforms <read on characteristics of the render>; [0055]: teaches the graphics processing apparatus 10 comparing the signature of the first drawcall to the signature of the second drawcall; Note: it should be noted that paragraph [0021] of the specification states that "render-wide data" comprises a valid flag, which is used to determine whether the output of a previous render for a given tile can be reused), and wherein
determining whether the output of a previous render for that tile can be used as an output for the render is further based on the render-wide data for the render and the previous render (Murarka, [0061]: teaches the graphics processing apparatus 10 determining whether to use a result of rendering the first tile of the preceding frame to render the second tile of the succeeding frame).
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Regarding Claims 13 and 19, the combination of Brigg and Murarka discloses the method and the graphics processing system of Claims 1 and 14 respectively. Additionally, Brigg further discloses wherein
storing primitive block data characterising the content of the one or more primitive blocks (Brigg, [0091]: teaches the untransformed primitive block being transformed only when the transformed geometry data related to the identified transformed primitives are stored in the transformed primitive block <read on primitive block data>) comprises
splitting the primitive block into a plurality of portions (Brigg, [0147]: teaches the hidden surface removal (HSR) stage, where markers are inserted in the stream of data "to separate primitives and to separate primitive blocks <read on plurality of portions>") and
storing primitive block data for each of the portions (Brigg, [0137]: teaches transformed primitive blocks being stored into subdivided memory, where each transformed primitive block is associated with a specific tile); and wherein
the per-tile primitive block list further indicates which portion of the primitive block contains primitives located within that tile (Brigg, [0064]: teaches transformed geometry data of an untransformed primitive block being generated and then stored in a cache for use in rendering; [0064]: further teaches the rasterization logic 306 rendering "the primitives in a tile-by-tile <read on at least one selected tile> manner by fetching the untransformed display list <read on per-tile primitive block list> for the tile and fetching the untransformed geometry data for the untransformed primitives that, when transformed, fall, at least partially, within a tile as indicated by the untransformed display list for that tile").
Regarding Claim 21, the combination of Brigg and Murarka discloses the method of Claim 1. Brigg does not expressly disclose the limitations of Claim 21; however, Murarka discloses wherein the method comprises
for the at least one selected tile, determining whether the output of a previous render for that tile can be used as an output for the render by (Murarka, [0061]: teaches the graphics processing apparatus 10 determining whether to use a result of rendering the first tile of the preceding frame to render the second tile of the succeeding frame):
determining whether the per-tile primitive block list of that tile matches the corresponding per-tile primitive block list from the previous render (Murarka, [0083]: teaches "the graphics processing apparatus 600 may identify tiles of the succeeding frame that are identical to tiles of a selected preceding frame <read on previous render for that tile>," where "information <read on primitive block data for primitive blocks> obtained from a comparison of drawcalls <read on corresponding primitive block data> may be used to indicate whether there are tiles <read on per-tile primitive block list> that did not change from the preceding frame to the succeeding frame"); and
(i) in response to determining that the per-tile primitive block lists match, determining whether the primitive block data for the primitive blocks indicated by the per-tile primitive block list matches the corresponding primitive block data of the previous render; or(ii) in response to determining that the per-tile primitive block lists do not match, determining that the output of the previous render for that tile cannot be used as an output for the render (Murarka, [0057]: teaches "when the signature of the first drawcall is not identical <read on determining that per-tile primitive block lists do not match> to the signature of the second drawcall <read on output based on corresponding data from previous render>, the graphics processing apparatus 10 may re-render the second tile <read on determining output of previous render for that tile cannot be used as output for render> rather than use the result of the rendered first tile").
Murarka is analogous art with respect to Brigg because they are from the same field of endeavor, namely tile-based rendering techniques. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement signatures to determine draw calls for each corresponding tile for their corresponding frames as taught by Murarka into the teaching of Brigg. The suggestion for doing so would allow the system to determine common regions/areas of a succeeding frame, which results in the system only rendering changing areas, thereby improving the overall rendering pipeline. Therefore, it would have been obvious to combine Murarka with Brigg.
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Brigg et al. (US 20200202484 A1, previously cited), hereinafter referenced as Brigg, in view of Murarka et al. (US 20180040098 A1, previously cited), hereinafter referenced as Murarka as applied to Claim 7 above respectively, and further in view of Salvi et al. (US 20220395748 A1, previously cited), hereinafter referenced as Salvi.
Regarding Claim 8, the combination of Brigg and Murarka discloses the method of Claim 7. The combination of Brigg and Murarka does not expressly disclose the limitations of Claim 8; however, Salvi discloses wherein storing the primitive block data characterising the content of the one or more primitive blocks comprises
generating a hash from at least one ofthe vertex coordinates (Salvi, [0054]: teaches a hash function processing projected coordinates <read on vertex coordinates> to generate a hash value),
the vertex varyings (Salvi, [0058]: teaches utilizing spatial hashing to improve the efficiency of querying a projective hash map for neighboring points <read on vertex varyings>), and
the common state data (Salvi, [0068]: teaches using the same data <read on common state data> for a given point that can be inserted into the projective hash map); and
storing the hash value (Salvi, [0082]: teaches generating a hash value, where the processor then stores the corresponding data).
Salvi is analogous art with respect to Brigg, in view of Murarka because they are from the same field of endeavor, namely tile-based graphics rendering of primitives. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to utilize a hash function to generate hash values for rendering primitives as taught by Salvi into the teaching of Brigg, in view of Murarka. The suggestion for doing so would allow for one primitive to contain multiple hash values for different LOD indicator values, thereby allowing for varying levels of detail of rendered primitives. Therefore, it would have been obvious to combine Salvi with Brigg, in view of Murarka.
Claims 10-11 are rejected under 35 U.S.C. 103 as being unpatentable over Brigg et al. (US 20200202484 A1, previously cited), hereinafter referenced as Brigg, in view of Murarka et al. (US 20180040098 A1, previously cited), hereinafter referenced as Murarka as applied to Claim 9 above respectively, and further in view of Sideris et al. (US 20160110837 A1, previously cited), hereinafter referenced as Sideris.
Regarding Claim 10, the combination of Brigg and Murarka discloses the method of Claim 9. The combination of Brigg and Murarka does not expressly disclose the limitations of Claim 10; however, Sideris discloses wherein the render-wide data comprises
a clear colour (Sideris, [0047]: teaches tiles containing a clear color value), and
determining whether the output of a previous render for that tile can be used as an output for the render (Sideris, [0047]: teaches a clear determinator 35 comparing the CRC value with the CRC buffer, where it determines whether a given tile has been previously cleared or not <read on previous render> (e.g., a descriptor default clear color value); FIG. 3 teaches step 53, where it is the "normal graphics processing of this tile", which follows steps 52, 55, and 57) comprises
PNG
media_image4.png
548
386
media_image4.png
Greyscale
determining whether the clear colour matches with that of the previous render (Sideris, [0050]: teaches step 55, where if a given tile has been previously cleared <read on clear color matching>) and,
if not, causing the graphics pipeline to render that tile (Sideris, FIG. 3 teaches step 55, where the system determines if the tile has been previously cleared or not and if not, moves to step 56, where it determines if the tile should be cleared or drawn).
Sideris is analogous art with respect to Brigg, in view of Murarka because they are from the same field of endeavor, namely tile-based rendering and management. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement a checksum for tiles as taught by Sideris into the teaching of Brigg, in view of Murarka. The suggestion for doing so would allow the system to determine if a tile has a clear color, and if so, skip rendering. Therefore, it would have been obvious to combine Sideris with Brigg, in view of Murarka.
Regarding Claim 11, the combination of Brigg and Murarka discloses the method of Claim 9. The combination of Brigg and Murarka does not expressly disclose the limitations of Claim 11; however, Sideris discloses wherein the render-wide data comprises
a valid flag (Sideris, [0024]: teaches a checksum value <read on valid flag> (e.g., a cyclical redundancy check (CRC) value) for a given tile, which is used for comparing the checksum value of a corresponding tile of the previous frame), and
determining whether the output of a previous render for that tile can be used as an output for the render (Sideris, [0024]: teaches the graphics processing apparatus determining if the checksum value of the current frame matches the previous frame; FIG. 3 teaches step 53, where it is the "normal graphics processing of this tile", which follows steps 52, 55, and 57) comprises
determining whether the valid flag for the render or the previous render has a predetermined value and (Sideris, [0024]: teaches the graphics processing apparatus "determining if the current tile has the predetermined value in dependence on the checksum value for the current tile"),
if so, causing the graphics pipeline to render that tile (Sideris, [0046]: teaches processing <read on rendering> the CRC value for each tile in the frame).
Sideris is analogous art with respect to Brigg, in view of Murarka because they are from the same field of endeavor, namely tile-based graphics processing and management. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to implement a cyclical redundancy check (CRC) for each tile as taught by Sideris into the teaching of Brigg, in view of Murarka. The suggestion for doing so would allow the system to determine if the current tile has a set predetermined value, indicating that the previous version of the current tile could be used instead, thereby improving rendering efficiency. Therefore, it would have been obvious to combine Sideris with Brigg, in view of Murarka.
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Brigg et al. (US 20200202484 A1, previously cited), hereinafter referenced as Brigg, in view of Murarka et al. (US 20180040098 A1, previously cited), hereinafter referenced as Murarka above respectively, and further in view of Sideris et al. (US 20160110837 A1, previously cited), hereinafter referenced as Sideris as applied to Claim 11 above respectively, and further in view of Bratt et al. (US 20210158598 A1, previously cited), hereinafter referenced as Bratt.
Regarding Claim 12, the combination of Brigg, Murarka, and Sideris discloses the method of Claim 11. The combination of Brigg and Murarka does not expressly disclose the limitations of Claim 12; however, Sideris discloses
setting the valid flag to the predetermined value based on at least one of (Sideris, [0032]: teaches the graphics processing apparatus setting a predetermined value of the display parameter for a tile):
[[data indicating that the render is part of a scene using multiple render targets;]]
[[data indicating that the render comprises more draw calls than a threshold number; and]]
[[the number of primitive blocks for the render exceeding a predefined limit.]]
Sideris is analogous art with respect to Brigg, in view of Murarka because they are from the same field of endeavor, namely tile-based rendering. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to utilize a CRC check for a predetermined value for each tile as taught by Sideris into the teaching of Brigg, in view of Murarka. The suggestion for doing so would enable the system determine to skip the current tile, thereby improving rendering efficiency. Therefore, it would have been obvious to combine Sideris with Brigg, in view of Murarka.
However, the combination of Brigg, Murarka, and Sideris does not expressly disclose
data indicating that the render is part of a scene using multiple render targets;
data indicating that the render comprises more draw calls than a threshold number; and
the number of primitive blocks for the render exceeding a predefined limit.
Bratt discloses
data indicating that the render is part of a scene using multiple render targets (Bratt, [0050]: teaches "an indication of associated state (control) data that may be required for rasterising/rendering the primitive" being stored in the respective data structure(s) <read on multiple render targets>; [0051]: teaches determining primitives with associated shared state data that indicates the rendering regions of the render output <read on scene>);
data indicating that the render comprises more draw calls than a threshold number (Bratt, [0118]: teaches the processing system determining "whether there is less than a threshold of available memory space <read on threshold number>"); and
the number of primitive blocks for the render exceeding a predefined limit (Bratt, [0134]: teaches "a fixed region of memory <read on predefined limit> that is partitioned into a number of fixed size blocks", where the memory space can be "dynamically reallocated over time" when new primitive data is generated).
Bratt is analogous art with respect to the combination of Brigg, Murarka, and Sideris because they are from the same field of endeavor, namely tile-based rendering management. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have the render pipeline analyze the data structure of each primitive as taught by Bratt into the combined teaching of Brigg, Murarka, and Sideris. The suggestion for doing so would allow the system to determine which region of the primitive should be rendered, thereby improving rendering efficiency. Therefore, it would have been obvious to combine Bratt with the combination of Brigg, Murarka, and Sideris.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Fishwick et al. (US 20200273141 A1) discloses generating and shading a computer graphics image in a tile-based computer graphics system.
THIS ACTION IS MADE FINAL. 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 KARL TRUONG whose telephone number is (703)756-5915. The examiner can normally be reached 7:30 AM - 5:00 PM.
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, Kent Chang can be reached at (571) 272-7667. 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.
/K.D.T./Examiner, Art Unit 2614
/KENT W CHANG/Supervisory Patent Examiner, Art Unit 2614