summaryrefslogtreecommitdiff
path: root/indra/llimage/llimagej2c.cpp
AgeCommit message (Collapse)Author
2024-09-09Update calcDataSizeJ2C to stop undersized blocks (#2525)TommyTheTerrible
The initial block area for the pyramid walk should not be smaller than the max_block_size area so need an llmax to not allow multiplication below 1. This was causing decode errors for complex small images (128x128 or smaller) on discard 1 and 2.
2024-08-24Update LLImageJ2C::calcDataSizeJ2C for better 2k image support (#2406)TommyTheTerrible
Adjusted calculations based on dimensions and assumed maximum block size so that higher discards (4-5) of 2048x2048 images can be decoded with aux/alpha. (It should also work for dimensions larger than 2048.) This function will now return a reliable discard 5 data size for unknown dimensions (w and/or h equals 0), which could be used in LLTextureFetch::createRequest to skip the header fetch and go right to a discard 5 decode. Tested on OpenJPEG 2.5 with partial decode support (opj_decoder_set_strict_mode set to false). Should work on KDU fine but might be a good idea to test.
2024-08-20Clean up boost includes and remove compiler warning pragma for unreachable ↵Ansariel Hiller
code in PCH (#2361)
2024-07-20calcDataSizeJ2C adjusted to use maximum possible components (#2073)TommyTheTerrible
Previous pyramid walking calculation (#2032) assumed the incoming components variable can be accurate but unfortunately the needs_aux is only set to true if the face has an alpha mask setting. Without this information we must assume the J2C files have the maximum component size of four so that alpha channels are found when decoding both the color and aux textures.
2024-07-18Remove unnecessary code and (re-)add some more compile time constants (#2057)Ansariel Hiller
2024-07-17Fix: Update calcDataSizeJ2C to pyramid-base file size estimation (#2032)TommyTheTerrible
* Fix: Update calcDataSizeJ2C to pyramid-base file size estimation Used the loop from the previous LayerFactored method to create a more accurate file size estimation by walking up the pyramid tiles. Sizes are much larger in many cases and eliminate partial decoder issues with OpenJPEG. KDU not tested but expected to produce better files as well. Should also stop decode failures on tiny or very rectangular dimensions. --------- Co-authored-by: Andrey Lihatskiy <alihatskiy@productengine.com>
2024-05-22Fix line endlingsAnsariel
2024-05-22Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-AAnsariel
# Conflicts: # autobuild.xml # indra/cmake/CMakeLists.txt # indra/cmake/GoogleMock.cmake # indra/llaudio/llaudioengine_fmodstudio.cpp # indra/llaudio/llaudioengine_fmodstudio.h # indra/llaudio/lllistener_fmodstudio.cpp # indra/llaudio/lllistener_fmodstudio.h # indra/llaudio/llstreamingaudio_fmodstudio.cpp # indra/llaudio/llstreamingaudio_fmodstudio.h # indra/llcharacter/llmultigesture.cpp # indra/llcharacter/llmultigesture.h # indra/llimage/llimage.cpp # indra/llimage/llimagepng.cpp # indra/llimage/llimageworker.cpp # indra/llimage/tests/llimageworker_test.cpp # indra/llmessage/tests/llmockhttpclient.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llfontfreetype.cpp # indra/llui/llcombobox.cpp # indra/llui/llfolderview.cpp # indra/llui/llfolderviewmodel.h # indra/llui/lllineeditor.cpp # indra/llui/lllineeditor.h # indra/llui/lltextbase.cpp # indra/llui/lltextbase.h # indra/llui/lltexteditor.cpp # indra/llui/lltextvalidate.cpp # indra/llui/lltextvalidate.h # indra/llui/lluictrl.h # indra/llui/llview.cpp # indra/llwindow/llwindowmacosx.cpp # indra/newview/app_settings/settings.xml # indra/newview/llappearancemgr.cpp # indra/newview/llappearancemgr.h # indra/newview/llavatarpropertiesprocessor.cpp # indra/newview/llavatarpropertiesprocessor.h # indra/newview/llbreadcrumbview.cpp # indra/newview/llbreadcrumbview.h # indra/newview/llbreastmotion.cpp # indra/newview/llbreastmotion.h # indra/newview/llconversationmodel.h # indra/newview/lldensityctrl.cpp # indra/newview/lldensityctrl.h # indra/newview/llface.inl # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llfloateremojipicker.h # indra/newview/llfloaterimsessiontab.cpp # indra/newview/llfloaterprofiletexture.cpp # indra/newview/llfloaterprofiletexture.h # indra/newview/llgesturemgr.cpp # indra/newview/llgesturemgr.h # indra/newview/llimpanel.cpp # indra/newview/llimpanel.h # indra/newview/llinventorybridge.cpp # indra/newview/llinventorybridge.h # indra/newview/llinventoryclipboard.cpp # indra/newview/llinventoryclipboard.h # indra/newview/llinventoryfunctions.cpp # indra/newview/llinventoryfunctions.h # indra/newview/llinventorygallery.cpp # indra/newview/lllistbrowser.cpp # indra/newview/lllistbrowser.h # indra/newview/llpanelobjectinventory.cpp # indra/newview/llpanelprofile.cpp # indra/newview/llpanelprofile.h # indra/newview/llpreviewgesture.cpp # indra/newview/llsavedsettingsglue.cpp # indra/newview/llsavedsettingsglue.h # indra/newview/lltooldraganddrop.cpp # indra/newview/llurllineeditorctrl.cpp # indra/newview/llvectorperfoptions.cpp # indra/newview/llvectorperfoptions.h # indra/newview/llviewerparceloverlay.cpp # indra/newview/llviewertexlayer.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/macmain.h # indra/test/test.cpp
2024-04-29#824 Process source files in bulk: replace tabs with spaces, convert CRLF to ↵Andrey Lihatskiy
LF, and trim trailing whitespaces as needed
2024-04-24Merge branch 'main' into marchcat/a-mergeAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llimage/llimage.cpp # indra/llui/llsearcheditor.cpp # indra/llui/llview.cpp # indra/newview/llagent.cpp # indra/newview/llappviewer.cpp # indra/newview/llfloatercamera.cpp # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llinventoryfunctions.cpp # indra/newview/lloutfitgallery.cpp # indra/newview/lloutfitslist.cpp # indra/newview/llpanelgroupbulkban.cpp # indra/newview/llsidepanelappearance.cpp # indra/newview/llvovolume.cpp
2024-04-11Merge branch 'main' of https://github.com/secondlife/viewer into ↵Ansariel
DRTVWR-600-maint-A # Conflicts: # indra/llcommon/llapp.cpp # indra/llcommon/llapp.h # indra/llimage/llimageworker.cpp # indra/llui/llcontainerview.cpp # indra/llui/llcontainerview.h # indra/llui/llkeywords.cpp # indra/llui/lltabcontainer.cpp # indra/llui/lltextbase.cpp # indra/newview/llappviewer.cpp # indra/newview/llfavoritesbar.cpp # indra/newview/llfavoritesbar.h # indra/newview/llfloaterimnearbychathandler.cpp # indra/newview/llfloaterpreference.cpp # indra/newview/llhudnametag.h # indra/newview/llinventorypanel.cpp # indra/newview/llinventorypanel.h # indra/newview/llmeshrepository.cpp # indra/newview/lloutfitgallery.cpp # indra/newview/lloutfitslist.cpp # indra/newview/llpaneleditwearable.cpp # indra/newview/llpanelprofilepicks.cpp # indra/newview/llpanelvoicedevicesettings.h # indra/newview/llpreviewscript.cpp # indra/newview/llpreviewscript.h # indra/newview/llselectmgr.cpp # indra/newview/lltranslate.cpp # indra/newview/llviewerassetupload.cpp # indra/newview/llviewermessage.cpp
2024-01-08replace boost library to standardAiraYumi
2023-12-21SL-20743 Use LLMutex in LLImageBase for internal data thread-safetyAlexander Gavriliuk
2023-12-15SL-3508 Crash in LLKDUDecodeState::processTileDecodeAlexander Gavriliuk
2022-04-15SL-17219 WIP - Texture pipeline overhaulDave Parks
2021-10-28SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove ↵Dave Parks
LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton
2020-05-29SL-13348 Thread crashing singleton #2Andrey Kleshchev
Reverted LLImage to singleton conversion
2019-07-25DRTVWR-493 LLImage to LLParamSingletonandreykproductengine
2018-01-30MAINT-8091 Removed deprecated and unused private memory poolingAndrey Kleshchev
2017-12-05MAINT-2124 Texture allocation issuesandreykproductengine
2016-07-22MAINT-6584: Convert LLImage class hierarchy to standard 'bool'Nat Goodspeed
instead of legacy BOOL.
2016-07-21MAINT-6584: Streamline static LLImageJ2C implementation API.Nat Goodspeed
Specifically, remove unused function pointer types CreateLLImageJ2CFunction, DestroyLLImageJ2CFunction and EngineInfoLLImageJ2CFunction. Also eliminate static fallbackDestroyLLImageJ2CImpl() and fallbackEngineInfoLLImageJ2CImpl(), leaving only static fallbackCreateLLImageJ2CImpl(). We do need a factory function to instantiate the appropriate LLImageJ2CImpl subclass, so leave the fallbackCreateLLImageJ2CImpl() link seam in place. However, given that every known LLImageJ2CImpl subclass is cheap to instantiate, make getEngineInfo() a pure virtual method on that subclass: the static LLImageJ2C::getEngineInfo() method can temporarily construct an instance to query. While we're at it, make getEngineInfo() return std::string like LLImageJ2C::getEngineInfo(). It's ridiculous that fallbackEngineInfoLLImageJ2CImpl() implementations constructed a static std::string and returned its c_str(), only to have LLImageJ2C::getEngineInfo() construct ANOTHER std::string from the returned const char*. fallbackDestroyLLImageJ2CImpl() never did anything useful: it merely deleted the passed LLImageJ2CImpl subclass pointer as the specific subclass type. But since LLImageJ2CImpl's destructor is virtual, LLImageJ2C's destructor could simply delete the stored LLImageJ2CImpl*. In fact, make mImpl a boost::scoped_ptr<LLImageJ2CImpl> so we don't even have to delete it manually.
2015-11-10remove execute permission from many files that should not have itOz Linden
2013-10-01changed over to manual naming of MemTrackable statsRichard Linden
changed claimMem and disclaimMem behavior to not pass through argument added more mem tracking stats to floater_stats
2013-07-19BUILDFIX: #include and dependency cleanupRichard Linden
2013-07-18SH-4297 WIP interesting: viewer-interesting starts loading cached scene lateRichard Linden
dependency cleanup - removed a lot of unecessary includes
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2012-07-20MAINT-570 Remove unused memory tracking system LLMemTypeDave Parks
2012-05-25Merge pull from lindenlab/viewer-development as requested by Oz for DRTVWR-148simon@Simon-PC.lindenlab.com
2012-05-08SH-3047 : Tweak of the performance compression data gathering codeMerov Linden
2012-05-02merge viewer-release to dranoBrad Payne (Vir Linden)
2012-04-13Final pull from viewer-thx1138Merov Linden
2012-04-13SH-3060 : Always use old byte range on low res (faster), reserve new byte ↵Merov Linden
range for high res.
2012-04-13fix for linux build failureBrad Payne (Vir Linden)
2012-04-12SH-3080 : Implement the TextureReverseByteRange setting so we can play with ↵Merov Linden
that parameter
2012-04-06SH-3060 : Complete new byte range computation, clean up and back pedal on ↵Merov Linden
some changes that didn't pay of.
2012-04-05SH-3060 : Implement new byte range computation, cleaned up use of ↵Merov Linden
compression rate as well.
2012-04-04SH-3060 : New byte range implementation. Intermediate (not working) state.Merov Linden
2012-04-02SH-3060 : Preliminary implementation of the new byte range computation, ↵Merov Linden
implement setting to turn it on or off
2012-03-15SH-3047 : Read the number of levels from the j2c image header instead of ↵Merov Linden
relying on hacked computation based on width / height.
2012-02-01converted a bunch of narrowing implicit conversions to explicitRichard Linden
2011-10-14b782a75c99e6 backout cleanupDave Parks
2011-10-14Merge backout of b782a75c99e6Dave Parks
2011-10-14Backed out changeset b782a75c99e6Dave Parks
2011-07-15Merge from viewer-developmentXiaohong Bao
2011-05-10add debug mode to track the memory allocation/deallocation.Xiaohong Bao
2011-05-04EXP-664 : Make encoding parameters more resilient to bad entries, add levels ↵Merov Linden
as encoding parameters, update test applet to support this
2011-04-04STORM-746 : add precincts and blocks arguments taken into account in j2c outputMerov Linden
2011-04-04STORM-746 : add new arguments for precincts and blocks on output, region and ↵Merov Linden
level on input, add code for input loading restriction
2011-03-10STORM-987 : Took Vadim's comment into account: check arguments consistency, ↵Merov Linden
make sure remaining perf data are flushed on exit.