Commit Graph

59 Commits

Author SHA1 Message Date
Router Gray
159de683e8 Correct a logical OR in llrender, and add guards against mCount dropping below zero. (Alchemy and LL sync) 2020-04-26 00:04:48 -05:00
Shyotl
3bc4d6fd63 Fix UI backgrounds vanishing when toggling basic shaders on and off. 2019-07-17 20:20:41 -05:00
Shyotl
e1cf05c327 Enable compressed texture. Also minor cleanup. 2019-03-01 22:19:11 -06:00
Shyotl
04ea11c61e Make gcc happier. 2018-11-20 02:49:57 -06:00
Shyotl
736696ac36 Track glEnable states via static refs instead of map lookups.
Sync light state, bound shader, and various gl context states similarly to render matrices.
Texture handles now refcounted, as multiple viewer textures could ref the same handle (cubemaps do this)
Clean up gl extension loading a bit. Not necessary, but only look for ARB variants if not included in current core version. Removed unused extensions.
Use core shader api if supported, else use ARB. (FN signatures are identical. Just doing some pointer substitution to ARB if not core.)
Attempt at improving VBO update batching. Subdata updates better batched to gether per-frame.
There's probably other stuff I forgot that is in this changeset, too.

Todo: Fix lightstate assertion when toggling fullscreen with shaders off.
2018-11-19 00:37:48 -06:00
Shyotl
d11899561b Optimization pass. 2018-08-07 01:09:53 -05:00
Shyotl
4a9ff22eeb I was critically damp once. It was okay. 2017-03-14 01:44:26 -05:00
Shyotl
d42e380698 Minor cleanup. 2017-03-13 23:54:56 -05:00
Shyotl
75c47e96b6 Fixed numerous bugs. 2017-03-09 23:49:56 -06:00
Shyotl
5d96bd8966 Fix winding issues with various ui draw methods. Face culling is actually disabled during ui rendering, but it's still good to do winding correctly regardless. Also automated tri strip batching. 2017-02-24 01:49:31 -06:00
Shyotl
5e501b9611 Removed TT_RECT_TEXTURE and removed unnecessary shaders. 2017-02-17 23:37:46 -06:00
Shyotl
693781a014 Remove all QUADS usage. Replaced with TRIANGLES and TRIANGLE_STRIP. May do another pass and replace un-textured TRIANGLE_STRIPs with TRIANGLES to reduce flush calls. 2017-02-11 02:03:06 -06:00
Shyotl
be5d2f20bc llrender and lldir merge. Removed duplicate assets from skins. cleaned up skin textures.xml files to only include changes from default. 2016-04-11 02:51:08 -05:00
Shyotl
1c627317ec No longer include llerrorlegacy.h. Updated llstl to include deletion utilites. 2015-06-19 03:54:20 -05:00
Shyotl
0688cda8d2 More thorough VBO teardown in resetVertexBuffers/stopGL. Also, found cases where gGL.init failed to be called when it should have been. 2015-06-01 17:58:19 -05:00
Shyotl
966c5aa409 Remove redundant methods of checking if shaders are enabled. Just use LLGLSLShader::sNoFixedFunction. 2015-05-16 02:31:06 -05:00
Shyotl
061178ad82 Migrated gl matrix stack to LLMatrix4a 2014-06-22 03:34:51 -05:00
Shyotl
24ca32f9f7 Replace gluProjectf/gluUnprojectf with own versions. Also changed gGLModelView/gGLProjection and other related matrices to LLMatrix4a. 2014-06-06 01:59:04 -05:00
Shyotl
98f9a09b39 sunlight_color_copy need only be vec3. 2014-05-08 16:39:41 -05:00
Shyotl
e2a0f801b9 Have LLRender::color4ub fall back to uniform if bound vbo lacks color attribute. Fixed fixed-function call in LLFacePool::LLOverrideFaceColor::setColor. 2014-05-08 16:29:53 -05:00
Shyotl
af8f8bb040 Mats. 2013-11-02 01:20:05 -05:00
Shyotl
f4863527aa Migrate ui scale/translation transform matrix stacks to LLAlignedArray. 2013-10-26 16:29:38 -05:00
Shyotl
70e008bf98 Fix some subtle bugs in llrender. 2013-04-15 18:10:38 -05:00
Shyotl
b07ab02f54 Added blendfunc checks when RenderDebugGL is TRUE. 2013-03-30 01:26:07 -05:00
Shyotl
d71210e942 Trivial changes, mostly to clean up diff noise. Majority of changes are comment corrections or licenseinfo updates. (does not include newview directory) 2013-01-07 14:44:54 -06:00
Shyotl
7aac61859f Avoid excess calls to gGL.flush when bound texture hasn't actually changed. 2012-12-08 01:01:47 -06:00
Shyotl
1a741b97d2 Fixed LLGLState::checkStates() failing upon context re-creation:
-After new context creation, immediately call LLRender::refreshState() after LLViewerWindow::initGLDefaults() in order to force states to apply.
--LLRender::initGLDefaults optimizes out gl calls by caching states, but the cached values are only applicable to the old context, not the new, so this optimization must be skipped (LLRender::mDirty).
-LLViewerWindow::mStatesDirty also triggered a redundant shader reload, since restoreGL also called setShaders().
Fixed somewhat annoying flicker of a single frame whilst recovering from screen resizing.
-Skip frame if LLViewerWindow::checkSettings() called LLViewerWindow::reshape. (reshape will set gWindowResized to true)
--True optimal fix will require some refactoring.
Reworked how window position is saved in LLViewerWindow::changeDisplaySettings. Hopefully reduces chances of odd behavior (had WindowX and WindowY get stuck at massive negative values before)
2012-10-25 20:42:58 -05:00
Shyotl
1b89e5c973 Dragged in a bunch of alignment fixes from LL. Should allow disabling of tcmalloc on windows/linux32 if such is ever implemented. 2012-10-16 02:33:05 -05:00
Shyotl
ff81d9461a Added motionblur postprocess shader.
Conflicts:

	indra/newview/skins/default/xui/en-us/floater_post_process.xml
2012-09-19 15:33:58 -05:00
Shyotl
b8276fd8e3 MAINT-685: Fix for disabling basic shaders making high detail terrain render incorrectly. http://hg.secondlife.com/viewer-development/changeset/218a7b78dcc5f53f38de063f3a229a7462fe052f 2012-08-20 05:10:15 +02:00
Shyotl
d2b13f515d Avoid several excessive per-frame LLView::getChildView calls by instead caching the results in postBuild. (Added CachedUICtrl, which is basically just a self-nulling pointer to not have to make ui ctors dirtier) 2012-08-03 20:51:53 -05:00
Shyotl
d9e5601e10 Manually vectorized some of the UI vertex operations. 2012-08-03 13:12:02 -05:00
Shyotl
c385133c84 Fixed noisemap not binding for the nightvision shader. 2012-08-03 13:10:16 -05:00
Shyotl
1d1947c51a Reworked LLPostProcess and implemented FBO support (much faster if multiple post shaders are enabled, or need a lot of passes).
Tweaked LLRenderTarget to support depth textures if FBO support is lacking.
Prefer LLRenderTarget::getFBO() over LLRenderTarget::sUseFBO when determining how to handle a specific LLRenderTarget object. (Decoupling to simplify logic without having to track a global)
2012-07-29 04:28:11 -05:00
Shyotl
67e1a3b004 Lindie viewer-dev catchup regarding rendering pipeline. 2012-06-30 20:05:31 -05:00
Shyotl
ae0804beea Trival V3 llmath merge. 2012-05-21 20:23:42 -05:00
Siana Gearz
459751f206 Catching up with Lindies part 1 2012-03-25 09:31:03 +02:00
Shyotl
f7b2139e81 Renderer update. Incl mac fixes, DoF improvements, windlight floater code cleanup. (shining-fixes merge) 2012-02-09 14:26:21 -06:00
Shyotl
7805508e8d SH-2827 crashfix. https://bitbucket.org/VirLinden/viewer-development-shining-fixes/changeset/806c10f621af 2012-01-19 10:36:56 -06:00
Shyotl
21b6b89577 If this assert hits then I want your callstack, and so does Bao Linden. SH-2827 2012-01-12 23:28:38 -06:00
Shyotl
a53e08032f Prep for UI matrices. 2011-12-11 01:13:47 -06:00
Shyotl
ffb285c6ff Huge renderer update (WIP). Still plenty to do, especially pertaining to UI.
-Nametag bubble visbility is oddly inconsistent. May vanish with future planned UI merges...
-VBOs are PAINFULLY slow on ATI hardware. This repos self-compiled davep/shining-fixes branch, so I'll leave the ball in LL's court for now regarding that.
2011-12-09 14:02:29 -06:00
Shyotl
83e8a9076b Several gl calls now wrapped via LLRender (gGL) as prep for future changes:
glMatrixMode -> gGL.matrixMode
..GL_MODELVIEW -> LLRender::MM_MODELVIEW
..GL_POJECTION -> LLRender::MM_PROJECTION
..GL_TEXTURE -> LLRender::MM_TEXTURE
glMultMatrix -> gGL.multMatrix
glLoadMatrixf -> gGL.loadMatrix
glPushMatrix -> gGL.pushMatrix
glPopMatrix -> gGL.popMatrix
glLoadIdentity -> gGL.loadIdentity
glRotatef -> gGL.rotatef
glTransformf -> gGL.transformf
glOrtho -> gGL.ortho
glColor3f -> gGL.diffuseColor3f
glColor3fv -> gGL.diffuseColor3fv
glColor4f -> gGL.diffuseColor4f
glColor4fv -> gGL.diffuseColor4fv
glColor4ubv -> gGL.diffuseColor4ubv
glLightModelfv(GL_LIGHT_MODEL_AMBIENT -> gGL.
2011-11-21 15:55:44 -06:00
Shyotl
70909f86c8 Changed some GL matricies to single precision. 2011-11-19 19:05:19 -06:00
Shyotl
5e829b7a3a LLRender's vertexbuffer created via init now, instead of ctor. Allows deallocation/reallocation. 2011-10-08 02:58:23 -05:00
Shyotl
f551294e66 Alphamasking migrated to shaders instead of using fixed-function. Very early code. Hasn't even made it into viewer-development yet. 2011-08-12 19:20:11 -05:00
Shyotl
ca328aec72 Replaced some opengl fixed functions with shaders. Temporary ShyotlUseLegacyRenderPath setting to debug if this change actually improves framerate at all (setting not tied to callbacks. Have to toggle shaders to have stuff pick up the setting change) 2011-08-10 03:53:49 -05:00
Shyotl
9bda97786f Batch indexing/no-fixed-function WIP. 2011-08-09 01:11:05 -05:00
Shyotl
e21c9637ae Added some glFlushes to lessen framestalls 2011-07-31 19:01:59 -05:00
Shyotl
43fd687b7c Fixed nullptr call on shutdown. 2011-06-13 23:20:45 -05:00