Commit Graph

56 Commits

Author SHA1 Message Date
UbitUmarov
e043d8a2eb use array.Empty<byte> 2022-03-12 15:21:24 +00:00
UbitUmarov
da928d6099 != UUID.Zero is slow 2022-01-09 02:28:51 +00:00
UbitUmarov
0ffa225fc2 make dynamic textures only use asset cache explicitly 2021-08-06 22:58:35 +01:00
UbitUmarov
b2810c4ca7 mantis 8442 more changes to alpha blending 2019-01-16 20:24:16 +00:00
UbitUmarov
d8e5b7385e mantis 8442 change alpha blending note BREAKING CHANGEgit push! old scripts using alpha parameter != 255 on osSetDynamicTextureDataBlendFace, will be diferent 2019-01-16 00:29:56 +00:00
UbitUmarov
84235900b2 do not use lossless compression on dyntextures 2018-07-14 15:13:21 +01:00
UbitUmarov
ead95e85c5 bug fix: dynamic testures set to ALL_SIDES, preserve other face data already present 2017-07-07 04:57:57 +01:00
UbitUmarov
1a8a77c41e revert the thread level change; remove unused dynamic texture timer from internal code; let blend alpha work if < 255; let blend work with the selected face; etc 2017-06-24 09:24:56 +01:00
UbitUmarov
72db6f76b5 remove a DynamicTexture leak, make it actually return the new texture ID to ossl, do delete previus texture from local cache if temporary,at least on same cases... but still very broken.. 2017-06-24 05:22:02 +01:00
Melanie Thielker
b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
UbitUmarov
6744ec95a9 DynamicTextureModule memory leaks 2016-08-24 01:05:01 +01:00
BlueWall
f6168ded47 Remove references to MAX_ASSET_DESC from the dynamic texture module, hardcode to 128 as in other inventory modules. 2015-03-06 21:10:45 -05:00
Oren Hurvitz
b01e73cf27 Dynamic textures shouldn't be saved in the assets service (only in the simulator cache) 2014-04-23 14:42:40 +01:00
Oren Hurvitz
93a9ed2a6d Changed the maximum asset name and description lengths to constants. Also, pre-truncate the description of dynamic textures. 2014-04-22 12:18:54 +03:00
Diva Canto
db418bff2b Fix issues with the DynamicTextureModule and corresponding unit tests. 2012-11-11 19:39:21 -08:00
Diva Canto
9f45198516 One more module: DynamicTextureModule. Removed it from the special load in the beginning. 2012-11-11 14:54:40 -08:00
Justin Clark-Casey (justincc)
0f70460a32 minor: comment out currently unused logger in DynamicTextureModule 2012-10-19 00:39:18 +01:00
Justin Clark-Casey (justincc)
8f02fd926e If reusing dynamic textures, do not reuse small data length textures that fall below current viewer discard level 2 thresholds.
Viewer LL 3.3.4 and before sometimes fail to properly redisplay dynamic textures that have a small data length compared to pixel size when pulled from cache.
This appears to happen when the data length is smaller than the estimate discard level 2 size the viewer uses when making this GetTexture request.
This commit works around this by always regenerating dynamic textures that fall below this threshold rather than reusing them if ReuseDynamicTextures = true
This can be controlled by the [Textures] ReuseDynamicLowDataTextures config setting which defaults to false.
2012-09-06 22:12:05 +01:00
Justin Clark-Casey (justincc)
a0d0c9f751 If the GetTexture capability receives a request for a range of data beyond that of an otherwise valid asset, return HTTP PartialContent rather than RequestedRangeNotSatisfiable.
This is because recent viewers (3.2.1, 3.3.4) and probably earlier ones using the http GetTexture capability will sometimes make such invalid range requests.
This appears to happen if the viewer's estimate of texture sizes at discard levels > 0 (chiefly 2) exceeds the total texture size.
I believe this does not normally happen but can occur for dynamic textures with are large but mainly blank.
If this happens, returning a RequestedRangeNotSatisfiable will cause the viewer to not render the texture at the final resolution.
However, returning a PartialContent (or OK) even with 0 data will allow the viewer to render the final texture.
2012-09-06 00:11:47 +01:00
Justin Clark-Casey (justincc)
3ed0d79b00 Make ReuseDynamicTextures an experimental config setting in [Textures]. Default is false, as before.
If true, this setting reuses dynamically generated textures (i.e. created through osSetDynamicTextureData() and similar OSSL functions) where possible rather than always regenerating them.
This results in much quicker updates viewer-side but may bloat the asset cache (though this is fixable).
Also, sometimes issue have been seen where dynamic textures do not transfer to the viewer properly (permanently blurry).
If this happens and that flag is set then they are not regenerated, the viewer has to clear cache or wait for 24 hours before all cached uuids are invalidated.
CUrrently experimental.  Default is false, as before.
2012-08-30 22:57:40 +01:00
Justin Clark-Casey (justincc)
d89b974680 If the compile-time DynamicTextureModule.ReuseTextures flag is set, check metadata still exists for any reused asset in case some other process has removed it from the cache. 2012-08-30 22:28:45 +01:00
Justin Clark-Casey (justincc)
c1cece4b82 Add experimental DynamicTextureModule.ReuseTextures flag, currently only configurable on compile.
Disabled (status quo) by default.
This flag makes the dynamic texture module reuse cache previously dynamically generated textures given the same input commands and extra params for 24 hours.
This occurs as long as those commands would always generate the same texture (e.g. they do not contain commands to fetch data from the web).
This makes texture changing faster as a viewer-cached texture uuid is sent and may reduce simulator load in regions with generation of lots of dynamic textures.
A downside is that this stops expiry of old temporary dynamic textures from the cache,
Another downside is that a jpeg2000 generation that partially failed is currently not regenerated until restart or after 24 hours.
2012-08-28 23:06:53 +01:00
Melanie
66f4ce354f Fix CHANGED_TEXTURE and CHANGED_COLOR. 2011-12-05 19:01:14 +00:00
Justin Clark-Casey (justincc)
72923134e9 Get some hopefully more useful exception information when OpenJPEG.EncodeFromImage() fails in VectorRender and DynamicTexture modules 2011-11-02 18:40:49 +00:00
Justin Clark-Casey (justincc)
f138a2056e meaningless change to goose panda 2011-10-11 00:29:41 +01:00
Justin Clark-Casey (justincc)
013bf2775f remove unused LastAssetID from DynamicTextureUpdaer 2011-10-10 15:19:23 +01:00
John Hurliman
b4dcdffb50 Fixed several unhandled exceptions and performance issues with PrimitiveBaseShape.Textures. This really should be moved from a property to a method if it is going to decode a byte[] into a TextureEntry each time 2010-03-16 11:50:22 -07:00
John Hurliman
df76e95aa2 Changed asset CreatorID to a string 2010-02-22 14:18:59 -08:00
John Hurliman
7665aad002 * Adds CreatorID to asset metadata. This is just the plumbing to support CreatorID, it doesn't modify database backends or OAR files to support storing/loading it 2010-02-22 13:27:17 -08:00
Teravus Ovares (Dan Olivares)
59f6606ecf Endline fix 2010-02-06 00:37:07 -05:00
Melanie
a87a247f05 Revert "Updates all IRegionModules to the new style region modules."
This reverts commit ec3c31e61e.
2010-01-29 07:21:06 +00:00
Revolution
ec3c31e61e Updates all IRegionModules to the new style region modules.
Signed-off-by: Melanie <melanie@t-data.com>
2010-01-23 15:18:52 +00:00
CasperW
3ff28e7a8f Fix a major security problem with osSetDynamicTexture which allowed the deletion of /any/ asset. 2010-01-18 16:52:06 +00:00
Justin Clark-Casey (justincc)
2606bf4a53 minor: very minor formatting change 2009-11-16 19:16:24 +00:00
John Hurliman
afef1ac191 Changing the AssetBase constructors to avoid initializing assets with an unknown asset type, and log an error if it ever does happen 2009-11-05 13:10:58 -08:00
John Hurliman
f56dc5fcda Attempting to improve the robustness of texture decoding by always ignoring LayerInfo.End values and creating guessed default layer boundaries on failed decodes Changed a noisy J2K decode log message from Info to Debug Replacing openjpeg-dotnet decoding with managed CSJ2K decoding. Should be much more reliable, faster, and use less memory
* Re-added openjpeg-dotnet files since they are used elsewhere in OpenSim * Updated prebuild.xml with a reference to CSJ2K

* Renamed IJ2KDecoder and J2KDecoder member names to follow standard naming conventions * Removed j2kDecodeCache cruft and replaced it with the OpenSim cache system * Rewrote the default layer boundary algorithm to use percentages instead of an exponent * Switched from an infinite in-memory cache to an expiring cache (10 minute timeout) * Slightly quieted logging errors for failed texture decodes
2009-09-30 19:26:53 +01:00
Justin Clarke Casey
cb6baacc31 * minor: remove one mono warning 2009-06-12 14:29:42 +00:00
Jeff Ames
a7fcacf8f3 Formatting cleanup. Ignore some generated files. 2009-06-09 18:07:35 +00:00
Dr Scofield
759636f37e From: Alan Webb <alan_webb@us.ibm.com>
This change addresses two issues:

  [1] It adds a flag field to the blendface call which allows the
      caller to indicate whether or not the generated asset is
      temporary, and whether or not the asset being replaced should
      be explicitly retired fromt the memory cache. The decimal
      values correspond to:
      0 - Permanent asset, do not expire old asset
      1 - Permanent asset, expire old asset
      2 - Temporary asset, do not expire old asset
      3 - Temporary asset, expire old asset
      '3' corresponds to the default behavior seen today, and is
          the continued behavior of the non-blendface calls.
  [2] The dynamic texture routines are highly-asynchronous and can
      be scheduled simultaneously on a multi-core machine. The nature
      of the texture management interfaece is such that updates may
      be lost, and the nature of asynchornous operation means that
      they may be processed out of order. A lock has been added to
      ensure that updates are at least atomic. No attempt has been
      made to enforce ordering. The lock applies to the SceneObjectPart
      being updated and is held for the lifetime of the TextureEntry
      used to carry texture updates (the one instance carries all
      faces supported by the prim).

   Users of these services should remember that the dynamic texture
   call is asynchronous and control will be returned *before* the
   texture update has actually occurred. As a result, a isubsequent
   GetTexture call may not return the expected asset id. A script
   must wait for the corresponding TEXTURE_CHANGED event before
   retrieving any texture information.
2009-06-09 06:39:27 +00:00
Jeff Ames
c6cef4bad5 Comment out unused variables / private fields to avoid compiler warnings. 2009-06-04 03:58:04 +00:00
Dr Scofield
25a0a56570 From: Alan Webb <alan_webb@us.ibm.com>
Modify dynamic texture handling so that an explicitly targetted
  face is not scheduled for immediate expiration. The requirement
  for precaching explicitly requires these assets to persist. They
  do however remain temporary.

  This approach leaves the legacy mode of operation (ALL_SIDES)
  unchanged in this respect.
2009-06-03 12:21:14 +00:00
Jeff Ames
840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Dr Scofield
3b689e506f From: Alan Webb <alan_webb@us.ibm.com>
Changes to support client-side image pre-caching in the region. This
  commit adds an additional calling sequence to the DynamicTexture data
  and URL calls. The new interface allows a dynamic image to be loaded
  into a specific object face (rather than the mandatory ALL_SIDES
  supported today.
  This is in part fulfilment of ticket #458.
2009-05-22 16:22:49 +00:00
Dr Scofield
1d02636c27 cleaning out warnings.
NOTE: we currently have a gazillion warnings caused stuff flagged as
"obsolete" (OGS1 stuff) --- what's up with that?
2009-05-22 14:57:00 +00:00
diva
5e4fc6e91e Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems: 
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
2009-05-15 05:00:25 +00:00
Dr Scofield
3312938f6b From: Alan Webb <alan_webb@us.ibm.com>
logs error message on empty data in DynamicTextureModule
2009-05-07 11:58:45 +00:00
Charles Krinke
e957a29ab0 Thank you kindly, Thomax, for a patch that:
Does not set prims to fullbright when an
ossl dynamic texture function is called.
2009-05-03 17:53:43 +00:00
Jeff Ames
54ccca1e2c Update svn properties, add copyright header, formatting cleanup. 2009-03-31 02:00:33 +00:00
Dr Scofield
b5f6aa6ff2 From: Alan Webb <alan_webb@us.ibm.com>
Changes to AssetCache and DynamicTextureModule to eliminate
  opportunities for lost texture updates.
2009-03-24 08:21:50 +00:00
Charles Krinke
8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00