summaryrefslogtreecommitdiff
path: root/indra/llrender/llvertexbuffer.cpp
diff options
context:
space:
mode:
authorGraham Madarasz <graham@lindenlab.com>2019-07-15 23:23:48 +0000
committerGraham Madarasz <graham@lindenlab.com>2019-07-15 23:23:48 +0000
commite96356ce60a77401c531cb36f0e51eaa5fa72cd0 (patch)
tree602ea73b6df01487765afeaced008d8c64f60594 /indra/llrender/llvertexbuffer.cpp
parent01bdbdb6acb4e315cb7de811d6ecced41fa0f9a7 (diff)
parentf6eab050178336a553f52837b8e8a4cc0bf6bacb (diff)
Merged in graham_linden/viewer-eep-g (pull request #462)
SL-10761, SL-11590, SL-10625
Diffstat (limited to 'indra/llrender/llvertexbuffer.cpp')
-rw-r--r--indra/llrender/llvertexbuffer.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 0c53d48c08..1b910d91b2 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -953,6 +953,17 @@ S32 LLVertexBuffer::determineUsage(S32 usage)
}
}
+ if (ret_usage == 0)
+ {
+ if (sDisableVBOMapping)
+ { //always use stream draw if VBO mapping is disabled
+ ret_usage = GL_STREAM_DRAW_ARB;
+ }
+ else
+ {
+ ret_usage = GL_DYNAMIC_DRAW_ARB;
+ }
+ }
return ret_usage;
}
@@ -982,6 +993,8 @@ LLVertexBuffer::LLVertexBuffer(U32 typemask, S32 usage)
mMappable(false),
mFence(NULL)
{
+ llassert(mUsage != 0);
+
mMappable = (mUsage == GL_DYNAMIC_DRAW_ARB && !sDisableVBOMapping);
//zero out offsets
@@ -1527,7 +1540,7 @@ bool LLVertexBuffer::resizeBuffer(S32 newnverts, S32 newnindices)
bool LLVertexBuffer::useVBOs() const
{
//it's generally ineffective to use VBO for things that are streaming on apple
- return (mUsage != 0);
+ return sEnableVBOs && (mUsage != 0);
}
//----------------------------------------------------------------------------