Commit Graph

1345 Commits (bf183ecff76809674f4fb0fa302138d554bc3628)

Author SHA1 Message Date
Andrey Kleshchev 904b16a0a7 SL-17124 switchContext and loadShaderFile crashes
- Do not try initializing shaders if requirements are not met or if window does not exist
- Warn user before closing window. Situation is unexpected, there is chance of more issues, like a freeze or a crash on close()
- mHasMultitexture is a solid requirement, if it is not present, we won't be able to run
2022-04-29 19:41:22 +03:00
Dave Parks 9dc8fee0f5 SL-16928 Fix for broken bumpmaps on Intel GPUs 2022-03-04 17:05:05 -06:00
Dave Parks 85e480616d Fix for mac build 2022-02-23 19:59:46 -06:00
Dave Parks 4f9fa5e817 Fix for some GPUs thinking they have 0 available vram. 2022-02-23 19:53:49 -06:00
Dave Parks fc0b238654 Fix for media textures failing to update (and eating lots of memory) on Mac/Intel 2022-02-23 17:55:44 -06:00
Dave Parks d9a68339d5 SL-16815 and SL-16906 Avoid redundant bumpmap generation, add some assertions around ref counting and (hack) fix crash on shutdown from dangling texture reference (reduced to 1 dangling texture from several hundred, can't find the remaining reference). 2022-02-23 16:51:33 -06:00
Dave Parks 74641a1213 SL-16815 Cleanup -- disable multithreaded bumpmap generation while tracking down loading issues, fix sync issue in single threaded mode in media textures, restore LL_IMAGEGL_THREAD_CHECK functionality 2022-02-22 19:48:01 -06:00
Dave Parks 1c5c45f273 SL-16815 Fix for broken media texture updates when multithreaded GL is disabled. 2022-02-22 14:58:50 -06:00
Dave Parks 0d6aa3c0fe SL-16815 Remove frame stalls from occlusion queries, bumpmap updates, and querying for available video memory. 2022-02-17 22:52:23 +00:00
Dave Parks f47730b92c SL-16418 Media texture update stall fix. Make media texture updates use LLImageGL thread to update, fix AMD sync issue on ImageGL thread and install debug callbacks on LLImageGL thread when debug gl enabled. 2022-02-14 18:07:24 +00:00
Ptolemy c38812aa15 SL-16727: Revert change causing llvieweroctree to not render reflections when shadows are set to projectors cause by commit bb379cb8cc 2022-02-03 11:11:46 -08:00
Dave Houlton fdc4a81b57 Revert "Merged in euclid-16418 (pull request #846)"
This reverts commit 40fe5277e1, reversing
changes made to af830e5fc5.
2022-02-01 15:49:32 -07:00
Dave Houlton 8d0efb54db SL-16418 rename media tex image per-update to avoid contention stall 2022-01-27 17:09:29 -07:00
Runitai Linden 1a440be5e1 SL-16653 Fix for some textures having incorrect texel colors after the first row (and add more paranoia checks on texture data). 2022-01-19 10:35:58 -06:00
Ptolemy b41a54e126 SL-16606: Add profiler category VERTEX 2022-01-14 11:50:21 -08:00
Ptolemy b70614bd87 SL-16606: Add profiler category UI 2022-01-14 11:50:21 -08:00
Ptolemy bf0643e28a SL-16606: Add profiler category TEXTURE 2022-01-14 11:50:21 -08:00
Ptolemy 97552d2e75 SL-16606: Add profiler category SHADER 2022-01-14 11:50:20 -08:00
Ptolemy 206a8bb30f SL-16606: Add profiler category PIPELINE 2022-01-14 11:50:20 -08:00
Dave Houlton cf35d27dfb DRTVWR-546 merge up to 6.5.2 2021-12-15 14:37:18 -07:00
Runitai Linden 8a18b5e427 SL-16462 Fix for broken water clip plane during water reflection/refraction map render. 2021-12-07 16:32:38 -06:00
Runitai Linden 72cd3ffde7 SL-16447 Fix for broken benchmark. 2021-12-06 17:02:41 -06:00
Mnikolenko Productengine c614674ee6 SL-16282 FIXED Friend thumbnails are flickering 2021-12-06 19:20:49 +02:00
Dave Parks 5e5be92d79 SL-16202 Put Multi-threaded GL behind a feature flag and update featuretable (decruftify settings, compatibility pass). 2021-12-06 15:29:34 +00:00
Dave Parks e7830b39f0 SL-16436 and SL-16327 Fix for RenderDebugGL test failures and fix for grey textures 2021-12-03 15:07:31 +00:00
Andrey Kleshchev 7929230c04 mac build fix
remove unused variable
2021-12-02 01:19:40 +02:00
Dave Houlton 8b92652806 SL-16386 replace gutted LLRender::setAlphaRejectSettings() with explicit flush() 2021-11-30 17:04:35 -07:00
Dave Houlton 4d6963bd81 SL-16386 purge write-only state member LLCubeMap::mTextureCoordStage 2021-11-30 17:04:35 -07:00
Dave Houlton fab60f242e SL-16386 purge no-op fxn LLTexUnit::setTextureAlphaBlend() 2021-11-30 17:04:35 -07:00
Dave Houlton 3d1901dd4c SL-16386 purge no-op fxn LLTexUnit::setTextureColorBlend() 2021-11-30 17:04:35 -07:00
Dave Houlton 5fcea00c4f SL-16386 purge no-op fxn LLTexUnit::setTextureBlendType() 2021-11-30 17:04:35 -07:00
Dave Houlton 68e09edad0 SL-16386 remove references to (const true) LLGLSLShader::sNoFixedFunction 2021-11-30 17:04:35 -07:00
Nat Goodspeed 0b066539fe DRTVWR-546, SL-16220, SL-16094: Undo previous glthread branch revert.
Reverting a merge is sticky: it tells git you never want to see that branch
again. Merging the DRTVWR-546 branch, which contained the revert, into the
glthread branch undid much of the development work on that branch. To restore
it we must revert the revert.

This reverts commit 029b41c041.
2021-11-24 10:47:54 -05:00
Nat Goodspeed d71e0a6d47 SL-16094, SL-16400: Merge branch 'DRTVWR-546' into glthread 2021-11-23 21:23:45 -05:00
Nat Goodspeed 2b96f89c2a SL-16400: Add ThreadPool::start() method, and call it.
It's sometimes important to finish other initialization before launching the
threads in the ThreadPool, so make that an explicit step. In particular, we
were launching the LLImageGL texture thread before initializing the GL
context, resulting in all gray textures.
2021-11-23 20:39:32 -05:00
Dave Parks 724193e5b0 SL-16239 Fix for slowdown on AMD GPUs (disable core profile and remove volatile members from LLVertexBuffer) 2021-11-23 20:46:27 +00:00
Runitai Linden 744646eb71 SL-16400 Fix for grey textures (hack). 2021-11-22 19:12:39 -06:00
Runitai Linden 9b0d8c7e62 SL-16094 More profile hooks for threading code, remove redundant wglCreateContextAttribs call 2021-11-22 18:42:56 -06:00
Dave Houlton bb379cb8cc SL-13565 disable reflection render pass when all non-void water is occluded 2021-11-22 15:22:28 -07:00
Dave Parks 28f9fb06a9 SL-16289 Rigged mesh rendering overhaul 2021-11-20 18:49:19 +00:00
Andrey Kleshchev 3b3ff53eb5 SL-15391 Crash at getUniformLocation 2021-11-19 14:43:20 -05:00
Andrey Kleshchev 7f2e740591 SL-15333 Crash in glh_init_extensions 2021-11-19 14:43:19 -05:00
Dave Houlton 029b41c041 Revert "SL-16220: Merge branch 'origin/DRTVWR-546' into glthread"
This reverts commit 5188a26a85, reversing
changes made to 819088563e.
2021-11-15 09:25:35 -07:00
Nat Goodspeed 5188a26a85 SL-16220: Merge branch 'origin/DRTVWR-546' into glthread 2021-11-12 12:10:44 -05:00
Andrey Kleshchev c1c2830f9b SL-15391 Crash at getUniformLocation 2021-11-12 17:31:36 +02:00
Andrey Kleshchev 5534781acf SL-15333 Crash in glh_init_extensions 2021-11-12 17:21:50 +02:00
Nat Goodspeed ff5496239b SL-16202: Use WorkQueue::postTo() for texture create/post handshake.
That is, when LLViewerFetchedTexture::scheduleCreateTexture() wants to call
createTexture() on the LLImageGLThread, but postCreateTexture() on the main
thread, use the "mainloop" WorkQueue to set up the handshake.

Give ThreadPool a public virtual run() method so a subclass can override with
desired behavior. This necessitates a virtual destructor. Add accessors for
embedded WorkQueue (for post calls), ThreadPool name and width (in threads).

Allow LLSimpleton::createInstance() to forward arguments to the subject
constructor.

Make LLImageGLThread an LLSimpleton - that abstraction didn't yet exist at the
time LLImageGLThread was coded. Also derive from ThreadPool rather than
LLThread. Make it a single-thread "pool" with a very large queue capacity.
2021-11-05 12:33:31 -04:00
Nat Goodspeed d848d9e888 SL-16202: Streamline WorkQueues in LLImageGLThread.
Use the new WorkQueue::postIfOpen() method in LLImageGLThread::post(). That
makes the LLImageGLThread method a trivial wrapper, which can accept templated
work items and pass them through to the WorkQueue method, eliminating double
indirection due to multiple layers of std::function.

Eliminate LLImageGLThread's WorkQueue intended for work on the main queue.
Since the main loop already has a WorkQueue of its own, post work directly to
that WorkQueue instead of using a separate WorkQueue misleadingly embedded in
LLImageGLThread.

Instead of looking up the main thread's WorkQueue every time, capture a
pointer in LLImageGL's constructor.

We no longer need a fallback queue for when the main thread's WorkQueue is
full. We no longer need the main loop to poll LLImageGL to service the local
main-thread-targeted WorkQueue, or to copy work from the fallback queue to the
main queue. That eliminates LLImageGLThread::postCallback(), mCallbackQueue,
mPendingCallbackQ, executeCallbacks() -- and even LLImageGL::updateClass() and
LLAppViewer's call to it.

Change LLViewerFetchedTexture::scheduleCreateTexture() to post work to the
main thread's WorkQueue instead of calling LLImageGLThread::postCallback().
2021-11-04 16:50:31 -04:00
Mnikolenko Productengine 3faba7515c SL-16237 FIXED Viewer hangs on login 2021-11-01 19:38:55 +02:00
Dave Parks 8d20480c5f SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton 2021-10-28 18:06:21 +00:00