Commit Graph

152 Commits

Author SHA1 Message Date
Kalle Bladin 5575f17b46 Feature/gdalcrashfix (#331)
Saving GDAL dataset values upon initialization of dataset to avoid calling GDAL functions afterwards since it can be done concurrently. Not done for the data reading since some (not all) GDAL dataset drivers support concurrent reading. The WMS driver does not support concurrent reading, which is why we only use one worker thread per AsyncTileDataReader. Perhaps something for the future if GDAL will ensure thread saefty.

Protecting GdalRawTileDataReader with mutex lock when initializing.

Make sure read only functions in RawTileDataReader are const.

Protecting ConcurrentJobManager with mutex lock when pushing and popping to finished jobs.
2017-06-07 16:30:41 +02:00
Kalle Bladin f51f293989 Feature/globebrowsing optimization (#310)
* Simplest possible PBO implementation.

* Add PBO class

* TileLoadJob owns raw tile data

* Working on a soluton to cache textures and reuse them

* PBO and cached textures working for one texture type. Color textures.

* Threadpool for tile requests uses LRU cache as queue

* Remove framesUntilRequestFlush

* Clean up

* Clean up

* Use prioritizing concurrent job manager

* Use TileTextureInitData to initialize RawTileDataReader.

* Class TextureContainer owns the textures to use for tiles.

* Using TileTextureInitData to determine if new caches need to be created.

* Remove WriteDataDescription

* Remove TileDataLayout

* Rendering many different layer types again

* TileProviderByLevel gives layergroup id to tile providers

* Comment away use of PBO

* Erase unfinished requests to make room for new ones

* Enable choice of PBO or not.

* Enable resetting of asynctiledataprovider

* Add the ability to use PBO and also load to CPU

* Update ghoul

* Solve culling issue.

* Texture pointer of Tile is now a raw pointer. Currently break single image tile provider and text tile provider.

* Add gpudata

* Move fetching of shader preprocessing data to LayerManager

* No comparisons to determine shader recompilation.

* Show the tile cache size in the GUI

* Clean up and comment.

* Solve bug where float is interpreted as NaN

* Enable ability to blend between layers again

* Fix single image provider

* Fix windows build error

* Fix OSX compile issue.

* Some clean up

* Showing correct texture data size

* Enable use of text tile providers again. No backgroupd image path however.

* Change cache size from GUI

* Clean up

* Solve osx compilation error.

* Update ghoul

* Make it possible to switch between PBO and not during runtime.

* Enable resetting of tile datasets

* change function module in moduleengine to identify module by name

* MemoryAwareTileCache is no longer a singleton

* Update ownership of properties for globe browsing

* Logging info about resetting tile reader.

* Logging info

* Fix requested changes

* Fix some compile warnings.

* Fix compilation warnings

* Add ability to blend values with blend parameter. Also define settings through lua dict.

* Fix some comments on pull request.

* Change formatting

* Change formatting

* Change formatting

* Fix pull request comments.

* Those are details

* Make Mercury great again.

* Make Earth great again.

* Solve conflict

* Test to sometimes use valueblending and sometimes not

* Not always use value blending

* Update ghoul

* Change from auto to explicit type.

* Update test for LRU Cache

* Include algorithm.
2017-05-30 15:37:05 +02:00
Alexander Bock 302fa06067 More code cleanup 2017-05-15 14:39:48 -04:00
Emil Axelsson 4b38b33e18 Clean up code for planet radius and bounding sphere calculation (#289)
- Remove some power scaled coordaintes.
- Remove spice dependency from sphere geometry.
- Remove dead code.
2017-04-18 09:58:27 +02:00
Kalle Bladin 8a617ee254 Feature/globebrowsing (#281)
* Solve bug related to corrupted texture tiles for certain sizes.

* Regard layer settings when sampling height map.

* Make Tile in to a class instead of a struct.

* Memory aware lru cache. Needs cleanup.

* Clean up and comment.

* Clean up and comment.

* Clean up

* Clean up and comment.

* Fix compilation error on Windows.

* Specify data type explicitly in GDAL xml config files for Utah height maps. Closes #242

* Update the key type for the memory aware lru cache and use a unordered map instead of a map.

* Solve pixel row size bug.

* Solve initialization bug.

* Add cache size as property of the globe browsing module.

* Use memory aware tile cache for text tile provider.

* Log GDAL errors as GHOUL messages

* Add the ability to toggle tile level limiting by available data

* Add ability to toggle GDAL logging

* Add lock guard to memory aware tile cache

* create base class rawtiledatareader that can be extended with different implementations than GDAL.

* Let GdalWrapper take care of global GDAL settings.

* Move iodescription to separate file

* Move some functionality from gdalrawtiledatareader to rawtiledatareader

* Move functionality from gdalrawtiledatareader to rawtiledatareader.

* GDAL is no longer a necessary dependency for the globebrowsing module. However to read tiles, the SimpleRawTileDataReader needs to be implemented. Otherwise GDAL is needed.

* Add ifdef check for GLOBEBROWSING_USE_GDAL

* Implement SimpleRawTileDataReader. Currently can only read pow 2 textures.

* Change ints to unsigned long longs

* Limit number of texture creations per tile provider per frame

* Solve linker error on windows

* Fix Windows build errors

* Fix crash in reading local patches

* Update lodglobe descriptions

* Abstract away overviews in gdal raw tile data reader

* Update Mars and Moon configs.

* Update screenshot script

* Update ghoul version

* Remove use of interaction depth below ellipsoid

* Normalize direction vector

* Use scale for distance swotch

* Go back to use of interaction depth below ellipsoid

* Fix comments on pull request.

* TileProviderByLevel error does not propagate up.

* Comment on mars and moon mod file

* Add model space cut off level as a property

* Update ChunkTile struct

* Minor clean up

* Go back tu constructor for ChunkTile
2017-04-13 10:14:47 +02:00
Alexander Bock 6199289e91 Code cleanup 2017-02-27 23:03:07 -05:00
Alexander Bock 0d03177d43 Feature/globebrowsingcleanup (#230)
* Initial restructuring of the Globebrowsing branch

* Update Ghoul repository
Fix include guards

* More cleanup

* Split texttileprovider subclasses into separate files

* Move TileProviders into namespace

* Convert static class methods into free functions

* Splitting tile subclasses into their own files
Remove `using namespace` from header file

* Split TileDataSet subclass into separate file
Update SGCT reference

* Move shader preprocessing data into internal class

* More Globebrowsing cleanup

* More cleanup
Remove unused Convexhull class
2017-02-15 21:20:05 +01:00
Alexander Bock 70020e3de7 - Add style check for correct use of components and subcomponents in
include guards
- Disallow use of lower case characters in include guards
- Fix wrong components and subcomponents
2017-02-10 14:46:51 -05:00
Alexander Bock 6d9dc2bfeb Fixed include guards
Removed unused writeToTexture file
2017-02-09 19:12:21 -05:00
Alexander Bock 94e3e11188 Update copyright header to 2017
Update Ghoul repository
Remove libgdal link
2017-02-06 18:02:01 -05:00
Alexander Bock 3318022a40 Jenkins compile fix 2016-12-04 14:55:21 +01:00
Alexander Bock 6c1bd2c91b Jenkins compile fix 2016-12-04 14:42:23 +01:00
Alexander Bock ab6a952193 Some more code cleanup 2016-12-04 11:23:41 +01:00
Alexander Bock dc3ded891b Started with code cleanup of Globebrowsing 2016-12-04 10:34:25 +01:00
Erik Broberg 36e3f62508 Add enabling of stats collection for ChunkedLODGlobe in GUI 2016-11-23 12:23:38 +01:00
Erik Broberg ae6d27e474 TileIOResult -> RawTile, PreprocessData -> TileMetaData 2016-11-07 17:03:06 +01:00
kalbl 7f62bd7206 Create namespace globebrowsing. 2016-10-18 15:40:27 +02:00
Alexander Bock 0376300732 Update Ghoul
Change TriangleSoup and StatsCollector to use new Boolean class
2016-09-11 19:37:15 +02:00
Erik Broberg 23c4a05a96 Merge from globebrowsing 2016-08-17 20:25:58 -04:00
Erik Broberg 1199acc7b9 Re-add and revert back to old ThreadPool. See ticket #128 2016-08-17 18:22:27 -04:00
Kalle Bladin c01808ce10 Convert tabs to spaces. 2016-08-17 00:30:53 -04:00
Erik Broberg 1dd569a3e1 Solve merge conflicts and fix bug in LayeredTextureUniformProvider 2016-08-11 17:05:14 -04:00
Alexander Bock af672b6a4e - Update Ghoul reference
- Remove not needed cmake files
- Make ConcurrentJobManager compile again
2016-08-11 11:12:15 +02:00
Alexander Bock 662e25963b Move ThreadPool class from OpenSpace into Ghoul 2016-08-03 10:58:53 +02:00
Erik Broberg 73e3c71b9a Init StatsCollector to disabled and delete committed stats data 2016-07-21 17:42:35 -04:00
Erik Broberg 61928e83cd Make ChunkedLodGlobes able to fully reset their data sets 2016-07-14 01:13:26 -04:00
Erik Broberg edf114cda2 Enable resetting tile providers from GUI, i.e. reloading tiles 2016-07-12 11:20:57 -04:00
Erik Broberg a9f7cf5444 DataCollector: Collect current time in millis and use long longs for integers 2016-06-27 19:18:54 -04:00
Erik Broberg 21c67e3199 Enable real time monitoring of StatsCollector data 2016-06-27 18:08:26 -04:00
Erik Broberg b9f3b03af3 Fix bug causing StatsCollector to crash during dump to file if a StatsCollection is empty 2016-06-24 14:51:25 -04:00
Erik Broberg b5c85184da Restructure StatsCollectors to keep track of both integers and doubles 2016-06-24 13:52:30 -04:00
Erik Broberg 064c9a5722 Add templated stats collector to store structured data in tables 2016-06-24 11:45:36 -04:00
Erik Broberg d635b852a7 Remove old debugrenderer 2016-06-14 23:12:29 -04:00
Erik Broberg 3d7722f4b1 Move ChunkLevelEvaluators classes to separate file 2016-06-14 11:19:22 -04:00
Erik Broberg d3f3c9768c Remove redundant safety check in LRU cache hashmap 2016-06-13 19:10:50 -04:00
Erik Broberg 795846f6ee Updated file structure and removed unused class GlobeMesh 2016-06-10 11:53:26 -04:00
Kalle Bladin 2951df9653 Simplify interface for TileProviderManager. 2016-06-09 16:09:43 -04:00
Kalle Bladin 3980aeff57 Add the layer types water mask, nighttexture, and overlay as well as the option to toggle atmosphere. 2016-06-08 21:30:19 -04:00
Kalle Bladin f5ecb76358 Fox compilation error for OSX 2016-06-08 11:02:09 -04:00
Erik Broberg 7377d098cc Solve merge conflict 2016-06-08 00:36:35 -04:00
Erik Broberg 7d1f1bd3ce Redefining Tile data structures. Tiles now have a TilePreprocessData pointer and a Status 2016-06-07 23:13:54 -04:00
Erik Broberg d0c7fe180f Merge similar structs RawTileData and TileIOResult 2016-06-07 21:16:43 -04:00
Erik Broberg 607356f10b Remove redundant information from RawTileData 2016-06-07 20:48:48 -04:00
Erik Broberg 887b26e441 Move numRasters to be part of DataLayout instead of DataRegion 2016-06-07 19:42:29 -04:00
Erik Broberg 28b3afc604 Add ability to do per tile preprocessing, such as calculate min max values 2016-06-07 18:54:51 -04:00
Kalle Bladin dce89545d3 Remove option to toggle use of height map and color texture and fix related crash bug. 2016-06-07 18:36:01 -04:00
Erik Broberg db9923dc05 Do Time -> TileProvider mapping only once per frame 2016-06-06 14:25:37 -04:00
Erik Broberg 08af82a82a Inject TileCache into TileProvider 2016-06-06 13:04:21 -04:00
Erik Broberg 2c37ac07a0 Select CachingTileProvider or TemporalTileProvider based on input XML 2016-06-06 12:26:23 -04:00
Erik Broberg 097c9cf1db Move TileProvider initialization to TileProviderManager 2016-06-05 22:13:50 -04:00