A graphics processing apparatus (1400,1500) comprising: a graphics execution unit (1440,1520) to execute multiple instances of an application; a memory (1450,1530) local to the graphics execution unit (1440,1520), the memory (1450,1530) configured to store a resource for a first instance of the multiple instances; a shared resource manager (1422,1510) configured to identify the resource as a static resource to have a constant value across the multiple instances of the application, configured to make the static resource shareable among the first instance and a second instance of the multiple instances, and configured to map the static resource to the first instance and the second instance for runtime execution of the instances of the application by the graphics execution unit (1440,1520); and a counter to indicate how many of the multiple instances share the static resource, wherein the shared resource manager (1422,1510) is configured to maintain the counter based on sharing of the static resource, wherein the shared resource manager (1422,1510) is configured to increment the counter in response to mapping a static resource, and to decrement the counter in response to closing of one of the multiple instances; wherein all static resources are deallocated if the last instance of the application is closed; and wherein the static resource comprises a static data value, a parameter applicable to multiple instances, or a code segment of the application to generate a computed result, said code segment comprising a computation of a shader instance, a texture object computation, an artificial intelligence object computation, a vertex buffer object computation, or an index buffer object computation. a graphics execution unit (1440,1520) to execute multiple instances of an application; a memory (1450,1530) local to the graphics execution unit (1440,1520), the memory (1450,1530) configured to store a resource for a first instance of the multiple instances; a shared resource manager (1422,1510) configured to identify the resource as a static resource to have a constant value across the multiple instances of the application, configured to make the static resource shareable among the first instance and a second instance of the multiple instances, and configured to map the static resource to the first instance and the second instance for runtime execution of the instances of the application by the graphics execution unit (1440,1520); and a counter to indicate how many of the multiple instances share the static resource, wherein the shared resource manager (1422,1510) is configured to maintain the counter based on sharing of the static resource, wherein the shared resource manager (1422,1510) is configured to increment the counter in response to mapping a static resource, and to decrement the counter in response to closing of one of the multiple instances; wherein all static resources are deallocated if the last instance of the application is closed; and wherein the static resource comprises a static data value, a parameter applicable to multiple instances, or a code segment of the application to generate a computed result, said code segment comprising a computation of a shader instance, a texture object computation, an artificial intelligence object computation, a vertex buffer object computation, or an index buffer object computation.