IP Library › Granted Patent US 12,288,284
Granted Patent B2
US 12,288,284 · App. 17/484,955 · Granted Apr 29, 2025

Dynamic routing of texture loads in graphics processing

Inventors: Carlos Nava Rodriguez (Folsom, CA); Yoav Harel (Carmichael, CA); Joydeep Ray (Folsom, CA); Abhishek R. Appu (El Dorado Hills, CA); Vamsee Vardhan Chivukula (Folsom, CA); Benjamin R. Pletcher (Mather, CA)
Assignee: INTEL CORPORATION
G06T15/005G06F13/1673G06T1/20G06T1/60G06T2200/28
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,288,284
App. No.
17/484,955
Granted
Apr 29, 2025
Kind
B2
Abstract

Dynamic routing of texture-load in graphics processing is described. An example of a processor includes one or more processing resources, the one or more processing resources to load a message including a texture load; a texture sampler and a data port; and a message router to route the texture load to a destination, wherein the destination may be either the texture sampler or the data port; wherein the message router includes arbitration circuitry to select the destination for the texture load, the arbitration circuitry to base selection of the destination at least in part on support by the data port for a format of a memory surface for the texture load; and a utilization metric for the data port representing availability of the data port.

Claims (49)

1. A processor comprising:

one or more processing resources, the one or more processing resources to load a message including a texture load;

a texture sampler and a data port; and

a message router to route the texture load to a destination, wherein the destination may be either the texture sampler or the data port;

wherein the message router includes arbitration circuitry to select the destination for the texture load, the arbitration circuitry to base selection of the destination at least in part on:

support by the data port for a format of a memory surface for the texture load; and

a utilization metric for the data port representing availability of the data port.

2. The processor of claim 1 , wherein selection of the destination includes the arbitration circuitry determining that the data port is not authorized as the destination unless both the format for the memory surface for the texture message is supported by the data port and the utilization metric is below a threshold for capacity of the data port.

3. The processor of claim 1 , further comprising:

a first cache coupled with the texture sampler; and

a second cache coupled with the data port.

4. The processor of claim 1 , wherein the message router further includes a first queue to store the message and a second queue to store a descriptor for the message.

5. The processor of claim 1 , wherein the message router is to determine support by the data port for the format of the memory surface for the texture load by providing a request to a state cache.

6. The processor of claim 1 , wherein the arbitration circuitry is to further base selection of the destination on a hint received from a shader.

7. The processor of claim 1 , wherein the arbitration circuitry is to further base selection of the destination on one or more of:

whether a compiler allows routing of the texture load to the data port; or

whether a driver allows routing of the texture load to the data port.

8. The processor of claim 1 , wherein the processor comprises a graphics processing unit (GPU).

9. One or more non-transitory computer-readable storage mediums having stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a message including a texture load at a message router for a graphics processor;

determining support by a data port for the graphics processor for a format for a memory surface for the texture load;

determining a level of availability of the data port; and

selecting either the data port or a texture sampler as a destination for the texture load based at least on the determined support for the format of the memory surface for the texture load and on the determined level of availability for the data port.

10. The storage mediums of claim 9 , wherein selection of the destination includes determining that the data port is not authorized as the destination unless both the format for the memory surface for the texture message is supported by the data port and the level of availability meets a threshold for capacity of the data port.

11. The storage mediums of claim 9 , wherein a texture cache is coupled with the texture sampler and a data port cache is coupled with the data port.

12. The storage mediums of claim 9 , wherein the executable computer program instructions further include instructions for:

storing the message in a first queue and storing a descriptor for the message in a second queue.

13. The storage mediums of claim 9 , wherein the executable computer program instructions further include instructions for:

determining support by the data port for the format of the memory surface for the texture load by providing a request to a state cache.

14. The storage mediums of claim 9 , wherein selection of the destination for the texture load is further based on a hint received from a shader.

15. The storage mediums of claim 9 , wherein selection of the destination for the texture load is further based on one or more of:

whether a compiler allows routing of the texture load to the data port; or

whether a driver allows routing of the texture load to the data port.

16. A system comprising:

one or more processors including a graphics processor, the one or more processors including one or more processing resources;

a memory for storage of data;

a texture sampler coupled with a texture cache;

a data port coupled with a data port cache; and

a message router to route a texture load from the one or more processing resources to a destination, wherein the destination may be either the texture sampler or the data port;

wherein the message router includes arbitration circuitry to select the destination for the texture load, the arbitration circuitry to base selection of the destination at least in part on:

support by the data port for a format of a memory surface for the texture load; and

a utilization metric for the data port representing a level of availability of the data port.

17. The system of claim 16 , wherein selection of the destination includes the arbitration circuitry determining that the data port is not authorized as the destination unless both the format for the memory surface for the texture message is supported by the data port and the utilization metric is below a threshold for capacity of the data port.

18. The system of claim 16 , wherein the message router further includes a first queue to store a message containing the texture load and a second queue to store a descriptor for the message.

19. The system of claim 16 , further comprising a state cache, wherein the message router is to determine support by the data port for the format of the memory surface for the texture load by providing a request to the state cache.

20. The system of claim 16 , wherein the arbitration circuitry is to further base selection of the destination on one or more of:

a hint received from a shader;

whether a compiler allows routing of the texture load to the data port; or

whether a driver allows routing of the texture load to the data port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: RODRIGUEZ, CARLOS NAVA; HAREL, YOAV; RAY, JOYDEEP; APPU, ABHISHEK R.; CHIVUKULA, VAMSEE VARDHAN; PLETCHER, BENJAMIN R.
To: INTEL CORPORATION
Reel/Frame 059138/0052 →
Continuity (1)
Related Publication 20230101654A1 · Mar 30, 2023
References Cited (7)
US 20140168245A1 · Fahs · 2014 [cited by examiner]
US 20150084975A1 · Heinrich · 2015 [cited by examiner]
US 20160321773A1 · Bolz · 2016 [cited by applicant]
US 20170061569A1 · Sathe · 2017 [cited by examiner]
EP 4156077A1 · 2023 [cited by applicant]
EP Communication, Extended European Search Report for EP Application No. 22184111.7, mailed Feb. 22, 2023, 9 pages. [cited by applicant]
Rangan Ram et al: “Countering Load-to-Use Stalls in the NVIDIA Turing GPU”, IEEE Micro, IEEE Service Center, Los Alamitos, CA, US, vol. 40, No. 6, Jul. 28, 2020 (Jul. 28, 2020), pp. 59-66, XP011815795, ISSN: 0272-1732, … [cited by applicant]