summaryrefslogtreecommitdiffstats
path: root/src/util
Commit message (Collapse)AuthorAgeFilesLines
* u_dynarray: add util_dynarray_grow_capQiang Yu2019-04-111-6/+17
| | | | | | | | | | | | | This is for the case that user only know a max size it wants to append to the array and enlarge the array capacity before writing into it. v2: - rename newsize to newcap - rename util_dynarray_enlarge to util_dynarray_grow_cap Signed-off-by: Qiang Yu <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
* u_math: add ushort_to_float/float_to_ushortQiang Yu2019-04-111-0/+31
| | | | | | | | v2: - return 0 for NaN too Signed-off-by: Qiang Yu <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* util/process: document memory leakEric Engestrom2019-04-041-0/+4
| | | | | | | | We consider it acceptable, but let's still document it in case people notice it and are not sure why it's there. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* util/queue: add util_queue_adjust_num_threadsMarek Olšák2019-04-012-6/+52
| | | | | | for ARB_parallel_shader_compile Reviewed-by: Ian Romanick <[email protected]>
* util/queue: hold a lock when reading num_threads in util_queue_finishMarek Olšák2019-04-011-3/+3
| | | | Reviewed-by: Ian Romanick <[email protected]>
* util/queue: add ability to kill a subset of threadsMarek Olšák2019-04-012-21/+36
| | | | for ARB_parallel_shader_compile
* util/queue: move thread creation into a separate functionMarek Olšák2019-04-011-24/+32
| | | | Reviewed-by: Ian Romanick <[email protected]>
* util: no-op __builtin_types_compatible_p() for non-GCC compilersBrian Paul2019-03-291-0/+4
| | | | | | | | | | | | | | __builtin_types_compatible_p() is GCC-specific and breaks the MSVC build. This intrinsic has been in u_vector_foreach() for a long time, but that macro has only recently been used in code (nir/nir_opt_comparison_pre.c) that's built with MSVC. Fixes: 2cf59861a ("nir: Add partial redundancy elimination for compares") Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* util/disk_cache: close fd in the fallback pathEric Engestrom2019-03-281-4/+3
| | | | | | | | | There are multiple `goto path_fail` with an open fd, but none that go to `fail:` without going through `path_fail:` first, so let's just move the `close(fd)` there. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* android: static link with libexpat with Android O+Kishore Kadiyala2019-03-251-0/+6
| | | | | | | | | | | | | In Android O, MESA needs to statically link libexpat so that it's in same VNDK namespace. v2: apply change also to anv driver (Tapani) v3: use += in anv change (Eric Engestrom) Change-Id: I82b0be5c817c21e734dfdf5bfb6a9aa1d414ab33 Signed-off-by: Kishore Kadiyala <[email protected]> Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* util: Add a drm_find_modifier helperAlyssa Rosenzweig2019-03-141-0/+55
| | | | | | | | | | | | | | This function is replicated across vc4/v3d/freedreno and is needed in Panfrost; let's make this shared code. v2: Supply generic util_array_contains_u64 version (Eric Engestrom). Add missing stdbool.h include (Eric Anholt). Mark inline (Christian Gmeiner). Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Rob Clark <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* util: Add a DAG datastructure.Eric Anholt2019-03-114-0/+222
| | | | | | I keep writing this for various schedulers. Acked-by: Timothy Arceri <[email protected]>
* util: #define PATH_MAX when undefined (eg. Hurd)Eric Engestrom2019-03-051-0/+4
| | | | | | | Cc: Timo Aaltonen <[email protected]> Cc: James Clarke <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* util: emulate futex on FreeBSD using umtxGreg V2019-03-031-0/+34
| | | | | | Obtained from: FreeBSD ports Acked-by: Emil Velikov <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* driconf: add DTD to allow the drirc xml (00-mesa-defaults.conf) to be validatedEric Engestrom2019-02-282-1/+28
| | | | | | | | This DTD can be used to validate the drirc xml: $ xmllint --noout --valid 00-mesa-defaults.conf Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* util/os_misc: Add check for PIPE_OS_HURDTimo Aaltonen2019-02-271-2/+2
| | | | | | | | Fix build on Hurd. Signed-off-by: Timo Aaltonen <[email protected]> Acked-by: Eric Engestrom <[email protected]> Acked-by: Emil Velikov <[email protected]>
* util: fix a warning when building against clang7 headersTapani Pälli2019-02-271-0/+2
| | | | | | | | Header xmmintrin.h conditionally includes emmintrin.h that defines _MM_DENORMALS_ZERO_MASK, add ifndef to fix this warning. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
* util: Don't block SIGSYS for new threadsDrew Davenport2019-02-261-1/+2
| | | | | | SIGSYS is needed for programs using seccomp for sandboxing. Reviewed-by: Marek Olšák <[email protected]>
* driinfo: add DTD to allow the xml to be validatedEric Engestrom2019-02-261-0/+16
| | | | | | | | | This DTD can be used to validate the output and make sure any parsers out there can handle it: $ xmllint --noout --valid driinfo.xml Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* drirc: Add sddm-greeter to adaptive_sync blacklist.Mario Kleiner2019-02-191-0/+3
| | | | | | | | | This is the sddm login screen. Fixes: a9c36dbf9c56 ("drirc: Initial blacklist for adaptive sync") Signed-off-by: Mario Kleiner <[email protected]> Cc: 19.0 <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
* driconf: add Civ6Sub executable for Civilization 6Marek Olšák2019-02-191-0/+6
| | | | | | | I'm getting Civ6Sub instead of Civ6. Cc: 18.3 19.0 <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* radeonsi: always enable NIR for Civilization 6 to fix corruptionMarek Olšák2019-02-191-0/+3
| | | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104602 Cc: 18.3 19.0 <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* radeonsi: add driconf option radeonsi_enable_nirMarek Olšák2019-02-191-0/+5
| | | | | Cc: 18.3 19.0 <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
* drirc/i965: add option to disable 565 configs and visualsTapani Pälli2019-02-151-0/+5
| | | | | | | | | | | We have cases where we would not like to expose these. v2: call the option allow_rgb565_configs for consistency with existing allow_rgb10_configs (Eric, Jason) Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* util/tests: compile to something sensible in release buildsEric Engestrom2019-02-1412-0/+24
| | | | | | | | assert()-based tests make no sense without asserts, so make sure asserts are compiled in, even if the rest of the code has asserts turned off. Signed-off-by: Eric Engestrom <[email protected]> Acked-by: Lionel Landwerlin <[email protected]>
* util: move BITFIELD macros to util/macros.hTimothy Arceri2019-02-081-0/+18
| | | | Reviewed-by: Jason Ekstrand <[email protected]>
* driconf: drop unused macroEric Engestrom2019-02-071-4/+0
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* gallium: Enable ASIMD/NEON on aarch64.Matt Turner2019-01-241-2/+9
| | | | | | | | NEON (now called ASIMD) is available on all aarch64 CPUs. Our code was missing an aarch64 path, leading to util_cpu_caps.has_neon always being false on aarch64. Reviewed-by: Eric Anholt <[email protected]>
* nir: check NIR_SKIP to skip passes by nameCaio Marcelo de Oliveira Filho2019-01-182-0/+16
| | | | | | | | | | | | | | Passes' function names, separated by comma, listed in NIR_SKIP environment variable will be skipped in debug mode. The mechanism is hooked into the _PASS macro, like NIR_PRINT. The extra macro NIR_SKIP is available as a developer convenience, to skip at pointer other than the passes entry points. v2: Fix typo in NIR_SKIP macro. (Bas) Reviewed-by: Alejandro Piñeiro <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* util: Helper to create sets and hashes with pointer keysCaio Marcelo de Oliveira Filho2019-01-144-0/+27
| | | | | | | These combinations are common enough and deserve a shortcut. Reviewed-by: Jason Ekstrand <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* drirc: Initial blacklist for adaptive syncNicholas Kazlauskas2018-12-281-0/+85
| | | | | | | | | | | Applications that don't present at a predictable rate (ie. not games) shouldn't have adapative sync enabled. This list covers some of the common desktop compositors, web browsers and video players. [ Michel Dänzer: Added entry for firefox-esr ] Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Nicholas Kazlauskas <[email protected]>
* util: Add adaptive_sync driconf optionNicholas Kazlauskas2018-12-281-0/+5
| | | | | | | | | | | This option lets the user decide whether mesa should notify the window manager / DDX driver that the current application is adaptive sync capable. It's off by default. Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Nicholas Kazlauskas <[email protected]>
* util: Get program name based on path when possibleNicholas Kazlauskas2018-12-281-1/+22
| | | | | | | | | | | | | | Some programs start with the path and command line arguments in argv[0] (program_invocation_name). Chromium is an example of an application using mesa that does this. This tries to query the real path for the symbolic link /proc/self/exe to find the program name instead. It only uses the realpath if it was a prefix of the invocation to avoid breaking wine programs. Cc: Timothy Arceri <[email protected]> Signed-off-by: Nicholas Kazlauskas <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* util/hash_table: Add _mesa_hash_table_init functionIan Romanick2018-12-162-13/+34
| | | | | Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* util/slab: Rename slab_mempool typed parameters to mempoolIan Romanick2018-12-142-14/+14
| | | | | | | Now everything with type 'struct slab_child_pool *' is name pool, and everything with type 'struct slab_mempool *' is named mempool. Signed-off-by: Ian Romanick <[email protected]>
* util: env_var_as_unsigned() helperRob Clark2018-11-272-0/+22
| | | | | | | So I can drop env2u() helper from freedreno_util.h and get rid of one small ir3 dependency on gallium/freedreno Signed-off-by: Rob Clark <[email protected]>
* util: promote u_memory to src/utilDylan Baker2018-11-276-0/+450
| | | | | as well as os_memory* Reviewed-by: Rob Clark <[email protected]>
* drirc: enable glthread for Talos PrincipleMarek Olšák2018-11-201-0/+7
| | | | | | | | Ryzen 1700X, Vega 56, 1600x900, 4xAA: improvement +4.4% Immediate mode was needed. Reviewed-by: Timothy Arceri <[email protected]>
* meson: Add tests to suitesDylan Baker2018-11-206-8/+16
| | | | | | | | | | | | | | | | Meson test has a concepts of suites, which allow tests to be grouped together. This allows for a subtest of tests to be run only (say only the tests for nir). A test can be added to more than one suite, but for the most part I've only added a test to a single suite, though I've added a compiler group that includes nir, glsl, and glcpp tests. To use this you'll need to invoke meson test directly, instead of ninja test (which always runs all targets). it can be invoked as: `meson test -C builddir --suite $suitename` (meson test has addition options that are pretty useful). Tested-By: Gert Wollny <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* xmlpool: update translation po filesEric Engestrom2018-11-136-193/+950
| | | | | | | | | | | These files are close to 4 years out of date; a lot's changed since. Let's just check in a recently-regenerated version. Changes generated by running `ninja xmlpool-{pot,update-po,gmo}`. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Acked-by: Emil Velikov <[email protected]>
* util/ralloc: Make sizeof(linear_header) a multiple of 8Matt Turner2018-11-121-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this patch sizeof(linear_header) was 20 bytes in a non-debug build on 32-bit platforms. We do some pointer arithmetic to calculate the next available location with ptr = (linear_size_chunk *)((char *)&latest[1] + latest->offset); in linear_alloc_child(). The &latest[1] adds 20 bytes, so an allocation would only be 4-byte aligned. On 32-bit SPARC a 'sttw' instruction (which stores a consecutive pair of 4-byte registers to memory) requires an 8-byte aligned address. Such an instruction is used to store to an 8-byte integer type, like intmax_t which is used in glcpp's expression_value_t struct. As a result of the 4-byte alignment returned by linear_alloc_child() we would generate a SIGBUS (unaligned exception) on SPARC. According to the GNU libc manual malloc() always returns memory that has at least an alignment of 8-bytes [1]. I think our allocator should do the same. So, simple fix with two parts: (1) Increase SUBALLOC_ALIGNMENT to 8 unconditionally. (2) Mark linear_header with an aligned attribute, which will cause its sizeof to be rounded up to that alignment. (We already do this for ralloc_header) With this done, all Mesa's unit tests now pass on SPARC. [1] https://www.gnu.org/software/libc/manual/html_node/Aligned-Memory-Blocks.html Fixes: 47e17586924f ("glcpp: use the linear allocator for most objects") Bug: https://bugs.gentoo.org/636326 Reviewed-by: Eric Anholt <[email protected]>
* util/ralloc: Switch from DEBUG to NDEBUGMatt Turner2018-11-121-14/+4
| | | | | | | The debug code is all asserts, so protect it with the same thing that controls assert. Reviewed-by: Eric Anholt <[email protected]>
* util: Fix warning in u_cpu_detect on non-x86Alyssa Rosenzweig2018-11-121-2/+2
| | | | | | | | | regs is only set and used on x86; on other platforms (like ARM), this code causes a trivial warning, solved by moving the regs declaration to the architecture-dependent usage. Reviewed-by: Matt Turner <[email protected]> Signed-off-by: Alyssa Rosenzweig <[email protected]>
* autotools: library-dependency when no sse and 32-bitSergii Romantsov2018-11-052-2/+3
| | | | | | | | | | | | | | | Building of 32bit Mesa may fail if __SSE__ is not specified. Added missed dependency from libm. v2: avoided dependecy on any flag, just link v3: meson doesn't fail, but have added dependency on libm CC: Dylan Baker <[email protected]> CC: Lionel G Landwerlin <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108560 Signed-off-by: Sergii Romantsov <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: don't install translation files18.3-branchpointDylan Baker2018-11-011-1/+1
| | | | | | | Tested-by: Eric Engestrom <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Fixes: 7834926a4f5ca0a60ec3d18c87a1e0a68b615820 ("meson: add support for generating translation mo files")
* util/gen_xmlpool: Make use of python's foreach loopDylan Baker2018-10-311-30/+27
| | | | | | | Instead of using a while loop with indexing. This is much cleaner. This requires some other small changes. Acked-by: Emil Velikov <[email protected]>
* util/gen_xmlpool: Don't use len to test for container emptinessDylan Baker2018-10-311-4/+4
| | | | | | | This is a very common python anti-pattern. Not using length allows us to go through faster C paths, but has the same meaning. Reviewed-by: Emil Velikov <[email protected]>
* 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]>