IP Library › Granted Patent US 12,567,209
Granted Patent B2
US 12,567,209 · App. 18/740,698 · Granted Mar 3, 2026

Compressed geometry rendering and streaming

Inventors: Dieter Schmalstieg (Graz, AT); Markus Steinberger (Graz, AT); Daniel Mlakar (Graz, AT)
Assignee: QUALCOMM Technologies, Inc.
G06T17/205G06T9/001G06T15/005G06T17/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,567,209
App. No.
18/740,698
Granted
Mar 3, 2026
Kind
B2
Abstract

The present disclosure relates to methods and apparatus for graphics processing. The apparatus may identify at least one mesh associated with at least one frame. The apparatus may also divide the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices. The apparatus may also compress the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access. Additionally, the apparatus may decompress the plurality of groups of compressed primitives, at least one first group of the plurality of groups of compressed primitives being decompressed in parallel with at least one second group of the plurality of groups of compressed primitives.

Claims (56)

1 . An apparatus for graphics processing, comprising:

memory; and

at least one processor coupled to the memory and configured to:

identify at least one mesh associated with at least one frame;

divide the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

compress the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access, wherein the at least one processor is configured to compress at least one first group of the plurality of groups of compressed primitives in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is compressed in the first LOD is less than, and compressed in parallel with, the second number of primitives in the at least one second group that is compressed in the second LOD.

2 . The apparatus of claim 1 , wherein the at least one processor is further configured to:

render, upon compressing the plurality of groups of compressed primitives, at least one image corresponding to the plurality of groups of compressed primitives.

3 . The apparatus of claim 2 , wherein one or more groups of compressed primitives of the plurality of groups of compressed primitives are compressed and rendered prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives.

4 . The apparatus of claim 2 , wherein the plurality of groups of compressed primitives are compressed by at least one of a mesh shader or an amplification shader.

5 . The apparatus of claim 4 , wherein the at least one first group of the plurality of groups of compressed primitives is compressed by the mesh shader or the amplification shader in parallel with the at least one second group of the plurality of groups of compressed primitives.

6 . The apparatus of claim 5 , wherein at least one vertex in the at least one first group is compressed in parallel with at least one other vertex in the at least one first group; or

wherein at least one primitive in the at least one first group is compressed in parallel with at least one other primitive in the at least one first group.

7 . The apparatus of claim 5 , wherein at least one vertex in the at least one second group is compressed in parallel with at least one other vertex in the at least one second group; or

wherein at least one primitive in the at least one second group is compressed in parallel with at least one other primitive in the at least one second group.

8 . The apparatus of claim 1 , wherein each of the plurality of groups of primitives corresponds to a meshlet.

9 . The apparatus of claim 1 , wherein a first group of primitives of the plurality of groups of primitives is connected or adjacent to a second group of primitives of the plurality of groups of primitives, wherein at least one vertex of the first group of primitives corresponds to at least one vertex of the second group of primitives.

10 . The apparatus of claim 9 , wherein the at least one vertex of the first group of primitives or the at least one vertex of the second group of primitives is stored in the first group of primitives or the second group of primitives.

11 . The apparatus of claim 1 , wherein the at least one processor is further configured to:

store the plurality of groups of compressed primitives in a buffer or memory.

12 . The apparatus of claim 1 , wherein the at least one processor is further configured to:

transmit the plurality of groups of compressed primitives.

13 . The apparatus of claim 12 , further comprising a transceiver coupled to the at least one processor, wherein to transmit the plurality of groups of compressed primitives, the at least one processor is configured to transmit, via one or more data packets using the transceiver, the plurality of groups of compressed primitives.

14 . The apparatus of claim 13 , wherein the one or more data packets are one or more independent data packets or one or more user datagram protocol (UDP) packets.

15 . A method of graphics processing, comprising:

identifying at least one mesh associated with at least one frame;

dividing the at least one mesh into a plurality of groups of primitives, each of the plurality of groups of primitives including at least one primitive and a plurality of vertices;

compressing the plurality of groups of primitives into a plurality of groups of compressed primitives, the plurality of groups of compressed primitives being associated with random access, wherein at least one first group of the plurality of groups of compressed primitives is compressed in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is compressed in the first LOD is less than, and compressed in parallel with, the second number of primitives in the at least one second group that is compressed in the second LOD.

16 . An apparatus for graphics processing, comprising:

memory; and

at least one processor coupled to the memory and configured to:

identify at least one mesh associated with at least one frame;

divide the at least one mesh into a plurality of groups of compressed primitives, each of the plurality of groups of compressed primitives including at least one primitive and a plurality of vertices, the plurality of groups of compressed primitives being associated with random access; and

decompress the plurality of groups of compressed primitives, wherein the at least one processor is configured to decompress at least one first group of the plurality of groups of compressed primitives in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

17 . The apparatus of claim 16 , wherein the at least one processor is further configured to:

render, upon decompressing the plurality of groups of compressed primitives, at least one image corresponding to the plurality of groups of compressed primitives.

18 . The apparatus of claim 17 , wherein one or more groups of compressed primitives of the plurality of groups of compressed primitives are decompressed and rendered prior to one or more other groups of compressed primitives of the plurality of groups of compressed primitives.

19 . The apparatus of claim 17 , wherein the plurality of groups of compressed primitives are decompressed by at least one of a mesh shader or an amplification shader.

20 . The apparatus of claim 19 , wherein the at least one first group of the plurality of groups of compressed primitives is decompressed by the mesh shader or the amplification shader in parallel with the at least one second group of the plurality of groups of compressed primitives.

21 . The apparatus of claim 20 , wherein at least one vertex in the at least one first group is decompressed in parallel with at least one other vertex in the at least one first group; or

wherein at least one primitive in the at least one first group is decompressed in parallel with at least one other primitive in the at least one first group.

22 . The apparatus of claim 20 , wherein at least one vertex in the at least one second group is decompressed in parallel with at least one other vertex in the at least one second group; or

wherein at least one primitive in the at least one second group is decompressed in parallel with at least one other primitive in the at least one second group.

23 . The apparatus of claim 16 , wherein each of the plurality of groups of primitives corresponds to a meshlet.

24 . The apparatus of claim 16 , wherein a first group of primitives of the plurality of groups of primitives is connected or adjacent to a second group of primitives of the plurality of groups of primitives, wherein at least one vertex of the first group of primitives corresponds to at least one vertex of the second group of primitives.

25 . The apparatus of claim 24 , wherein the at least one vertex of the first group of primitives or the at least one vertex of the second group of primitives is stored in the first group of primitives or the second group of primitives.

26 . The apparatus of claim 16 , wherein the at least one processor is further configured to:

store the plurality of groups of compressed primitives in a buffer or memory.

27 . The apparatus of claim 16 , wherein the at least one processor is further configured to:

transmit the plurality of groups of compressed primitives.

28 . The apparatus of claim 27 , further comprising a transceiver coupled to the at least one processor, wherein to transmit the plurality of groups of compressed primitives, the at least one processor is configured to transmit, via one or more data packets using the transceiver, the plurality of groups of compressed primitives.

29 . The apparatus of claim 28 , wherein the one or more data packets are one or more independent data packets or one or more user datagram protocol (UDP) packets.

30 . A method of graphics processing, comprising:

identifying at least one mesh associated with at least one frame;

dividing the at least one mesh into a plurality of groups of compressed primitives, each of the plurality of groups of compressed primitives including at least one primitive and a plurality of vertices, the plurality of groups of compressed primitives being associated with random access; and

decompressing the plurality of groups of compressed primitives, wherein at least one first group of the plurality of groups of compressed primitives is decompressed in a first level-of-detail (LOD) in parallel with at least one second group of the plurality of groups of compressed primitives in a second LOD, wherein the first LOD is a coarse LOD and the second LOD is a fine LOD such that the first LOD is coarser than the second LOD, wherein a first number of primitives in the at least one first group is less than a second number of primitives in the at least one second group, such that the first number of primitives in the at least one first group that is decompressed in the first LOD is less than, and decompressed in parallel with, the second number of primitives in the at least one second group that is decompressed in the second LOD.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2024
From: SCHMALSTIEG, DIETER; STEINBERGER, MARKUS; MLAKAR, DANIEL
To: TECHNISCHE UNIVERSITAT GRAZ
Reel/Frame 067770/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2024
From: TECHNISCHE UNIVERSITAT GRAZ
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 067771/0178 →
Continuity (3)
Continuation 17400065 · Aug 11, 2021
Provisional Application 63067129 · Aug 18, 2020
Related Publication 20240412459A1 · Dec 12, 2024
References Cited (22)
US 6459429B1 · Deering · 2002 [cited by applicant]
US 6559842B1 · Deering et al. · 2003 [cited by applicant]
US 12020378B2 · Schmalstieg et al. · 2024 [cited by applicant]
US 20030112240A1 · Cerny · 2003 [cited by applicant]
US 20090184956A1 · Kim et al. · 2009 [cited by applicant]
US 20100045668A1 · Lee et al. · 2010 [cited by applicant]
US 20100134494A1 · Lim et al. · 2010 [cited by applicant]
US 20110185071A1 · Schmieder et al. · 2011 [cited by applicant]
US 20120200559A1 · Ahn et al. · 2012 [cited by applicant]
US 20140185668A1 · Jiang et al. · 2014 [cited by applicant]
US 20180165836A1 · Curington et al. · 2018 [cited by applicant]
US 20180232912A1 · Nevraev et al. · 2018 [cited by applicant]
US 20180293787A1 · Labbe et al. · 2018 [cited by applicant]
US 20180342099A1 · Paltashev et al. · 2018 [cited by applicant]
US 20190236827A1 · Hakura et al. · 2019 [cited by applicant]
US 20200159936A1 · Anderson et al. · 2020 [cited by applicant]
US 20200311042A1 · Doyle · 2020 [cited by applicant]
TW 201730847A · 2017 [cited by applicant]
Taiwan Search Report—TW110129774—TIPO—Feb. 4, 2025 (206587TW). [cited by applicant]
International Search Report and Written Opinion—PCT/US2021/045811—ISA/EPO—Nov. 24, 2021 (206587WO). [cited by applicant]
Kubisch C., “Introduction to Turing Mesh Shaders | NVIDIA Developer Blog”, Sep. 17, 2018, XP055695710, 18 pages, section “Introduction to Turing Mesh Shaders” section “Motivation” section “Mesh Shading Pipeline”, the wh… [cited by applicant]
Meyer Q., et al., “Data-Parallel Decompression of Triangle Mesh Topology”, Oct. 2012, Computer Graphics Forum, vol. 31, Issue 8, pp. 2541-2553, 13 Pages. [cited by applicant]