Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMitchell Stokes <mogurijin@gmail.com>2010-11-24 09:27:07 +0300
committerMitchell Stokes <mogurijin@gmail.com>2010-11-24 09:27:07 +0300
commit32eba0898b8df5ed40db38e6b41884190e8e45e0 (patch)
tree94afd204e0084514bbdf996700cc542513237f5f /source
parentc790b2c238691b5688866244f2372535e51061a1 (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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/gpu/GPU_extensions.h4
-rw-r--r--source/blender/gpu/intern/gpu_draw.c11
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c29
-rw-r--r--source/gameengine/Ketsji/BL_Texture.cpp16
-rw-r--r--source/gameengine/Ketsji/BL_Texture.h1
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.cpp14
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*/