summaryrefslogtreecommitdiffstats
path: root/src/util
Commit message (Collapse)AuthorAgeFilesLines
* util/gen_xmlpool: Don't write via shell redirectionDylan Baker2018-10-315-65/+58
| | | | | | | | | | | | | Using shell redirection to write to a file is more complicated than necessary, and has the potential to run into unicode encoding problems. It's also less code. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108530 v2: - update commit message to say less about LANG=C - use flags instead of positional arguments for the script (Emil) Reviewed-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: use with statement to open fileDylan Baker2018-10-311-34/+32
| | | | | | Which ensures it is closed at the end of the scope. Reviewed-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: use a main functionDylan Baker2018-10-311-61/+66
| | | | | | Again, just good style Reviewed-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: Use print function instad of sys.stderr.writeDylan Baker2018-10-311-5/+4
| | | | | | This ensures that stderr is flushed, unlike writing Reviewed-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: Use more standard styleDylan Baker2018-10-311-29/+29
| | | | | | | | | gen_xmlpool uses a style unlike the rest of mesa, spaces between function/method calls and the parens, strange whitespace to force lining up method calls, and some other whitespace stuff. Since I'm going to be doing some work in the file, I'm going to start cleaning those up. Acked-by: Emil Velikov <[email protected]>
* util/xmlpool: Update for meson generationDylan Baker2018-10-314-12/+16
| | | | | | | | | | | Meson won't put the .gmo files in the layout that python's gettext.translation() expects, it puts them in the build directory in a flat layout. This modifies android and autotools to do the same (scons doesn't work with translations at all) v3: - Squash 4 patches into this patch Reviewed-by: Emil Velikov <[email protected]>
* meson: add support for generating translation mo filesDylan Baker2018-10-314-1/+8
| | | | | | | | | | | | | | | Meson has handy a handy built-in module for handling gettext called i18n, this module works a bit differently than our autotools build does, namely it doesn't automatically generate translations instead it creates 3 new top level targets to run. These are: xmlpool-pot xmlpool-update-po xmlpool-gmo v2: - Add new files to autotools dist tarball Reviewed-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: use argparse for argument handlingDylan Baker2018-10-311-11/+9
| | | | | | | | This is a little cleaner than just looking at sys.argv, but it's also going to allow us to handle the differences in the way meson and autotools handle translations more cleanly. Reviewed-by: Eric Engestrom <[email protected]>
* configure: allow building with python3Emil Velikov2018-10-312-2/+2
| | | | | | | | | | | | | | | Pretty much all of the scripts are python2+3 compatible. Check and allow using python3, while adjusting the PYTHON2 refs. Note: - python3.4 is used as it's the earliest supported version - python2 chosen prior to python3 v2: use python2 by default Cc: Ilia Mirkin <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* util: move u_cpu_detect to utilDylan Baker2018-10-304-0/+698
| | | | | | | | | CC: [email protected] Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107870 Fixes: 80825abb5d1a7491035880253ffd531c55acae6b ("move u_math to src/util") Tested-by: Brian Paul <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* util: Move u_debug to utilsDylan Baker2018-10-304-0/+905
| | | | | Tested-by: Brian Paul <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* util: Move os_misc to utilDylan Baker2018-10-304-0/+282
| | | | | | | this is needed by u_debug Tested-by: Brian Paul <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* util: s/0/NULL/ for pointerEric Engestrom2018-10-301-1/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* util: Change remaining uint32 cache ids to sha1David McFarland2018-10-261-6/+10
| | | | | | | | | | | | After discussion with Timothy Arceri. disk_cache_get_function_identifier was using only the first byte of the sha1 build-id. Replace disk_cache_get_function_identifier with implementation from radv_get_build_id. Instead of writing a uint32_t it now writes to a mesa_sha1. All drivers using disk_cache_get_function_identifier are updated accordingly. Reviewed-by: Timothy Arceri <[email protected]> Fixes: 83ea8dd99bb1 ("util: add disk_cache_get_function_identifier()")
* util: use C99 declaration in the for-loop set_foreach() macroEric Engestrom2018-10-252-8/+4
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* util: use C99 declaration in the for-loop hash_table_foreach() macroEric Engestrom2018-10-254-10/+5
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* util: use *unsigned* ints for bit operationsEric Engestrom2018-10-231-1/+1
| | | | | | | | Fixes errors thrown by GCC's Undefined Behaviour sanitizer (ubsan) every time this macro is used. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* util: document a limitation of util_fast_udiv32Marek Olšák2018-10-171-1/+7
| | | | trivial
* util: Add foreach_reverse for dynarrayCaio Marcelo de Oliveira Filho2018-10-151-0/+6
| | | | | | | | | Useful to walk the array removing elements by swapping them with the last element. v2: Change iteration to make sure we never underflow. (Jason) Reviewed-by: Jason Ekstrand <[email protected]>
* util: Add tests for fast integer division by constantsJason Ekstrand2018-10-104-0/+546
| | | | | | | | | While I generally trust rediculousfish to have done his homework, we've made some adjustments to suit the needs of mesa and it'd be good to test those. Also, there's no better place than unit tests to clearly document the different edge cases of the different methods. Reviewed-by: Marek Olšák <[email protected]>
* util: Add power-of-two divisor support to compute_fast_udiv_infoMarek Olšák2018-10-102-2/+23
| | | | | Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* util: Generalize fast integer division to be variable bit-widthJason Ekstrand2018-10-102-45/+39
| | | | | | | | | | | | | | | There's nothing inherently fixed-width in the code. All that's required to generalize it is to make everything internally 64-bit and pass UINT_BITS in as a parameter to util_compute_fast_[us]div_info. With that, it can now handle 8, 16, 32, and 64-bit integer division by a constant. We also add support for division by 1 and by other powers of 2. This is useful if you want to divide by a uniform value in a shader where you have the opportunity to adjust the uniform on the CPU before passing it in. Reviewed-by: Marek Olšák <[email protected]>
* util: Add fast division helpersMarek Olšák2018-10-101-0/+44
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* util: import public domain code for integer division by a constantMarek Olšák2018-10-104-0/+365
| | | | | | | | | | | | | Compilers can use this to generate optimal code for integer division by a constant. Additionally, an unsigned division by a uniform that is constant but not known at compile time can still be optimized by passing 2-4 division factors to the shader as uniforms and executing one of the fast_udiv* variants. The signed division algorithm doesn't have this capability. Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* util: Add a simple big math libraryJason Ekstrand2018-10-104-0/+115
| | | | Reviewed-by: Ian Romanick <[email protected]>
* util/u_queue: add UTIL_QUEUE_INIT_SET_FULL_THREAD_AFFINITYMarek Olšák2018-10-063-1/+17
| | | | | Initial version discussed with Rob Clark under a different patch name. This approach leaves his driver unaffected.
* util: Make xmlconfig.c build on Solaris without d_type in dirent (v2)Alan Coopersmith2018-10-051-0/+8
| | | | | | | | | v2: check for lstat() failing Fixes: 04bdbbcab3c "xmlconfig: read more config files from drirc.d/" Signed-off-by: Alan Coopersmith <[email protected]> Reviewed-by: Roland Mainz <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* drirc: add a workaround for ARMA 3Marek Olšák2018-10-041-0/+4
| | | | Cc: 18.2 <[email protected]>
* util: add disk_cache_get_function_identifier()Timothy Arceri2018-10-031-0/+16
| | | | | | | | | | | | This can be used as a drop in replacement for disk_cache_get_function_timestamp(). Here we use build-id to generate a driver-id rather than build timestamp if available. This should resolve issues such as distros using reproducable builds and flatpak not having real build timestamps. Reviewed-by: Marek Olšák <[email protected]>
* util: rename timestamp param in disk_cache_create()Timothy Arceri2018-10-031-4/+4
| | | | | | | | Only some drivers use a timestamp here. Others use things such as build-id, or even a combination of build-ids from Mesa and LLVM. Reviewed-by: Marek Olšák <[email protected]>
* util: disable cache if we have no build-id and timestamp is zeroTimothy Arceri2018-10-021-0/+9
| | | | | | | | | | Timestamp can be zero for example when Flatpak is used. In this case just disable the cache rather then segfaulting when incompatible cache items are loaded. V2: actually return false when mtime is 0. Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* util: Add macro to get number of elements in dynarrayCaio Marcelo de Oliveira Filho2018-09-211-0/+1
| | | | Reviewed-by: Christian Gmeiner <[email protected]>
* Revert "utils/u_math: break dependency on gallium/utils"Dylan Baker2018-09-201-38/+5
| | | | | | This reverts commit 0abce6d7700ee42eb00c787732ec1fdefe250d03. Which broke the windows build.
* utils/u_math: break dependency on gallium/utilsDylan Baker2018-09-201-5/+38
| | | | | | | | | | | | | | Currently u_math needs gallium utils for cpu detection. Most of what u_math uses out of u_cpu_detection is duplicated in src/mesa/x86 (surprise!), so I've just reworked it as much as possible to use the x86/common_x86_features.h macros instead of the gallium ones. The mesa implementation is a header only approach, with no external dependencies. There is one small function that was copied over, as promoting u_cpu_detection is itself a fairly hefty undertaking, as it depends on u_debug, and this fixes the bug for now. bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107870 Tested-by: Vinson Lee <[email protected]>
* mesa: move legacy dri config option texture_depthTimothy Arceri2018-09-187-134/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option fthrottle_modeTimothy Arceri2018-09-187-114/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option def_max_anisotropyTimothy Arceri2018-09-187-29/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option no_neg_lod_biasTimothy Arceri2018-09-187-31/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option round_modeTimothy Arceri2018-09-186-70/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: remove unused dri option float_depthTimothy Arceri2018-09-187-29/+0
| | | | | | | This seems to have only been used by DRI1 drivers which were removed with e4344161bde2. Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option dither_modeTimothy Arceri2018-09-186-92/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy dri config option color_reductionTimothy Arceri2018-09-187-82/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* mesa: move legacy TCL dri config optionsTimothy Arceri2018-09-187-151/+0
| | | | Reviewed-by: Marek Olšák <[email protected]>
* util: use force_compat_profile for Wolfenstein The Old BloodTimothy Arceri2018-09-181-0/+4
| | | | | | | | | | | This game is looking for some odd extension after creating a core context such as ARB_vertex_program and EXT_framebuffer_object. Rather then enabling these in core this forces the game to use compat. This allows the game to run and seems to work without issues. All other id tech games/engines use a compat profile. Reviewed-by: Marek Olšák <[email protected]>
* mesa/st: add force_compat_profile option to driconfigTimothy Arceri2018-09-181-0/+5
| | | | Reviewed-by: Marek Olšák <[email protected]>
* move pthread_setaffinity_np check to the build systemDylan Baker2018-09-171-4/+0
| | | | | | | | | | | | | | | | | Rather than trying to encode all of the rules in a header, lets just put them in the build system where they belong. This fixes the build on FreeBSD, which does have pthraed_setaffinity_np, but it's in a pthread_np.h, not behind _GNU_SOURCE. FreeBSD also implements cpu_set slightly differently, so additional changes would be required to get it working right there anyway. v2: - fix #define in autotools Fixes: 9f1bbbdbbd77d346c74c7abbb31f399151a85713 ("util: try to fix the Android and MacOS build") Cc: Emil Velikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* util: try to fix the Android and MacOS buildMarek Olšák2018-09-101-2/+5
| | | | | | | | Bionic does not have pthread_setaffinity_np. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107869 Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* mesa/meson: 32bit xmlconfig linkageSergii Romantsov2018-09-101-0/+1
| | | | | | | | | | | | | | | | | | Building of 32bit mesa with meson causes linkage issue: "undefined reference to `util_get_process_name'" Fixed by adding link-with mesa_util for xmlconfig primary. v2: Removed '[]', commit message corrected. v3: Reverted changes in gbm and glx libraries. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107843 Fixes: 2e1e6511f76370870b5cd "util: extract get_process_name from xmlconfig.c" Cc: Marek Olšák <[email protected]> Cc: Dylan Baker <[email protected]> Signed-off-by: Sergii Romantsov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* Require Visual Studio 2015.Jose Fonseca2018-09-101-3/+1
| | | | | | | | We no longer need or use Visual Studio 2013. https://ci.appveyor.com/project/jrfonseca/mesa/build/52 Reviewed-by: Roland Scheidegger <[email protected]>
* st/mesa: pin driver threads to a specific L3 cache on AMD Zen (v2)Marek Olšák2018-09-071-0/+57
| | | | | | v2: use set_context_param Reviewed-by: Brian Paul <[email protected]>