Patents by Inventor James Alexander McCombe

James Alexander McCombe 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: 20130147803
    Abstract: For ray tracing scenes composed of primitives, systems and methods can traverse rays through an acceleration structure. The traversal can be implemented by concurrently testing a plurality of nodes of the acceleration structure for intersection with a sequence of one or more rays. Such testing can occur in a plurality of test cells. Leaf nodes of the acceleration structure can bound primitives, and a sequence primitives can be tested concurrently for intersection in the test cells against a plurality of rays that have intersected a given leaf node. Intersection testing of a particular leaf node can be deferred until a sufficient quantity of rays have been collected for that node.
    Type: Application
    Filed: June 18, 2012
    Publication date: June 13, 2013
    Applicant: Caustic Graphics Inc.
    Inventors: Luke Tilman PETERSON, James Alexander McCOMBE, Ryan R. SALSBURY
  • Publication number: 20130113800
    Abstract: Systems and methods for producing an acceleration structure provide for subdividing a 3-D scene into a plurality of volumetric portions, which have different sizes, each being addressable using a multipart address indicating a location and a relative size of each volumetric portion. A stream of primitives is processed by characterizing each according to one or more criteria, selecting a relative size of volumetric portions for use in bounding the primitive, and finding a set of volumetric portions of that relative size which bound the primitive. A primitive ID is stored in each location of a cache associated with each volumetric portion of the set of volumetric portions. A cache location is selected for eviction, responsive to each cache eviction decision made during the processing. An element of an acceleration structure according to the contents of the evicted cache location is generated, responsive to the evicted cache location.
    Type: Application
    Filed: August 4, 2012
    Publication date: May 9, 2013
    Inventors: James Alexander McCombe, Aaron Dwyer, Luke Tilman Peterson, Neils Nesse
  • Patent number: 8421801
    Abstract: Systems, methods, and computer readable media embodying such methods provide for allowing specification of per-ray clipping information that defines a sub-portion of a 3-D scene in which the ray should be traced. The clipping information can be specified as a clip distance from a ray origin, as an end value of a parametric ray definition, or alternatively the clipping information can be built into a definition of the ray to be traced. The clipping information can be used to check whether portions of an acceleration structure need to be traversed, as well as whether primitives should be tested for intersection. Other aspects include specifying a default object that can be returned as intersected when no primitive was intersected within the sub-portion defined for testing. Further aspects include allowing provision of flags interpretable by an intersection testing resource that control what the intersection testing resource does, and/or what information it reports after conclusion of testing of a ray.
    Type: Grant
    Filed: September 8, 2009
    Date of Patent: April 16, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: Ryan R. Salsbury, James Alexander McCombe, Stephen Purcell, Luke Tilman Peterson
  • Publication number: 20130069960
    Abstract: Aspects include a multistage collector to receive outputs from plural processing elements. Processing elements may comprise (each or collectively) a plurality of clusters, with one or more ALUs that may perform SIMD operations on a data vector and produce outputs according to the instruction stream being used to configure the ALU(s). The multistage collector includes substituent components each with at least one input queue, a memory, a packing unit, and an output queue; these components can be sized to process groups of input elements of a given size, and can have multiple input queues and a single output queue. Some components couple to receive outputs from the ALUs and others receive outputs from other components. Ultimately, the multistage collector can output groupings of input elements. Each grouping of elements (e.g., at input queues, or stored in the memories of component) can be formed based on matching of index elements.
    Type: Application
    Filed: September 12, 2012
    Publication date: March 21, 2013
    Inventors: James Alexander McCombe, Steven John Clohset, Jason Rupert Redgrave, Luke Tilman Peterson
  • Publication number: 20130050213
    Abstract: For ray tracing scenes composed of primitives, systems and methods—accelerate ray/primitive intersection identification by testing rays against elements of geometry acceleration data (GAD) in a parallelized intersection testing resource. Groups of rays can be described as shared attribute information and individual ray data for ray data transfer. A host hosts shading and/or management processes can control the testing resource and adapting the ray tracing. The GAD elements can be arranged in a graph, and rays collected into collections based on whether a ray intersects a given element. When a collection is deemed ready for further testing, it is tested for intersection with GAD elements connected, in the graph, to the given element. The graph can be hierarchical such that rays of a given collection are tested against children of the GAD element associated with the given collection.
    Type: Application
    Filed: August 5, 2012
    Publication date: February 28, 2013
    Applicant: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Ryan R. Salsbury, Luke Tilman Peterson
  • Publication number: 20130002672
    Abstract: 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: Application
    Filed: September 11, 2012
    Publication date: January 3, 2013
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven John Clohset
  • Publication number: 20120324458
    Abstract: Aspects include computation systems that can identify computation instances that are not capable of being reentrant, or are not reentrant capable on a target architecture, or are non-reentrant as a result of having a memory conflict in a particular execution situation. A system can have a plurality of computation units, each with an independently schedulable SIMD vector. Computation instances can be defined by a program module, and a data element(s) that may be stored in a local cache for a particular computation unit. Each local cache does not maintain coherency controls for such data elements. During scheduling, a scheduler can maintain a list of running (or runnable) instances, and attempt to schedule new computation instances by determining whether any new computation instance conflicts with a running instance and responsively defer scheduling. Memory conflict checks can be conditioned on a flag or other indication of the potential for non-reentrancy.
    Type: Application
    Filed: February 8, 2012
    Publication date: December 20, 2012
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman PETERSON, James Alexander McCombe
  • Patent number: 8300049
    Abstract: 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: Grant
    Filed: September 9, 2011
    Date of Patent: October 30, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven John Clohset
  • Publication number: 20120249553
    Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Scheduling of graphics operations for concurrent execution on a computer may increase throughput. In aspects herein, constituent graphics operations are scheduled in groups, having members selected according to disclosed aspects. Processing for specific graphics operations in a group can be deferred if all the operations in the group cannot be further tested concurrently. Graphics operations that have been deferred are recombined into two or more different groups and ultimately complete processing, through a required number of iterations of such process. In one application, the performance of the graphics operations perform a search in which respective 1:1 matches between different types of geometric shapes involved in the 3-D scene are identified.
    Type: Application
    Filed: June 16, 2012
    Publication date: October 4, 2012
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell
  • Patent number: 8237711
    Abstract: For ray tracing scenes composed of primitives, systems and methods accelerate ray/primitive intersection identification by testing rays against elements of geometry acceleration data (GAD) in a parallelized intersection testing resource. Groups of rays can be described as shared attribute information and individual ray data for efficient ray data transfer between a host processor and the testing resource. The host processor also hosts shading and/or management processes controlling the testing resource and adapting the ray tracing, as necessary or desirable, to meet criteria, while reducing degradation of rendering quality. The GAD elements can be arranged in a graph, and rays can be collected into collections based on whether a ray intersects a given element. When a collection is deemed ready for further testing, it is tested for intersection with GAD elements connected, in the graph, to the given element.
    Type: Grant
    Filed: November 19, 2007
    Date of Patent: August 7, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Ryan R. Salsbury, Luke Tilman Peterson
  • Patent number: 8217935
    Abstract: Systems and methods include high throughput and/or parallelized ray/geometric shape intersection testing using intersection testing resources accepting and operating with block floating point data. Block floating point data sacrifices precision of scene location in ways that maintain precision where more beneficial, and allow reduced precision where beneficial. In particular, rays, acceleration structures, and primitives can be represented in a variety of block floating point formats, such that storage requirements for storing such data can be reduced. Hardware accelerated intersection testing can be provided with reduced sized math units, with reduced routing requirements. A driver for hardware accelerators can maintain full-precision versions of rays and primitives to allow reduced communication requirements for high throughput intersection testing in loosely coupled systems. Embodiments also can include using BFP formatted data in programmable test cells or more general purpose processing elements.
    Type: Grant
    Filed: March 31, 2008
    Date of Patent: July 10, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Stephen Purcell, Ryan R. Salsbury, James Alexander McCombe, Sean Matthew Gies
  • Patent number: 8203555
    Abstract: For ray tracing scenes composed of primitives, systems and methods can traverse rays through an acceleration structure. The traversal can be implemented by concurrently testing a plurality of nodes of the acceleration structure for intersection with a sequence of one or more rays. Such testing can occur in a plurality of test cells. Leaf nodes of the acceleration structure can bound primitives, and a sequence primitives can be tested concurrently for intersection in the test cells against a plurality of rays that have intersected a given leaf node. Intersection testing of a particular leaf node can be deferred until a sufficient quantity of rays have been collected for that node.
    Type: Grant
    Filed: July 16, 2009
    Date of Patent: June 19, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury
  • Patent number: 8203559
    Abstract: Ray tracing scenes is accomplished using a plurality of intersection testing resources coupled with a plurality of shading resources, communicative in the aggregate through links/queues. A queue from testing to shading comprises respective ray/primitive intersection indications, comprising a ray identifier. A queue from shading to testing comprises identifiers of new rays to be tested, wherein data defining the rays is separately stored in memories distributed among the intersection testing resources. Ray definition data can be retained in distributed memories until rays complete intersection testing, and be selected for testing multiple times based on ray identifier. A structure of acceleration shapes can be used. Packets of ray identifiers and shape data can be passed among the intersection testing resources, and each resource can test rays identified in the packet, and for which definition data is present in its memory.
    Type: Grant
    Filed: November 8, 2010
    Date of Patent: June 19, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell
  • Publication number: 20120139926
    Abstract: In some aspects, finer grained parallelism is achieved by segmenting programmatic workloads into smaller discretized portions, where a first element can be indicative both of a configuration or program to be executed, and a first data set to be used in such execution, while a second element can be indicative of a second data element or group. The discretized portions can cause program execute on distributed processors. Approaches to selecting processors, and allocating local memory associated with those processors are disclosed. In one example, discretized portions that share a program have an anti-affinity to cause dispersion, for initial execution assignment. Flags, such as programmer and compiler generated flags can be used in determining such allocations. Workloads can be grouped according to compatibility of memory usage requirements.
    Type: Application
    Filed: February 8, 2012
    Publication date: June 7, 2012
    Applicant: Caustic Graphics Inc.
    Inventors: Stephen John CLOHSET, James Alexander MCCOMBE, Luke Tilman PETERSON
  • Publication number: 20120133654
    Abstract: Aspects include, for example, a method for interpreting information in a computer program, or profiling such a program to estimate a group size for instances of that program (program module, or portion thereof). Such a method can be used in a system that supports collecting outputs of executing instances, where those outputs can specify new program instances. Scheduling of new instances (or allocation of resources for executing such instances) can be deferred. A trigger to begin scheduling (or allocation) for a collection of instances uses a target group size for that program. Thus, different programs can have different group sizes, which can be set explicitly, or based on profiling. The profiling can occur during one or more of pre-execution and during execution. The group size estimate can be an input into an algorithm that also accounts for system state during execution.
    Type: Application
    Filed: February 8, 2012
    Publication date: May 31, 2012
    Applicant: Caustic Graphics Inc.
    Inventors: Jason Rupert Redgrave, Stephen John Clohset, James Alexander McCombe, Luke Tilman Peterson
  • Patent number: 8120609
    Abstract: For ray tracing systems, described methods, media, apparatuses provide for accounting of light energy that will be collected at pixels of a 2-D representation without recursive closure of a tree of ray/primitive intersections, and also provide for adaptivity in ray tracing based on importance indicators of each ray, such as a weight, which may be carried in data structures representative of the rays. Examples of such adaptivity may include determining a number of children to issue for shading an identified intersecting primitive, culling rays, and adding rays to achieve more accurate sampling, if desired. All such adaptivity may be triggered with goal-based indicators, such as a threshold value representative of rendering progress to a time-based goal, such as a frame rate.
    Type: Grant
    Filed: April 8, 2011
    Date of Patent: February 21, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury
  • Publication number: 20120001912
    Abstract: 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: Application
    Filed: September 9, 2011
    Publication date: January 5, 2012
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman PETERSON, James Alexander McCOMBE, Ryan R. SALSBURY, Steven John CLOHSET
  • Patent number: 8063902
    Abstract: For ray tracing, methods, apparatus, and computer readable media provide efficient transmission and/or storage of rays between ray emitters, and an intersection testing resource. Ray emitters, during emission of a plurality of rays, identify a shared attribute of each ray of the plurality, and represent that attribute as shared ray data. The shared ray data, and other ray data sufficient to determine both an origin and a direction for each ray of the plurality, are transmitted. Functionality in the intersection testing resource receives the shared ray data and the other ray data, and interprets the shared ray data and the other ray data to determine an origin and direction for each ray of the plurality, and provides those rays for intersection testing. Rays can be stored in the shared attribute format in the intersection testing resource and data elements representing the rays can be constructed later.
    Type: Grant
    Filed: October 12, 2007
    Date of Patent: November 22, 2011
    Assignee: Caustic Graphics, Inc.
    Inventors: Ryan R. Salsbury, James Alexander McCombe, Luke Tilman Peterson
  • Patent number: 8018457
    Abstract: Aspects comprise systems implementing ray tracing functionality according to example architectures. In one example, rays are collected into collections against elements of an acceleration structure, which in some cases are associated with objects composing a scene being ray traced. Indications of detected ray intersections also can be collected in an output buffer, and in some examples, the output buffer can comprise a plurality of portions, each associated with a scene object, or a common portion of code to be executed during shading. Buffer contents can be accessed in a block read. An intersection shading resource can load data to be used in shading the intersections for the identified rays, and locally storing that data for use in shading those intersections.
    Type: Grant
    Filed: September 8, 2009
    Date of Patent: September 13, 2011
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven John Clohset
  • Publication number: 20110181613
    Abstract: For ray tracing systems, described methods, media, apparatuses provide for accounting of light energy that will be collected at pixels of a 2-D representation without recursive closure of a tree of ray/primitive intersections, and also provide for adaptivity in ray tracing based on importance indicators of each ray, such as a weight, which may be carried in data structures representative of the rays. Examples of such adaptivity may include determining a number of children to issue for shading an identified intersecting primitive, culling rays, and adding rays to achieve more accurate sampling, if desired. All such adaptivity may be triggered with goal-based indicators, such as a threshold value representative of rendering progress to a time-based goal, such as a frame rate.
    Type: Application
    Filed: April 8, 2011
    Publication date: July 28, 2011
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury