Patents by Inventor Steven Fishwick

Steven Fishwick has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11256629
    Abstract: Techniques are disclosed relating to filtering cache accesses. In some embodiments, a control unit is configured to, in response to a request to process a set of data, determine a size of a portion of the set of data to be handled using a cache. In some embodiments, the control unit is configured to determine filtering parameters indicative of a set of addresses corresponding to the determined size. In some embodiments, the control unit is configured to process one or more access requests for the set of data based on the determined filter parameters, including: using the cache to process one or more access requests having addresses in the set of addresses and bypassing the cache to access a backing memory directly, for access requests having addresses that are not in the set of addresses. The disclosed techniques may reduce average memory bandwidth or peak memory bandwidth.
    Type: Grant
    Filed: September 21, 2020
    Date of Patent: February 22, 2022
    Assignee: Apple Inc.
    Inventors: Karthik Ramani, Fang Liu, Steven Fishwick, Jonathan M. Redshaw
  • Publication number: 20210287324
    Abstract: Techniques are disclosed relating to using cost estimates for portions of a graphics frame to schedule graphics rendering tasks. In some embodiments, a processor generates a first set of cost estimates for respective different portions of a frame for a first render and a second set of cost estimates for respective different portions of a frame for a second render. In some embodiments, the processor compares the first set of cost estimates with the second set of cost estimates. In response to an output of the comparison meeting a first threshold level of similarity, the graphics processor may use one or more portions of the frame generated by the first render for the second render instead of performing the second render for the one or more portions.
    Type: Application
    Filed: March 13, 2020
    Publication date: September 16, 2021
    Inventor: Steven Fishwick
  • Publication number: 20210235111
    Abstract: A data processing system for performing motion estimation in a sequence of frames having first and second frames each divided into respective sets of blocks of pixels, includes a vector generator configured to form motion vector candidates representing mappings of pixels between the first and second frames; and a vector processor configured to, for a search block of the first frame, identify a first motion vector candidate ending in a block of the second frame collocated with the search block and form an output vector for the search block which is substantially parallel to the first motion vector candidate and represents a mapping of pixels from the search block to the second frame.
    Type: Application
    Filed: April 16, 2021
    Publication date: July 29, 2021
    Inventors: Steven Fishwick, Jonathan Diggins
  • Publication number: 20210201573
    Abstract: Graphics processing systems may render multiple views of a scene (e.g. a sequence of frames) in a tile-based manner. Groups of views may be rendered together such that tiles from a group of views are rendered in an interspersed order such that at least one tile from each of the views in the group is rendered before any of the views of the scene in the group are fully rendered. In this way similar tiles from different views within a group may be rendered sequentially. If a particular rendered tile is similar to the next tile to be rendered then data stored in a cache for rendering the particular tile is likely to be useful for rendering the next tile. Therefore, when rendering the next tile less data needs to be fetched from the system memory which can significantly improve the efficiency of the graphics processing system.
    Type: Application
    Filed: March 10, 2021
    Publication date: July 1, 2021
    Inventor: Steven Fishwick
  • Publication number: 20210110509
    Abstract: A computing system comprises graphics rendering logic and image processing logic. The graphics rendering logic processes graphics data to render an image using a rendering space which is sub-divided into a plurality of tiles. Cost indication logic obtains a cost indication for each of a plurality of sets of one or more tiles of the rendering space, wherein the cost indication for a set of one or more tiles is suggestive of a cost of processing rendered image values for a region of the rendered image corresponding to the set of one or more tiles. The image processing logic processes rendered image values for regions of the rendered image. The computing system causes the image processing logic to process rendered image values for regions of the rendered image in dependence on the cost indications for the corresponding sets of one or more tiles.
    Type: Application
    Filed: December 22, 2020
    Publication date: April 15, 2021
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Patent number: 10964105
    Abstract: Graphics processing systems may render multiple views of a scene (e.g. a sequence of frames) in a tile-based manner. Groups of views may be rendered together such that tiles from a group of views are rendered in an interspersed order such that at least one tile from each of the views in the group is rendered before any of the views of the scene in the group are fully rendered. In this way similar tiles from different views within a group may be rendered sequentially. If a particular rendered tile is similar to the next tile to be rendered then data stored in a cache for rendering the particular tile is likely to be useful for rendering the next tile. Therefore, when rendering the next tile less data needs to be fetched from the system memory which can significantly improve the efficiency of the graphics processing system.
    Type: Grant
    Filed: January 19, 2016
    Date of Patent: March 30, 2021
    Assignee: Imagination Technologies Limited
    Inventor: Steven Fishwick
  • Publication number: 20210090317
    Abstract: A graphics processing unit (GPU) processes graphics data using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises cost indication logic configured to obtain a cost indication for each of a plurality of sets of one or more tiles of the rendering space. The cost indication for a set of tile(s) is suggestive of a cost of processing the set of one or more tiles. The GPU controls a rendering complexity with which primitives are rendered in tiles based on the cost indication for those tiles. This allows tiles to be rendered in a manner that is suitable based on the complexity of the graphics data within the tiles. In turn, this allows the rendering to satisfy constraints such as timing constraints even when the complexity of different tiles may vary significantly within an image.
    Type: Application
    Filed: December 3, 2020
    Publication date: March 25, 2021
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Patent number: 10902550
    Abstract: A computing system comprises graphics rendering logic and image processing logic. The graphics rendering logic processes graphics data to render an image using a rendering space which is sub-divided into a plurality of tiles. Cost indication logic obtains a cost indication for each of a plurality of sets of one or more tiles of the rendering space, wherein the cost indication for a set of one or more tiles is suggestive of a cost of processing rendered image values for a region of the rendered image corresponding to the set of one or more tiles. The image processing logic processes rendered image values for regions of the rendered image. The computing system causes the image processing logic to process rendered image values for regions of the rendered image in dependence on the cost indications for the corresponding sets of one or more tiles.
    Type: Grant
    Filed: July 10, 2019
    Date of Patent: January 26, 2021
    Assignee: Imagination Technologies Limited
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Publication number: 20210004331
    Abstract: Techniques are disclosed relating to filtering cache accesses. In some embodiments, a control unit is configured to, in response to a request to process a set of data, determine a size of a portion of the set of data to be handled using a cache. In some embodiments, the control unit is configured to determine filtering parameters indicative of a set of addresses corresponding to the determined size. In some embodiments, the control unit is configured to process one or more access requests for the set of data based on the determined filter parameters, including: using the cache to process one or more access requests having addresses in the set of addresses and bypassing the cache to access a backing memory directly, for access requests having addresses that are not in the set of addresses. The disclosed techniques may reduce average memory bandwidth or peak memory bandwidth.
    Type: Application
    Filed: September 21, 2020
    Publication date: January 7, 2021
    Inventors: Karthik Ramani, Fang Liu, Steven Fishwick, Jonathan M. Redshaw
  • Patent number: 10885696
    Abstract: A graphics processing unit (GPU) processes graphics data using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises cost indication logic configured to obtain a cost indication for each of a plurality of sets of one or more tiles of the rendering space. The cost indication for a set of tile(s) is suggestive of a cost of processing the set of one or more tiles. The GPU controls a rendering complexity with which primitives are rendered in tiles based on the cost indication for those tiles. This allows tiles to be rendered in a manner that is suitable based on the complexity of the graphics data within the tiles. In turn, this allows the rendering to satisfy constraints such as timing constraints even when the complexity of different tiles may vary significantly within an image.
    Type: Grant
    Filed: January 28, 2020
    Date of Patent: January 5, 2021
    Assignee: Imagination Technologies Limited
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Publication number: 20200380755
    Abstract: A graphics processing unit having multiple groups of processor cores for rendering graphics data for allocated tiles and outputting the processed data to regions of a memory resource. Scheduling logic allocates sets of tiles to the groups of processor cores to perform a first render, and at a time when at least one of the groups has not completed processing its allocated sets of one or more tiles as part of the first render, allocates at least one set of tiles for a second render to one of the other groups of processor cores for processing. Progress indication logic indicates progress of the first render, indicating regions of the memory resource for which processing for the first render has been completed. Progress check logic checks the progress indication in response to a request for access to a region of the memory resource as part of the second render and enables access that region of the resource in response to an indication that processing for the first render has been completed for that region.
    Type: Application
    Filed: May 31, 2020
    Publication date: December 3, 2020
    Inventors: John Howson, Steven Fishwick
  • Publication number: 20200380757
    Abstract: Methods of rendering a scene in a graphics system identify a draw call within a current render and analyse the last shader in the series of shaders used by the draw call to identify any buffers that are sampled by the last shader and that are to be written by a previous render that has not yet been sent for execution on the GPU. If any such buffers are identified, further analysis is performed to determine whether the last shader samples from the identified buffers using screen space coordinates that correspond to a current fragment location and if this determination is positive, the draw call is added to data relating to the previous render and the last shader is recompiled to replace an instruction that reads data from an identified buffer with an instruction that reads data from an on-chip register.
    Type: Application
    Filed: May 31, 2020
    Publication date: December 3, 2020
    Inventors: John W. Howson, Arun Demeure, Steven Fishwick
  • Patent number: 10783085
    Abstract: Techniques are disclosed relating to filtering cache accesses. In some embodiments, a control unit is configured to, in response to a request to process a set of data, determine a size of a portion of the set of data to be handled using a cache. In some embodiments, the control unit is configured to determine filtering parameters indicative of a set of addresses corresponding to the determined size. In some embodiments, the control unit is configured to process one or more access requests for the set of data based on the determined filter parameters, including: using the cache to process one or more access requests having addresses in the set of addresses and bypassing the cache to access a backing memory directly, for access requests having addresses that are not in the set of addresses. The disclosed techniques may reduce average memory bandwidth or peak memory bandwidth.
    Type: Grant
    Filed: March 1, 2019
    Date of Patent: September 22, 2020
    Assignee: Apple Inc.
    Inventors: Karthik Ramani, Fang Liu, Steven Fishwick, Jonathan M. Redshaw
  • Publication number: 20200288162
    Abstract: A motion estimation technique finds first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region. One of these candidate bi-directional motion vectors is selected, and used to identify a remote region of the interpolated frame. This remote region is located at an off-set location from the first region, and is found based on an endpoint of the selected candidate bi-directional motion vector. A remote motion vector for the remote region of the interpolated frame is obtained, and one or more properties of this remote motion vector are used to bias a selection between the first and second candidate vectors.
    Type: Application
    Filed: May 26, 2020
    Publication date: September 10, 2020
    Inventor: Steven Fishwick
  • Patent number: 10701387
    Abstract: A motion estimation technique finds first and second candidate bi-directional motion vectors for a first region of an interpolated frame of video content by performing double ended vector motion estimation on the first region. One of these candidate bi-directional motion vectors is selected, and used to identify a remote region of the interpolated frame. This remote region is located at an off-set location from the first region, and is found based on an endpoint of the selected candidate bi-directional motion vector. A remote motion vector for the remote region of the interpolated frame is obtained, and one or more properties of this remote motion vector are used to bias a selection between the first and second candidate vectors.
    Type: Grant
    Filed: April 25, 2019
    Date of Patent: June 30, 2020
    Assignee: Imagination Technologies Limited
    Inventor: Steven Fishwick
  • Publication number: 20200167987
    Abstract: A graphics processing unit (GPU) processes graphics data using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises cost indication logic configured to obtain a cost indication for each of a plurality of sets of one or more tiles of the rendering space. The cost indication for a set of tile(s) is suggestive of a cost of processing the set of one or more tiles. The GPU controls a rendering complexity with which primitives are rendered in tiles based on the cost indication for those tiles. This allows tiles to be rendered in a manner that is suitable based on the complexity of the graphics data within the tiles. In turn, this allows the rendering to satisfy constraints such as timing constraints even when the complexity of different tiles may vary significantly within an image.
    Type: Application
    Filed: January 28, 2020
    Publication date: May 28, 2020
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Patent number: 10565772
    Abstract: A graphics processing unit (GPU) processes graphics data using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises cost indication logic configured to obtain a cost indication for each of a plurality of sets of one or more tiles of the rendering space. The cost indication for a set of tile(s) is suggestive of a cost of processing the set of one or more tiles. The GPU controls a rendering complexity with which primitives are rendered in tiles based on the cost indication for those tiles. This allows tiles to be rendered in a manner that is suitable based on the complexity of the graphics data within the tiles. In turn, this allows the rendering to satisfy constraints such as timing constraints even when the complexity of different tiles may vary significantly within an image.
    Type: Grant
    Filed: January 11, 2018
    Date of Patent: February 18, 2020
    Assignee: Imagination Technologies Limited
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Publication number: 20190333185
    Abstract: A computing system comprises graphics rendering logic and image processing logic. The graphics rendering logic processes graphics data to render an image using a rendering space which is sub-divided into a plurality of tiles. Cost indication logic obtains a cost indication for each of a plurality of sets of one or more tiles of the rendering space, wherein the cost indication for a set of one or more tiles is suggestive of a cost of processing rendered image values for a region of the rendered image corresponding to the set of one or more tiles. The image processing logic processes rendered image values for regions of the rendered image. The computing system causes the image processing logic to process rendered image values for regions of the rendered image in dependence on the cost indications for the corresponding sets of one or more tiles.
    Type: Application
    Filed: July 10, 2019
    Publication date: October 31, 2019
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Patent number: 10395336
    Abstract: A computing system comprises graphics rendering logic and image processing logic. The graphics rendering logic processes graphics data to render an image using a rendering space which is sub-divided into a plurality of tiles. Cost indication logic obtains a cost indication for each of a plurality of sets of one or more tiles of the rendering space, wherein the cost indication for a set of one or more tiles is suggestive of a cost of processing rendered image values for a region of the rendered image corresponding to the set of one or more tiles. The image processing logic processes rendered image values for regions of the rendered image. The computing system causes the image processing logic to process rendered image values for regions of the rendered image in dependence on the cost indications for the corresponding sets of one or more tiles.
    Type: Grant
    Filed: January 11, 2018
    Date of Patent: August 27, 2019
    Assignee: Imagination Technologies Limited
    Inventors: John W. Howson, Richard Broadhurst, Steven Fishwick
  • Patent number: 10387990
    Abstract: A graphics processing unit is configured to process graphics data using a rendering space which is sub-divided into a plurality of tiles. The graphics processing unit comprises one or more processing cores configured to process graphics data. The graphics processing unit also comprises scheduling logic configured to subdivide at least one set of one or more tiles of the rendering space to form a plurality of subunits (e.g. subtiles) and to assign at least some of those subunits to different processing cores for rendering. The subdivision of tiles can be particularly useful for expensive tiles occurring near the end of a render to reduce the impact on the total render time when expensive tiles are scheduled near the end of a render.
    Type: Grant
    Filed: January 11, 2018
    Date of Patent: August 20, 2019
    Assignee: Imagination Technologies Limited
    Inventors: Richard Broadhurst, Steven Fishwick