| | '''OpenGL extension NV.gpu_program5_mem_extended |
| | |
| | This module customises the behaviour of the |
| | OpenGL.raw.GL.NV.gpu_program5_mem_extended to provide a more |
| | Python-friendly API |
| | |
| | Overview (from the spec) |
| | |
| | This extension provides a new set of storage modifiers that can be used by |
| | NV_gpu_program5 assembly program instructions loading from or storing to |
| | various forms of GPU memory. In particular, we provide support for loads |
| | and stores using the storage modifiers: |
| | |
| | .F16X2 .F16X4 .F16 (for 16-bit floating-point scalars/vectors) |
| | .S8X2 .S8X4 (for 8-bit signed integer vectors) |
| | .S16X2 .S16X4 (for 16-bit signed integer vectors) |
| | .U8X2 .U8X4 (for 8-bit unsigned integer vectors) |
| | .U16X2 .U16X4 (for 16-bit unsigned integer vectors) |
| | |
| | These modifiers are allowed for the following load/store instructions: |
| | |
| | LDC Load from constant buffer |
| | |
| | LOAD Global load |
| | STORE Global store |
| | |
| | LOADIM Image load (via EXT_shader_image_load_store) |
| | STOREIM Image store (via EXT_shader_image_load_store) |
| | |
| | LDB Load from storage buffer (via |
| | NV_shader_storage_buffer_object) |
| | STB Store to storage buffer (via |
| | NV_shader_storage_buffer_object) |
| | |
| | LDS Load from shared memory (via NV_compute_program5) |
| | STS Store to shared memory (via NV_compute_program5) |
| | |
| | For assembly programs prior to this extension, it was necessary to access |
| | memory using packed types and then unpack with additional shader |
| | instructions. |
| | |
| | Similar capabilities have already been provided in the OpenGL Shading |
| | Language (GLSL) via the NV_gpu_shader5 extension, using the extended data |
| | types provided there (e.g., "float16_t", "u8vec4", "s16vec2"). |
| | |
| | The official definition of this extension is available here: |
| | http://www.opengl.org/registry/specs/NV/gpu_program5_mem_extended.txt |
| | ''' |
| | from OpenGL import platform, constant, arrays |
| | from OpenGL import extensions, wrapper |
| | import ctypes |
| | from OpenGL.raw.GL import _types, _glgets |
| | from OpenGL.raw.GL.NV.gpu_program5_mem_extended import * |
| | from OpenGL.raw.GL.NV.gpu_program5_mem_extended import _EXTENSION_NAME |
| |
|
| | def glInitGpuProgram5MemExtendedNV(): |
| | '''Return boolean indicating whether this extension is available''' |
| | from OpenGL import extensions |
| | return extensions.hasGLExtension( _EXTENSION_NAME ) |
| |
|
| |
|
| | |