Patents by Inventor Ryan R. Salsbury
Ryan R. Salsbury 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).
-
Publication number: 20240062452Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiprocessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: ApplicationFiled: October 30, 2023Publication date: February 22, 2024Inventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
-
Patent number: 11804001Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiporcessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: GrantFiled: December 1, 2021Date of Patent: October 31, 2023Assignee: Imagination Technologies LimitedInventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
-
Publication number: 20220092843Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiporcessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: ApplicationFiled: December 1, 2021Publication date: March 24, 2022Inventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
-
Patent number: 11205295Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiporcessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: GrantFiled: November 10, 2015Date of Patent: December 21, 2021Assignee: Imagination Technologies LimitedInventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
-
Publication number: 20200394832Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: ApplicationFiled: August 27, 2020Publication date: December 17, 2020Inventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Patent number: 10789758Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: GrantFiled: December 19, 2018Date of Patent: September 29, 2020Assignee: Imagination Technologies LimitedInventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Publication number: 20190122419Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: ApplicationFiled: December 19, 2018Publication date: April 25, 2019Inventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Patent number: 10192350Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: GrantFiled: April 25, 2017Date of Patent: January 29, 2019Assignee: Imagination Technologies LimitedInventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Patent number: 9940687Abstract: Aspects can be for ray tracing of 3-D scenes, and include dynamically controlling a population of rays being stored in a memory, to keep the population within a target, a memory footprint or other resource usage specification. An example includes controlling the population by examining indicia associated with rays returning from intersection testing, to be shaded, the indicia correlated with behavior of shaders to be run for those rays, such that population control selects, or reorders rays for shading, to prioritize shading of rays whose shaders are expected to produce fewer rays.Type: GrantFiled: May 12, 2015Date of Patent: April 10, 2018Assignee: Imagination Technologies LimitedInventors: Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies, Steven John Clohset
-
Publication number: 20170228920Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: ApplicationFiled: April 25, 2017Publication date: August 10, 2017Inventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Patent number: 9710954Abstract: A processor supports special-purpose instructions relating to testing rays for intersection with geometry and acceleration structure elements. The processor can be a full-featured processor; the special-purpose instructions can be differentiated from other supported instructions. The processor can have an instruction generator coupled with an instruction decoder, a data cache, a fetch unit, and a set of test cells for performing computations indicated by special-purpose instructions. Separate test cells can test rays with scene geometry and with acceleration structure elements; different instructions can be provided for each type of testing. The data cache is coupled to the test cells; the instruction decoder also provides input to the test cells while the test cells are coupled to a write back unit that is coupled to the data cache and to the instruction generator. In an example, the instruction decoder supplies ray references from an instruction as functional addresses to the data cache.Type: GrantFiled: October 1, 2014Date of Patent: July 18, 2017Assignee: Imagination Technologies LimitedInventors: Luke T Peterson, James A. McCombe, Ryan R. Salsbury
-
Patent number: 9633468Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: GrantFiled: December 2, 2014Date of Patent: April 25, 2017Assignee: Imagination Technologies LimitedInventors: Luke T Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Patent number: 9460547Abstract: Aspects include API interfaces for interfacing shaders with other components and/or code modules that provide ray tracing functionality. For example, API calls may allow direct contribution of light energy to a buffer for an identified pixel, and allow emission of new rays for intersection testing alone or in bundles. The API also can provide a mechanism for associating arbitrary data with ray definition data defining a ray to be tested through a shader using the emit ray call. The arbitrary data is provided to a shader associated with an object that is identified subsequently as having been intersected by the ray. The data can include code, or a pointer to code, that can be used by or run after the shader. The data also can be propagated through a series of shaders, and associated with rays instantiated in each shader. Recursive shaders can be recompiled as non-recursive shaders interfacing with API semantics according to the description.Type: GrantFiled: November 22, 2013Date of Patent: October 4, 2016Assignee: Imagination Technologies LimitedInventors: James Alexander McCombe, Luke T Peterson, Ryan R. Salsbury, Sean Matthew Gies
-
Publication number: 20160063753Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiporcessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: ApplicationFiled: November 10, 2015Publication date: March 3, 2016Inventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
-
Patent number: 9183668Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiprocessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.Type: GrantFiled: December 28, 2013Date of Patent: November 10, 2015Assignee: Imagination Technologies LimitedInventors: Luke T Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J Clohset
-
Publication number: 20150302630Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: ApplicationFiled: December 2, 2014Publication date: October 22, 2015Inventors: Luke T. Peterson, James A. McCombe, Ryan R. Salsbury, Stephen Purcell
-
Publication number: 20150242990Abstract: Aspects can be for ray tracing of 3-D scenes, and include dynamically controlling a population of rays being stored in a memory, to keep the population within a target, a memory footprint or other resource usage specification. An example includes controlling the population by examining indicia associated with rays returning from intersection testing, to be shaded, the indicia correlated with behavior of shaders to be run for those rays, such that population control selects, or reorders rays for shading, to prioritize shading of rays whose shaders are expected to produce fewer rays.Type: ApplicationFiled: May 12, 2015Publication date: August 27, 2015Inventors: Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies, Steven John Clohset
-
Patent number: 9030476Abstract: Aspects can be for ray tracing of 3-D scenes, and include dynamically controlling a population of rays being stored in a memory, to keep the population within a target, a memory footprint or other resource usage specification. An example includes controlling the population by examining indicia associated with rays returning from intersection testing, to be shaded, the indicia correlated with behavior of shaders to be run for those rays, such that population control selects, or reorders rays for shading, to prioritize shading of rays whose shaders are expected to produce fewer rays.Type: GrantFiled: March 15, 2013Date of Patent: May 12, 2015Assignee: Imagination Technologies, LimitedInventors: Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies, Steven John Clohset
-
Publication number: 20150116325Abstract: A processor supports special-purpose instructions relating to testing rays for intersection with geometry and acceleration structure elements. The processor can be a full-featured processor; the special-purpose instructions can be differentiated from other supported instructions. The processor can have an instruction generator coupled with an instruction decoder, a data cache, a fetch unit, and a set of test cells for performing computations indicated by special-purpose instructions. Separate test cells can test rays with scene geometry and with acceleration structure elements; different instructions can be provided for each type of testing. The data cache is coupled to the test cells; the instruction decoder also provides input to the test cells while the test cells are coupled to a write back unit that is coupled to the data cache and to the instruction generator. In an example, the instruction decoder supplies ray references from an instruction as functional addresses to the data cache.Type: ApplicationFiled: October 1, 2014Publication date: April 30, 2015Inventors: Luke T Peterson, James A. McCombe, Ryan R. Salsbury
-
Patent number: 8902230Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.Type: GrantFiled: August 5, 2013Date of Patent: December 2, 2014Assignee: Imagination Technologies, LimitedInventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell