IP Library › Granted Patent US 10,733,696
Granted Patent B2
US 10,733,696 · App. 15/477,795 · Granted Aug 4, 2020

Memory management in graphics and compute application programming interfaces

Inventors: Guennadi Riguer (Thornhill, CA); Brian K. Bennett (Northborough, MA)
Assignees: ATI TECHNOLOGIES ULC; ADVANCED MICRO DEVICES, INC.
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 10,733,696
App. No.
15/477,795
Granted
Aug 4, 2020
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 (24)

1. A method for managing object memory, the method comprising:

receiving a request to create an object by an application programming interface (“API”) from a client;

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

returning, 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;

receiving, 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

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

2. The method 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 method of claim 1 , wherein the GPU object identifier request includes GPU object metadata.

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

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

6. The method 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 method of claim 1 , wherein memory for the GPU object is allocated based on the memory requirements.

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

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

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

creating a destination GPU object;

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

passing a state of the data of the destination GPU object to the API; and

writing the data of the destination GPU object having the state to a memory.

11. The method of claim 10 , further comprising passing a state of the original GPU object to the API.

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

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

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

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

Continuity (2)
Continuation 14560757 · Dec 4, 2014
Related Publication 20170206630A1 · Jul 20, 2017