Method and Apparatus for Spatial Binning on a GPU and Global Path Planning to Avoid Spatially Binned Objects
First Claim
1. A method carried out by graphics processing circuitry comprising:
- computing a bin address for a plurality of item identifiers, said bin address corresponding to a texel space partion of a two-dimensional grid of bins, wherein each bin has a corresponding bin address, wherein said item identifiers are assigned unique item identifiers, assigned to a plurality of graphical image items to create said plurality of item identifiers, wherein said item identifiers are buffered as a depth texture array, said depth texture array sent to said graphics processing circuitry as a buffer of point primitives;
determining that an item identifier, of said plurality of item identifiers, is different than a previous item identifier placed at a bin address; and
streaming out said item identifier to a new working set.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for sorting data into spatial bins or buckets using a graphics processing unit (GPU). The method takes unsorted point data as input and scatters the points, in sorted order, into a set of bins. This key operation enables construction of a spatial data structure that is useful for applications such as particle simulation or collision detection. The disclosed method achieves better performance scaling than previous methods by exploiting geometry shaders to progressively trim the size of a working set. The method also leverages predicated rendering functionality to allow early termination without CPU/GPU synchronization. Furthermore, unlike previous techniques, the method can guarantee sorted output without requiring sorted input. This allows the method to be used to implement a form of bucket sort using the GPU.
63 Citations
10 Claims
-
1. A method carried out by graphics processing circuitry comprising:
-
computing a bin address for a plurality of item identifiers, said bin address corresponding to a texel space partion of a two-dimensional grid of bins, wherein each bin has a corresponding bin address, wherein said item identifiers are assigned unique item identifiers, assigned to a plurality of graphical image items to create said plurality of item identifiers, wherein said item identifiers are buffered as a depth texture array, said depth texture array sent to said graphics processing circuitry as a buffer of point primitives; determining that an item identifier, of said plurality of item identifiers, is different than a previous item identifier placed at a bin address; and streaming out said item identifier to a new working set. - View Dependent Claims (2, 3, 4, 5)
-
-
6. Graphics processing circuitry comprising:
programmable shader logic operative to execute programmable instructions that when executed cause the Programmable shader logic to compute a bin address for a plurality of item identifiers, said bin address corresponding to a texel space pardon of a two-dimensional grid of bins, wherein each bin has a corresponding bin address, wherein said item identifiers are assigned unique item identifiers, assigned to a plurality of graphical image items to create said plurality of item identifiers, wherein said item identifiers are buffered as a depth texture array, said depth texture array sent to said graphics processing circuitry as a buffer of point primitives; determine by said programmable shader logic that an item identifier, of said plurality of item identifiers, is different than a previous item identifier placed at a bin address; and streaming out said item identifier to a new working set. - View Dependent Claims (7, 8, 9, 10)
Specification