Commit Graph

78 Commits

Author SHA1 Message Date
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
85cb3cb0d0 Clean up deferred shaders by moving common methods into shared glsl file 2018-02-04 23:08:31 -06:00
Shyotl
5e501b9611 Removed TT_RECT_TEXTURE and removed unnecessary shaders. 2017-02-17 23:37:46 -06:00
Shyotl
98516a2a22 Bento hell and back, and back to hell, and back. 2017-01-11 03:55:36 -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
966c5aa409 Remove redundant methods of checking if shaders are enabled. Just use LLGLSLShader::sNoFixedFunction. 2015-05-16 02:31:06 -05:00
Shyotl
a9c3e13e5e Removed some diagnostic spam pertaining to shaders. 2014-05-17 03:32:40 -05:00
Shyotl
67c8ac2b04 Skinned shaders were exceeding maximum amount of vertex uniforms on amd hardware.
-Changed the transform matrix uniform to a 3x4 matrix and packed translation into it to free up uniforms. (3x3 is converted to 3x4 internally, so we were needlessly eating 3*52 extra uniform slots. translationPalette might also have been treated as a vec4 internally too, wasting 52 more slots.)
-matrix3x4 requires opengl2.1 and newer, so added a new featuretable mask.
-Also added a featuretable mask to disable hardware skinning and deferred shading on hardware with less than 1024 vertex uniforms.
NOTE: On old old old amd hardware, evidently a 3x4 matrix might be upgraded to 4x4. I'm unsure, but I doubt such hardware has 1024+ uniform components available to begin with. 4x3 supposedly doesn't do this, but opengl is column-major, so this makes little sense.
2014-05-17 03:31:45 -05:00
Shyotl
7d98030edc Use the right diffuse shader for skinned deferred diffuse simple object shader. 2014-05-14 19:43:03 -05:00
Shyotl
3db9c6a9ff Try mask-based object shader configuration, instead of a bazillion hard-coded shader globals. Should be a bit more consistent. (non-deferred only, for now)
Also abuse discard in alpha shaders, instead of processing invisible fragments.
2014-05-14 03:30:02 -05:00
Shyotl
07a261a259 A little bit of cleanup. 2014-03-27 22:04:30 -05:00
Shyotl
34a7bf4dbb Comment out unused shader. 2014-03-27 21:30:23 -05:00
Shyotl
66ebe45b5e Give 'gDeferredNonIndexedDiffuseAlphaMaskProgram' a unique 'name' 2014-01-23 19:01:49 -06:00
Shyotl
7da8b012e6 Pulled SSAO out into its own shader to support running at a lower-than-native framebuffer resolution (defaults at half-resolution [SHRenderSSAOResolutionScale=.5] ). This doesn't improve the slow ssao/shadow softening, however, as that bit remains unchanged. 2013-12-13 02:19:57 -06:00
Shyotl
322ceceb60 Added shaders needed to display texture 'edit' overlay using the specular/normalmap texcoords. 2013-11-05 23:51:09 -06:00
Shyotl
af8f8bb040 Mats. 2013-11-02 01:20:05 -05:00
Shyotl
5e8c7264da Fix artifacts from local stash merge. 2013-10-26 19:58:54 -05:00
Shyotl
8e55d5499e Occlusion FBOs in deferred. 2013-10-26 18:07:56 -05:00
Shyotl
574022ed2c Made a few more fullbright face types occlude any glow behind them. 2013-10-26 18:01:36 -05:00
Shyotl
8441bc80a4 Use LLStaticHashedString for faster uniform lookup. 2013-10-26 16:26:46 -05:00
Shyotl
f25eb07fab Unstaged changes cleanup. Further vectorization. Change in binormal/bitangent calculation. 2013-10-09 15:43:23 -05:00
Siana Gearz
3cd16c84ef Dirty patch Intel HD4000 shader-confusion 2013-05-27 06:47:00 +02:00
Shyotl
0742610674 Updated gObjectPreviewProgram shader (simple lighting) 2013-02-12 14:59:02 -06:00
Shyotl
afaaba6b3c OSX was choking on transformfeedback shaders. Make failure to load such shaders non-critical to the shader loading process. Also clean up glColorMask state properly in wlsky. 2012-12-24 17:56:32 -06:00
Shyotl
b20f39d09f Retain shader error logs across entire session. 2012-12-19 19:06:59 -06:00
Shyotl
0460769eea Unified moon/star rendering to share same shader. Also now actually using deferred shader when performing deferred rendering. 2012-12-19 01:52:10 -06:00
Shyotl
2424d2a082 A little bit of postprocess shader tinkering. 2012-12-12 03:10:05 -06:00
Shyotl
08a3828cc9 Applied Tofu Linden's water atmospherics improvements.
59f73ee6a1 &
43fdcb8d84
2012-12-08 16:50:35 -06:00
Shyotl
5be31898f1 Don't compile avatar eye shader, as it isn't used anywhere. 2012-10-21 17:14:29 -05:00
Shyotl
438c499718 And the shader.. 2012-09-19 15:34:15 -05:00
Shyotl
afc7c2b449 Better robustness when loading shaders. Redundant shaders (eg: "deferred/shadowF.glsl") will only need to be compiled once, and LLShaderMgr::mShaderObjects won't have previous entries mistakenly overwritten as a result. 2012-09-14 02:33:07 +02:00
Shyotl
d6b470cd07 Just call LLPipeline::refreshCachedSettings() in LLViewerShaderManager::setShaders() to avoid occlusion-related crashes if certain shaders failed to load. 2012-08-15 16:21:10 -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
46f7250f08 Fixup multisample rbos. Samplecount validation all done in LLMultisampleBuffer::allocate, and falls back to non-multisample safely if multisampled rbos cannot/shouldn't be used. 2012-07-15 21:12:31 -05:00
Shyotl
67e1a3b004 Lindie viewer-dev catchup regarding rendering pipeline. 2012-06-30 20:05:31 -05:00
Shyotl
e1d243272f V3 merge part 1 / 2. 2012-04-13 22:39:39 -05:00
Siana Gearz
70438fa06f Catching up with Lindies part 3 2012-03-26 15:01:53 +02:00
Siana Gearz
3f0f955a76 Catching up with Lindies part 2 2012-03-25 10:47:20 +02:00
Siana Gearz
459751f206 Catching up with Lindies part 1 2012-03-25 09:31:03 +02:00
Shyotl
d10724ae6f Remove some dead savedsettings. 2012-02-10 11:20:28 -06:00
Shyotl
afed6dad84 Fix deferred on mac. VBO cleanup. https://bitbucket.org/VirLinden/viewer-development-shining-fixes/changeset/853c76596bdb 2012-01-26 16:09:47 -06:00
Shyotl
1bfa72fa7c V3 merge. Slight update. Fixes lighting oddities. 2011-12-16 01:50:57 -06:00
Shyotl
0030ca3af7 Fixed extra post-process shaders. Cleaned up and no longer using deprecated functions. 2011-12-16 01:46:20 -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
8e7733b2ce Lazy shader update. attribute -> ATTRIBUTE, varying -> VARYING. Moved some shader preprocessor stuff from llviewershadermgr.cpp to llshadermgr.cpp to match LL (although it looks more messy) 2011-11-24 01:03:03 -06:00
Shyotl
bf6e1d6c75 Unbork shadows. Apparently texture/texturProj do not return a vector for shadow samplers. 2011-11-23 21:30:32 -06:00
Shyotl
5d8d402403 Fix shader error dumping. (the error file was not being written to.) Also catch exceptions if shader log dir is inaccessable or otherwise unable to be cleared. 2011-11-23 21:29:42 -06:00
Shyotl
ee5a9c97be Removing some shader warnings under gl 3.x context. 2011-11-07 16:43:30 -06:00
Shyotl
b3423de80a Shaders dumped to logs/shader_dump directory if 'ShyotlDumpRawShaders' is true, or a shader throws an error of some sort. 2011-10-22 01:55:08 -05:00