diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2010-11-24 09:27:07 +0300 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2010-11-24 09:27:07 +0300 |
commit | 32eba0898b8df5ed40db38e6b41884190e8e45e0 (patch) | |
tree | 94afd204e0084514bbdf996700cc542513237f5f | |
parent | c790b2c238691b5688866244f2372535e51061a1 (diff) |
Reverting revision 33120, which added vram monitoring. The method used had some problems (especially in the freeing function). I will research an alternative solution and submit it to the tracker.
-rw-r--r-- | source/blender/gpu/GPU_extensions.h | 4 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_draw.c | 11 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_extensions.c | 29 | ||||
-rw-r--r-- | source/gameengine/Ketsji/BL_Texture.cpp | 16 | ||||
-rw-r--r-- | source/gameengine/Ketsji/BL_Texture.h | 1 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 14 |
6 files changed, 2 insertions, 73 deletions
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h index a9b4b7a8544..96c68778201 100644 --- a/source/blender/gpu/GPU_extensions.h +++ b/source/blender/gpu/GPU_extensions.h @@ -104,10 +104,6 @@ int GPU_type_matches(GPUDeviceType device, GPUOSType os, GPUDriverType driver); - if created with from_blender, will not free the texture */ -unsigned int GPU_texture_vram_usage(void); -void GPU_texture_vram_add(unsigned int amount); -void GPU_texture_vram_subtract(unsigned int amount); - GPUTexture *GPU_texture_create_1D(int w, float *pixels); GPUTexture *GPU_texture_create_2D(int w, int h, float *pixels); GPUTexture *GPU_texture_create_3D(int w, int h, int depth, float *fpixels); diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 2d15d3efae9..a93d8cbbb8e 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -540,13 +540,11 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int if (!(gpu_get_mipmap() && mipmap)) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, rectw, recth, 0, GL_RGBA, GL_UNSIGNED_BYTE, rect); - GPU_texture_vram_add(rectw*recth*4); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter(1)); } else { gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, rectw, recth, GL_RGBA, GL_UNSIGNED_BYTE, rect); - GPU_texture_vram_add((rectw*recth*4) + (rectw*recth*4)/3); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gpu_get_mipmap_filter(0)); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter(1)); @@ -819,8 +817,6 @@ void GPU_free_unused_buffers(void) void GPU_free_image(Image *ima) { - ImBuf *ibuf; - if(!BLI_thread_is_main()) { gpu_queue_image_for_free(ima); return; @@ -831,13 +827,6 @@ void GPU_free_image(Image *ima) glDeleteTextures(1, (GLuint *)&ima->bindcode); ima->bindcode= 0; ima->tpageflag &= ~IMA_MIPMAP_COMPLETE; - - // Calculate how much vram was freed - ibuf = BKE_image_get_ibuf(ima, NULL); - if (!gpu_get_mipmap()) - GPU_texture_vram_subtract(ibuf->x*ibuf->y*4); - else - GPU_texture_vram_subtract((ibuf->x*ibuf->y*4)+(ibuf->x*ibuf->y*4)/3); } /* free glsl image binding */ diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c index 7f44d21f2b1..b3415efc447 100644 --- a/source/blender/gpu/intern/gpu_extensions.c +++ b/source/blender/gpu/intern/gpu_extensions.c @@ -66,12 +66,11 @@ static struct GPUGlobal { GLuint currentfb; int glslsupport; int extdisabled; - unsigned int texturevram; // An approximation of how much vram is being used for textures int colordepth; GPUDeviceType device; GPUOSType os; GPUDriverType driver; -} GG = {1, 0, 0, 0, 0}; +} GG = {1, 0, 0, 0}; /* GPU Types */ @@ -186,21 +185,6 @@ int GPU_color_depth() return GG.colordepth; } -unsigned int GPU_texture_vram_usage() -{ - return GG.texturevram; -} - -void GPU_texture_vram_add(unsigned int amount) -{ - GG.texturevram += amount; -} - -void GPU_texture_vram_subtract(unsigned int amount) -{ - GG.texturevram -= amount; -} - int GPU_print_error(char *str) { GLenum errCode; @@ -359,8 +343,6 @@ static GPUTexture *GPU_texture_create_nD(int w, int h, int n, float *fpixels, in if (tex->target == GL_TEXTURE_1D) { glTexImage1D(tex->target, 0, internalformat, tex->w, 0, format, type, 0); - GPU_texture_vram_add(tex->w*4); - if (fpixels) { glTexSubImage1D(tex->target, 0, 0, w, format, type, pixels? pixels: fpixels); @@ -374,8 +356,6 @@ static GPUTexture *GPU_texture_create_nD(int w, int h, int n, float *fpixels, in glTexImage2D(tex->target, 0, internalformat, tex->w, tex->h, 0, format, type, 0); - GPU_texture_vram_add(tex->w*tex->h*4); - if (fpixels) { glTexSubImage2D(tex->target, 0, 0, 0, w, h, format, type, pixels? pixels: fpixels); @@ -640,15 +620,8 @@ void GPU_texture_free(GPUTexture *tex) if (tex->fb) GPU_framebuffer_texture_detach(tex->fb, tex); if (tex->bindcode && !tex->fromblender) - { glDeleteTextures(1, &tex->bindcode); - if (tex->target == GL_TEXTURE_2D) - GPU_texture_vram_subtract(tex->w*tex->h*4); - else - GPU_texture_vram_subtract(tex->w*4); - } - MEM_freeN(tex); } } diff --git a/source/gameengine/Ketsji/BL_Texture.cpp b/source/gameengine/Ketsji/BL_Texture.cpp index 446ad0c47d5..e708775b184 100644 --- a/source/gameengine/Ketsji/BL_Texture.cpp +++ b/source/gameengine/Ketsji/BL_Texture.cpp @@ -22,8 +22,6 @@ #include "KX_GameObject.h" -#include "GPU_extensions.h" - #define spit(x) std::cout << x << std::endl; #include "MEM_guardedalloc.h" @@ -63,8 +61,7 @@ BL_Texture::BL_Texture() mNeedsDeleted(0), mType(0), mUnit(0), - mEnvState(0), - mTexSize(0) + mEnvState(0) { // -- } @@ -80,9 +77,6 @@ void BL_Texture::DeleteTex() glDeleteTextures(1, (GLuint*)&mTexture); mNeedsDeleted = 0; mOk = 0; - - GPU_texture_vram_subtract(mTexSize); - mTexSize = 0; } if(mEnvState) { @@ -171,15 +165,11 @@ void BL_Texture::InitGLTex(unsigned int *pix,int x,int y,bool mipmap) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); gluBuild2DMipmaps( GL_TEXTURE_2D, GL_RGBA, x, y, GL_RGBA, GL_UNSIGNED_BYTE, pix ); - mTexSize = (x*y*4)+(x*y*4)/3; - GPU_texture_vram_add(mTexSize); } else { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, pix ); - mTexSize = x*y*4; - GPU_texture_vram_add(mTexSize); } glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -200,15 +190,11 @@ void BL_Texture::InitNonPow2Tex(unsigned int *pix,int x,int y,bool mipmap) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); gluBuild2DMipmaps( GL_TEXTURE_2D, GL_RGBA, nx, ny, GL_RGBA, GL_UNSIGNED_BYTE, newPixels ); - mTexSize = (x*y*4)+(x*y*4)/3; - GPU_texture_vram_add(mTexSize); } else { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, nx, ny, 0, GL_RGBA, GL_UNSIGNED_BYTE, newPixels ); - mTexSize = x*y*4; - GPU_texture_vram_add(mTexSize); } glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); free(newPixels); diff --git a/source/gameengine/Ketsji/BL_Texture.h b/source/gameengine/Ketsji/BL_Texture.h index 93204910e54..eb3888b4862 100644 --- a/source/gameengine/Ketsji/BL_Texture.h +++ b/source/gameengine/Ketsji/BL_Texture.h @@ -27,7 +27,6 @@ private: int mUnit; // Texture unit associated with mTexture unsigned int mEnvState; // cache textureEnv static unsigned int mDisableState; // speed up disabling calls - unsigned int mTexSize; // Size of texture in video ram void InitNonPow2Tex(unsigned int *p,int x,int y,bool mipmap ); void InitGLTex(unsigned int *p,int x,int y,bool mipmap ); diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index fc43c03df31..a1c7957dc72 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -75,8 +75,6 @@ #include "DNA_world_types.h" #include "DNA_scene_types.h" -#include "GPU_extensions.h" - // If define: little test for Nzc: guarded drawing. If the canvas is // not valid, skip rendering this frame. //#define NZC_GUARDED_OUTPUT @@ -1441,18 +1439,6 @@ void KX_KetsjiEngine::RenderDebugProperties() m_canvas->GetHeight()); ycoord += 14; } - - // Put an extra gap in the printed results - ycoord += 14; - - /* Print texture vram usage */ - debugtxt.Format("Texture VRAM: %.2f MB", GPU_texture_vram_usage()/1048576.f); - m_rendertools->RenderText2D(RAS_IRenderTools::RAS_TEXT_PADDED, - debugtxt.Ptr(), - xcoord, ycoord, - m_canvas->GetWidth(), - m_canvas->GetHeight()); - ycoord += 14; } /* Property display*/ |