Advertisement
maany

JOGL mem info

Mar 31st, 2014
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.52 KB | None | 0 0
  1.     public int getFreeMemory() {
  2.        GL gl = GLContext.getCurrentGL();
  3.        IntBuffer freeMemory= BufferUtils.createIntBuffer(3);
  4.        freeMemory.put(-1);
  5.        try {                  
  6.             if(gl.glGetString(GL.GL_VENDOR).equals("NVIDIA Corporation") && gl.isExtensionAvailable("GL_NVX_gpu_memory_info"))
  7.             {
  8.                freeMemory.clear();
  9.                gl.glGetIntegerv(0x9048,freeMemory);
  10.                return freeMemory.get(0);
  11.             }
  12.        } catch (Exception e) {
  13.            logger.log(Level.WARNING,"Cannot retrieve free memory for the NVIDIA GPU");
  14.        }
  15.        try {
  16.             if(gl.glGetString(GL.GL_VENDOR).equals("ATI Technologies") && gl.isExtensionAvailable("GL_ATI_meminfo"))
  17.             {
  18.                freeMemory.clear();
  19.                //VBO Free Memory
  20.                gl.glGetIntegerv(0x87FB, freeMemory);
  21.                //TEXTURE_FREE_MEMORY_ATI
  22.                gl.glGetIntegerv(0x87FC, freeMemory);
  23.                //RENDERBUFFER_FREE_MEMORY_ATI
  24.                gl.glGetIntegerv(0x87FD, freeMemory);
  25.                // storing total free memory at position 0
  26.                freeMemory.put(0,freeMemory.get(0) + freeMemory.get(1) + freeMemory.get(2));
  27.                return freeMemory.get(0);
  28.             }
  29.        }catch(Exception e){
  30.             logger.log(Level.WARNING,"Cannot retrieve free memory for the ATI GPU");
  31.        }
  32.        throw new UnsupportedOperationException("Cannot retrieve GPU's memory info");
  33.     }
  34.  
  35.     public int getMaxMemory() {
  36.        GL gl = GLContext.getCurrentGL();
  37.        IntBuffer maxMemory= BufferUtils.createIntBuffer(1);
  38.        maxMemory.put(-1);
  39.        try {                  
  40.             if(gl.glGetString(GL.GL_VENDOR).equals("NVIDIA Corporation") && gl.isExtensionAvailable("GL_NVX_gpu_memory_info"))
  41.             {
  42.                maxMemory.clear();
  43.                gl.glGetIntegerv(0x9048,maxMemory);
  44.                return maxMemory.get(0);
  45.             }
  46.        } catch (Exception e) {
  47.            logger.log(Level.WARNING,"Cannot retrieve maximum memory for the NVIDIA GPU");
  48.        }
  49.        try {
  50.             if(gl.glGetString(GL.GL_VENDOR).equals("ATI Technologies"))
  51.             {
  52.                maxMemory.clear();
  53.                maxMemory.put(-1);
  54.                return maxMemory.get(0);
  55.             }
  56.        }catch(Exception e){
  57.             logger.log(Level.WARNING,"Cannot retrieve maximum memory for the ATI GPU");
  58.        }
  59.        throw new UnsupportedOperationException("Cannot retrieve GPU's memory info");
  60.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement