Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | mesa: Convert the hash table for GL object ids to the open-addressing hash. | Eric Anholt | 2012-11-12 | 1 | -258/+113 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous 1023-entry chaining hash table never resized, so it was very inefficient when there were many objects live. While one could have an even more efficient implementation than this (keep an array for genned names with packed IDs, or take advantage of the fact that key == hash or key == *(uint32_t *)data to store less data), this is fairly fast, and I want a nice replacement hash table for other parts of Mesa, too. It improves Minecraft performance 12.3% +/- 1.4% (n=9), dropping hash lookups from 8% of the profile to 0.5%. I also tested cairo-gl, which should be a pessimal workload for this hash table: around 247000 FBOs created and destroyed, only around 65 live at any time, and few lookups of them between creation and destruction. No statistically significant performance difference at n=76 (mean 20.3/20.4 seconds, sd 2.8/3.2 seconds). If I remove the >20 seconds outliers that appear to be due to thermal throttling, there's possibly a .97% +/- 0.31% performance win (n=61/59). The choice of cutoff for outliers feels a lot like cooking the data, but I've gone through this process 3 times for minor iterations of the code with the same conclusion each time. Reviewed-by: Brian Paul <[email protected]> Acked-by: Chad Versace <[email protected]> Acked-by: Kenneth Graunke <[email protected]> (v1) | ||||
* | mesa: add _mesa_HashNumEntries() function | Brian Paul | 2012-01-11 | 1 | -0/+20 |
| | | | | | Useful when debugging to find the number of texture objects, shader programs, etc. | ||||
* | mesa: s/INLINE/inline/ | Brian Paul | 2011-10-01 | 1 | -1/+1 |
| | | | | | | | INLINE is still seen in some files (some generated files, etc) but this is a good start. Acked-by: Kenneth Graunke <[email protected]> | ||||
* | Drop GLcontext typedef and use struct gl_context instead | Kristian Høgsberg | 2010-10-13 | 1 | -2/+2 |
| | |||||
* | mesa: move/update hash function comments | Brian Paul | 2010-03-27 | 1 | -6/+11 |
| | | | | (cherry picked from commit 535742d75f0096b22d1b8ff203ae561167af18f7) | ||||
* | mesa: fix deadlock in _mesa_HashFindFreeKeyBlock() | Brian Paul | 2010-03-27 | 1 | -6/+13 |
| | | | | | Fixes fd.o bug 27340. (cherry picked from commit 8fe3b3f66ae57a1a6eca7f6dcb0455e14ad92075) | ||||
* | Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versions | Kristian Høgsberg | 2010-02-19 | 1 | -4/+4 |
| | |||||
* | mesa: Lock mutex around _mesa_HashLookup linked list chase. | Brian Paul | 2010-02-16 | 1 | -2/+5 |
| | | | | | | | | | Remove const qualifier from _mesa_HashLookup() table parameter to avoid LOCK/UNLOCK warnings in the function body. Signed-off-by: Brian Paul <[email protected]> (cherry picked from commit 3094adb3caeb90124359db2356df3bf8ee94800a) | ||||
* | mesa: Test for failed malloc in _mesa_HashInsert. | Brian Paul | 2010-02-16 | 1 | -4/+6 |
| | | | | | | Signed-off-by: Brian Paul <[email protected]> (cherry picked from commit 7c7247ddbf6e3f7f93e44c1cb52490044f1a2215) | ||||
* | mesa: fix potential recursive locking deadlock in _mesa_HashWalk() | Brian Paul | 2009-04-09 | 1 | -4/+14 |
| | | | | If the walk callback called _mesa_HashRemove() we'd deadlock. | ||||
* | mesa: Fix typo. | José Fonseca | 2009-03-06 | 1 | -1/+1 |
| | | | | Windows threads block if one over-unlocks them. | ||||
* | Be more consistant with paths in #includes. Eventually, eliminate a bunch ↵ | Brian | 2007-07-04 | 1 | -1/+1 |
| | | | | of -I flags. | ||||
* | disable a new mem leak check until we're sure it's valid | Brian Paul | 2006-07-03 | 1 | -0/+2 |
| | |||||
* | clean-ups | Brian Paul | 2006-06-30 | 1 | -23/+26 |
| | |||||
* | Added _mesa_HashDeleteAll() to delete all entries in a hash table with a | Brian Paul | 2006-06-30 | 1 | -10/+74 |
| | | | | | callback function. Added _mesa_HashWalk() to walk over all entries in a hash table with callback. | ||||
* | don't compile debug code (bug 4242: rand undefined) | Brian Paul | 2005-08-25 | 1 | -1/+5 |
| | |||||
* | set table size to 1023 and use new HASH_FUNC() macro | Brian Paul | 2005-04-10 | 1 | -5/+8 |
| | |||||
* | Bug #2945: Fix math error that left half the hash buckets empty. | Adam Jackson | 2005-04-09 | 1 | -1/+1 |
| | |||||
* | Added _mesa_HashNextEntry() function to allow walking over all entries | Brian Paul | 2005-01-24 | 1 | -37/+121 |
| | | | | | | in a hash table. Added _mesa_test_hash_functions() for unit testing. Updated comments, etc. | ||||
* | Merge Jose's documentation and core Mesa changes from embedded branch | Keith Whitwell | 2003-07-17 | 1 | -28/+65 |
| | |||||
* | Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. | Ian Romanick | 2003-06-05 | 1 | -1/+0 |
| | |||||
* | Add mechanism to destroy mutexes. Important on OS's where mutex initialization | Keith Whitwell | 2002-12-12 | 1 | -1/+2 |
| | | | | allocates memory (like FreeBSD). | ||||
* | Header file clean-up: | Brian Paul | 2002-10-24 | 1 | -7/+2 |
| | | | | | | | | 1. Remove all.h and PC_HEADER junk. 2. Rolled mem.c and mem.h into imports.c and imports.h 3. Include imports.h instead of mem.h Restore _mesa_create/initialize_context() to be like they were in 4.0.4 New wrappers for a few std C functions: _mesa_atoi(), _mesa_strstr(), etc. | ||||
* | doxygen comments | Brian Paul | 2002-09-16 | 1 | -36/+49 |
| | |||||
* | Applied Matt Sealey's patch to remove/isolate all stdio.h function calls. | Brian Paul | 2002-06-29 | 1 | -7/+10 |
| | | | | Instead of mstdio.[ch], use imports.[ch] to isolate these functions. | ||||
* | init the hash table mutex in _mesa_NewHashTable (Won-Suk Chun) | Brian Paul | 2001-11-02 | 1 | -2/+6 |
| | |||||
* | Consistent copyright info (version number, date) across all files. | Gareth Hughes | 2001-03-12 | 1 | -7/+7 |
| | |||||
* | removed a few const keywords because of mutex calls | Brian Paul | 2000-03-21 | 1 | -3/+3 |
| | |||||
* | added more locking | Brian Paul | 2000-03-21 | 1 | -4/+12 |
| | |||||
* | added mutexes for thread safety | Brian Paul | 2000-01-31 | 1 | -1/+13 |
| | |||||
* | prefixed hash functions with _mesa_ | Brian Paul | 2000-01-24 | 1 | -22/+22 |
| | |||||
* | start search at 1 in HashFindFreeKeyBlock() | Brian Paul | 2000-01-04 | 1 | -4/+4 |
| | |||||
* | first big check-in of new Mesa 3.3 code | Brian Paul | 1999-11-11 | 1 | -12/+5 |
| | |||||
* | removed GL_ prefix from memory macros | Brian Paul | 1999-10-13 | 1 | -8/+7 |
| | |||||
* | Fixed includes & added a few hooks for the DRI.kw-mesa-1 | Keith Whitwell | 1999-10-08 | 1 | -3/+4 |
| | |||||
* | Initial revision | jtg | 1999-08-19 | 1 | -0/+295 |