IP Library › Granted Patent US 11,521,293
Granted Patent B2
US 11,521,293 · App. 16/943,637 · Granted Dec 6, 2022

Memory management in graphics and compute application programming interfaces

Inventors: Guennadi Riguer (Thornhill, CA); Brian K. Bennett (Northborough, MA)
Assignees: Advanced Micro Devices, Inc.; ATI Technologies ULC
G06T1/60G06F3/064G06F9/5016G06F9/54G06F12/023G06T1/20G09G5/363
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 11,521,293
App. No.
16/943,637
Granted
Dec 6, 2022
Kind
B2
Abstract

Methods are provided for creating objects in a way that permits an API client to explicitly participate in memory management for an object created using the API. Methods for managing data object memory include requesting memory requirements for an object using an API and expressly allocating a memory location for the object based on the memory requirements. Methods are also provided for cloning objects such that a state of the object remains unchanged from the original object to the cloned object or can be explicitly specified.

Claims (33)

1. A processor configured for managing object memory, the processor comprising:

circuitry configured to receive, by an application programming interface (“API”), from a client, a request to create an object;

circuitry configured to return, to the client, by the API, a graphics processing unit (GPU) object identifier in response to a GPU object identifier request;

circuitry configured to return, by the API, to the client, memory requirements for the GPU object in response to a memory requirements request to the API which includes the GPU object identifier;

circuitry configured to receive, by the API, a request from the client to bind a portion of GPU memory specified by the client to the GPU object identifier; and

circuitry configured to, in response to the request to bind the portion of GPU memory to the GPU object, bind the portion of GPU memory to the GPU object identifier.

2. The processor of claim 1 , wherein the GPU object identifier request includes only information necessary to return the memory requirements in response to the memory requirements request.

3. The processor of claim 1 , wherein the GPU object identifier request includes GPU object metadata.

4. The processor of claim 1 , wherein the GPU object identifier request does not include GPU object data.

5. The processor of claim 1 , wherein memory for the GPU object is not allocated by the API.

6. The processor of claim 1 , wherein memory for the GPU object is allocated by an API client which passes the memory requirements request to the API.

7. The processor of claim 1 , wherein memory for the GPU object is allocated based on the memory requirements.

8. The processor of claim 1 , wherein memory for the GPU object is allocated in response to the memory requirements.

9. The processor of claim 1 , wherein memory for GPU object data is allocated only after the memory requirements are returned.

10. A processor configured for cloning a graphics processing unit (GPU) object based on an original GPU object, the processor comprising:

circuitry configured to create a destination GPU object;

circuitry configured to pass data of the destination GPU object to an application programming interface (API) based on the original GPU object;

circuitry configured to pass a state of the data of the destination GPU object to the API; and

circuitry configured to write the data of the destination GPU object having the state to a memory.

11. The processor of claim 10 , further comprising circuitry configured to pass a state of the original GPU object to the API.

12. The processor of claim 10 , wherein the original GPU object comprises a texture.

13. The processor of claim 10 , wherein the state of the data of the destination GPU object is a compressed state.

14. The processor of claim 10 , wherein the state of the data of the destination GPU object is a different video encoding.

15. The processor of claim 10 , wherein the memory is accessible to a GPU.

16. A processor configured for cloning a data object based on an original data object, the processor comprising:

circuitry configured to create a destination data object;

circuitry configured to pass data of the destination data object to an application programming interface (API) based on the original data object;

circuitry configured to pass a state of the data of the destination data object to the API; and

circuitry configured to write the data of the destination data object having the state to a memory.

17. The processor of claim 16 , further comprising circuitry configured to pass a state of the original data object to the API.

18. The processor of claim 16 , wherein the state of the data of the destination data object is a compressed state.

19. The processor of claim 16 , wherein the memory is accessible to a graphics processing unit (GPU).

20. The processor of claim 16 , wherein the data of the destination data object comprises image data.

Continuity (3)
Continuation 15477795 · Apr 3, 2017
Continuation 14560757 · Dec 4, 2014
Related Publication 20200357093A1 · Nov 12, 2020