This extension adds a mechanism for an application to tell the GL that the previous contents of a subregion of an image or a range of a buffer may be invalidated.
GL implementations often include several memory spaces, each with distinct performance characteristics, and the implementations transparently move allocations between memory spaces. With this extension, an application can tell the GL that the contents of a texture or buffer are no longer needed, and the implementation can avoid transferring the data unnecessarily.
Examples of when this may be useful include:
It is expected that the situations in which the GL will take advantage of this knowledge and achieve increased performance as a result of its use will be implementation-dependent. The first three examples may show benefit on tiled renderers where some data won't need to be copied into or out of on-chip memory. The fourth example may show a benefit in multi-GPU systems where some data won't need to be copied between GPUs.
This extension is a superset of the EXT_discard_framebuffer extension with the following additions:
Requires OpenGL 2.. Promoted to core in OpenGL 4..
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description | |||
|---|---|---|---|---|
| public static void | glInvalidateBufferData(int
the name of a buffer object whose data store to invalidate buffer)Invalidates the content of a buffer object's data store. | |||
| public static void | glInvalidateBufferSubData(int
the name of a buffer object, a subrange of whose data store to invalidate buffer, long the offset within the buffer's data store of the start of the range to be invalidated offset, long the length of the range within the buffer's data store to be invalidated length)Invalidates a region of a buffer object's data store. | |||
| public static void | glInvalidateFramebuffer(int
the target to which the framebuffer is attached. One of: target, IntBuffer
the address of an array identifying the attachments to be invalidated attachments)Invalidate the content some or all of a framebuffer object's attachments. | |||
| public static void | glInvalidateFramebuffer(int
the target to which the framebuffer is attached. One of: target, int attachment)
Invalidate the content some or all of a framebuffer object's attachments. | |||
| public static void | ||||
| public static void | glInvalidateSubFramebuffer(int
the target to which the framebuffer is attached. One of: target, IntBuffer
an array identifying the attachments to be invalidated attachments, int the X offset of the region to be invalidated x, int the Y offset of the region to be invalidated y, int the width of the region to be invalidated width, int the height of the region to be invalidated height)Invalidates the content of a region of some or all of a framebuffer object's attachments. | |||
| public static void | glInvalidateSubFramebuffer(int
the target to which the framebuffer is attached. One of: target, int attachment, int
the X offset of the region to be invalidated x, int the Y offset of the region to be invalidated y, int the width of the region to be invalidated width, int the height of the region to be invalidated height)Invalidates the content of a region of some or all of a framebuffer object's attachments. | |||
| public static void | glInvalidateSubFramebuffer(int target, int[] attachments, int x, int y, int width, int height)
Array version of: | |||
| public static void | glInvalidateTexImage(int
the name of a texture object to invalidate texture, int the level of detail of the texture object to invalidate level)Invalidates the entirety of a texture image. | |||
| public static void | glInvalidateTexSubImage(int
the name of a texture object a subregion of which to invalidate texture, int the level of detail of the texture object within which the region resides level, int the X offset of the region to be invalidated xoffset, int the Y offset of the region to be invalidated yoffset, int the Z offset of the region to be invalidated zoffset, int the width of the region to be invalidated width, int the height of the region to be invalidated height, int the depth of the region to be invalidated depth)Invalidates a region of a texture image. | |||
| public static void | nglInvalidateFramebuffer(int target, int
the number of entries in the numAttachments, long attachments)attachments arrayUnsafe version of: | |||
| public static void | nglInvalidateSubFramebuffer(int target, int
the number of entries in the numAttachments, long attachments, int x, int y, int width, int height)attachments arrayUnsafe version of: |
| ARBInvalidateSubdata | back to summary |
|---|---|
| protected ARBInvalidateSubdata() | |
| glInvalidateBufferData | back to summary |
|---|---|
| public static void glInvalidateBufferData(int buffer) Invalidates the content of a buffer object's data store.
| |
| glInvalidateBufferSubData | back to summary |
|---|---|
| public static void glInvalidateBufferSubData(int buffer, long offset, long length) Invalidates a region of a buffer object's data store.
| |
| glInvalidateFramebuffer | back to summary | |||
|---|---|---|---|---|
| public static void glInvalidateFramebuffer(int target, IntBuffer attachments) Invalidate the content some or all of a framebuffer object's attachments.
| ||||
| glInvalidateFramebuffer | back to summary | |||
|---|---|---|---|---|
| public static void glInvalidateFramebuffer(int target, int attachment) Invalidate the content some or all of a framebuffer object's attachments.
| ||||
| glInvalidateFramebuffer | back to summary |
|---|---|
| public static void glInvalidateFramebuffer(int target, int[] attachments) Array version of: | |
| glInvalidateSubFramebuffer | back to summary | |||
|---|---|---|---|---|
| public static void glInvalidateSubFramebuffer(int target, IntBuffer attachments, int x, int y, int width, int height) Invalidates the content of a region of some or all of a framebuffer object's attachments.
| ||||
| glInvalidateSubFramebuffer | back to summary | |||
|---|---|---|---|---|
| public static void glInvalidateSubFramebuffer(int target, int attachment, int x, int y, int width, int height) Invalidates the content of a region of some or all of a framebuffer object's attachments.
| ||||
| glInvalidateSubFramebuffer | back to summary |
|---|---|
| public static void glInvalidateSubFramebuffer(int target, int[] attachments, int x, int y, int width, int height) Array version of: | |
| glInvalidateTexImage | back to summary |
|---|---|
| public static void glInvalidateTexImage(int texture, int level) Invalidates the entirety of a texture image.
| |
| glInvalidateTexSubImage | back to summary |
|---|---|
| public static void glInvalidateTexSubImage(int texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth) Invalidates a region of a texture image.
| |
| nglInvalidateFramebuffer | back to summary |
|---|---|
| public static void nglInvalidateFramebuffer(int target, int numAttachments, long attachments) Unsafe version of:
| |
| nglInvalidateSubFramebuffer | back to summary |
|---|---|
| public static void nglInvalidateSubFramebuffer(int target, int numAttachments, long attachments, int x, int y, int width, int height) Unsafe version of:
| |