summaryrefslogtreecommitdiffstats
path: root/src/util
Commit message (Collapse)AuthorAgeFilesLines
* util/xmlconfig: fix sha1 comparison codePierre-Eric Pelloux-Prayer2020-04-031-4/+5
| | | | | | | | Fixes: 8f48e7b1e99 ("util/xmlconfig: add new sha1 application attribute") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2730 Reviewed-by: Dave Airlie <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4426> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4426>
* driconf: whilelist more games for glthreadMarek Olšák2020-04-021-0/+35
| | | | | | Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4402> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4402>
* gallium/llvmpipe: add an optimised 32-bit memsetDave Airlie2020-04-013-0/+49
| | | | | | | | | | | | This might have other users beyond filling/clearing buffers, increase a fullscreen 4k gears from 68->74 fps on my Ryzen since gears is really just a clear benchmark, and this helps clearing. Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4394> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4394>
* util: move ALIGN/ROUND_DOWN_TO to u_math.hRob Clark2020-03-311-0/+46
| | | | | | | | | These are less mesa specific than the rest of macros.h, and would be nice to use outside of mesa. Prep for next patch. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4381>
* util/u_queue: fix race in total_jobs_size accessRhys Perry2020-03-301-2/+2
| | | | | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Eric Anholt <[email protected]> CC: <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4335> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4335>
* meson: inline `inc_common`Eric Engestrom2020-03-2810-18/+18
| | | | | | | | | Let's make it clear what includes are being added everywhere, so that they can be cleaned up. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4360>
* util: remove duplicated MALLOC_STRUCT and CALLOC_STRUCTMarek Olšák2020-03-271-12/+1
| | | | | | Reviewed-by: Timothy Arceri <[email protected] Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4324> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4324>
* util: don't include p_defines.h and u_pointer.h from galliumMarek Olšák2020-03-275-7/+21
| | | | | | | It's a mess, but this is what I arrived at. Reviewed-by: Timothy Arceri <[email protected] Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4324>
* util: stop including files from mesa/mainMarek Olšák2020-03-275-9/+27
| | | | | Reviewed-by: Timothy Arceri <[email protected] Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4324>
* Move compiler.h and imports.h/c from src/mesa/main into src/utilMarek Olšák2020-03-277-2/+636
| | | | | Reviewed-by: Timothy Arceri <[email protected] Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4324>
* util/test: Use MAX_PATH on WindowsDaniel Stone2020-03-271-0/+5
| | | | | | | | | | | | Windows provides MAX_PATH rather than PATH_MAX for the maximum allowable path length. This is not a limit on the length of filename which can exist on the filesystem, but a length on the length of path which can be passed to Win32 API calls. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Fixes: f8f1413070a ("util/u_process: add util_get_process_exec_path") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4304>
* util: fix process_test pathPierre-Eric Pelloux-Prayer2020-03-271-3/+4
| | | | | | | | | | Make sure we only use winepath when needed. Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Fixes: f8f1413070a ("util/u_process: add util_get_process_exec_path") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2690 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4304>
* mesa: allow out-of-order drawing to optimize immediate mode if it's safeMarek Olšák2020-03-261-0/+5
| | | | | | | | | This increases performance by 11-13% in Viewperf11/Catia - first scene. Set allow_draw_out_of_order=true to enable this. Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4152>
* util/u_process: Add util_get_process_exec_path for macOS.Vinson Lee2020-03-251-0/+9
| | | | | | | | | Fixes: f8f1413070ae ("util/u_process: add util_get_process_exec_path") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2682 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4313> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4313>
* gallium/util: Add back (and rename) util_float_to_half implementationRoland Scheidegger2020-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This implementation was removed by 8b8af6d3 ("gallium/util: Switch util_float_to_half to _mesa_float_to_half()'s impl.") It was not actually broken, but _mesa_float_to_half() implements round-to-nearest-even, whereas util_float_to_half() implemented round-to-zero. So rename it appropriately. GL actually never cares about rounding (except a broken piglit test), however d3d10 very much does and requires RTZ for float to half conversion. Moreover, apparently at least radeon gpus actually always do RTZ when doing RT writes (and I'd suspect for shader image writes as well). Hence it seems appropriate to hook up this rtz function to the format instead. This will cause llvmpipe and softpipe to use rtz rounding for clears with half float formats, and softpipe would use rtz behavior for rt writes as well (llvmpipe has that hardcoded), not sure if "real" hw drivers hit this function for much. (For shader opcodes would still need to figure out what rounding to use appropriately, but this is a question for another day.) Note should probably unify with _mesa_float_to_float16_rtz. Unclear at this point which one is better, so just restore previous function here. Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4312> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4312>
* util/u_process: fix Windows buildPierre-Eric Pelloux-Prayer2020-03-241-1/+2
| | | | | | | | | | Reported by Brian Paul. Fixes: f8f1413070a ("util/u_process: add util_get_process_exec_path") Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4303> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4303>
* radeonsi: enable workarounds for YoYo engine based gamesPierre-Eric Pelloux-Prayer2020-03-241-0/+17
| | | | | | | | | | | | | | | | Without the radeonsi_sync_compile option the games crashes at startup. The engine seems to be using a custom global new operator and it doesn't plays well with multithreading it seems. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1310 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1271 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1272 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1288 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2611 Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4181> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4181>
* util/xmlconfig: add new sha1 application attributePierre-Eric Pelloux-Prayer2020-03-242-2/+30
| | | | | | | | | | This is useful to enable workarounds for applications with a generic name. For instance all games made with the YoYo game engine have the same executable name "runner". Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4181>
* util/u_process: add util_get_process_exec_pathPierre-Eric Pelloux-Prayer2020-03-244-0/+141
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4181>
* util/os_file: extend os_read_file to return the file sizePierre-Eric Pelloux-Prayer2020-03-242-3/+8
| | | | | Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4181>
* radeonsi: clarify the conditions when FLUSH_AND_INV_DB is neededPierre-Eric Pelloux-Prayer2020-03-241-3/+0
| | | | | | | | | | | | | | | | FLUSH_AND_INV_DB should be done when we're changing surface state registers of a bound depth target. When depth_clear_value changes, si_state will modify S_028038_ZRANGE_PRECISION so we need to flush the DB caches. Verified with the captures from bugs cited below. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1283 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1330 Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4263> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4263>
* util/sparse_array: Stash the node level in the node pointerJason Ekstrand2020-03-202-60/+80
| | | | | | | | | | | | | | | | | This reworks the data structure a bit and, in my view, simplifies it. Instead of each node having a header which has the node level in it, we use the bottom 6 bits of the pointer for that. This requires us to allocate with the os_malloc/free_aligned helpers (which call into posix_memalign on Linux) but cache-line aligning our allocations is actually probably a good thing given that we're doing atomics on them. The primary advantages to doing this is that it changes the number of memory accesses per tree level from 2 to 1 when walking the tree because we no longer have to look at node->level. Reviewed-by: Lionel Landwerlin <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228>
* meson,ci: Disable sparse_array tests on windowsJason Ekstrand2020-03-201-1/+4
| | | | | | | | | | | | As soon as I switch to using the allocation helpers in os_memory.h, these tests start blowing up on the Windows build in GitLab CI. As far as I can tell, the issue is something with the combination of the debug allocator in u_debug_memory.c and the mutex implementation in the version of Wine running in CI. The tests don't fail on real windows nor do they fail with newer versions of Wine. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228>
* util/sparse_array: Add a node_size_log2 temporaryJason Ekstrand2020-03-201-7/+8
| | | | | | | | | We use this value several times. It's probably best to encourage the compiler to only read it once. I have no proof that this actually makes any performance improvement whatsoever. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228>
* util/sparse_array: Finish the sparse_array in the testsJason Ekstrand2020-03-201-0/+2
| | | | | Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4228>
* util/blob: Add overwrite function for uint8Mark Menzynski2020-03-202-0/+24
| | | | | | | | | Overwrite function for this type was missing and I needed it for my project. Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Signed-off-by: Mark Menzynski <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3903>
* driconf: enable glthread for "From The Depths"Marek Olšák2020-03-191-0/+4
| | | | | | | | 25% perf improvement Reviewed-by: Bas Nieuwenhuizen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4254> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4254>
* radeonsi: enable glsl_zero_init for Curse of the Dead GodsPierre-Eric Pelloux-Prayer2020-03-191-0/+5
| | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2598 Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4214> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4214>
* glsl/tests: Fix waiting for disk_cache_put() to finish.Eric Anholt2020-03-122-0/+12
| | | | | | | | | | | | We were wasting 4s on waiting for expected-not-to-appear files to show up on every test. Using timeouts in test code is error-prone anyway, as our shared runners may be busy on other jobs. Fixes: 50989f87e62e ("util/disk_cache: use a thread queue to write to shader cache") Link: https://gitlab.freedesktop.org/mesa/mesa/issues/2505 Reviewed-by: Timothy Arceri <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4140> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4140>
* util/ra: move NO_REG to headerRob Clark2020-03-102-2/+4
| | | | | | | | | In the select_reg callback, I want to be able to determine if a given node is already assigned, and if so what physical register has been assigned. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4071>
* util/ra: spiff out select_reg_callbackRob Clark2020-03-102-9/+24
| | | | | | | | | | | | Add a parameter so the callback can know which node it is selecting a register for. And remove the graph parameter, as it is unused by existing users, and somewhat unnecessary (ie. the callback data could be used instead). And add a comment so $future_me remembers how this works. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4071>
* glsl: Add ir_constant constructor for fp16Kristian H. Kristensen2020-03-091-2/+18
| | | | | Reviewed-by: Ian Romanick <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3929>
* radeonsi: remove AMD_DEBUG=sisched optionPierre-Eric Pelloux-Prayer2020-03-067-29/+0
| | | | | | | | | sisched is not maintained anymore in LLVM. Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4059> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4059>
* util: move debug_memory_{begin,end} to os_memory_debug.hErik Faye-Lund2020-02-242-1/+6
| | | | | | | | | | | This is where the other debug_memory_* functions are declared, so let's move it here for symmetry. This allows us to drop an include of u_debug_gallium.h, which makes us depend on gallium-headers in non-gallium code. Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3901>
* util: Change os_same_file_description return type from bool to intMichel Dänzer2020-02-212-10/+18
| | | | | | | | | | | | | | | This allows communicating that it wasn't possible to determine whether the two file descriptors reference the same file description. When that's the case, log a warning in the amdgpu winsys. In turn, remove the corresponding debugging output from the fallback os_same_file_description implementation. It depends on the caller if false negatives are problematic or not. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3879> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3879>
* util: promote u_debug_memory.c to src/utilErik Faye-Lund2020-02-213-0/+454
| | | | | | | | | | | | | | | | When os_memory_debug.h was promoted to src/util, this source-file on which it depends on when the debug-flag is set on windows was left out. So let's move this also. It doesn't seem there's any way of triggering this issue right now, but it seems better to correct this to avoid this from biting us in the ass in the future. Fixes: 88c4680b5a5 ("util: promote u_memory to src/util") Reviewed-by: Dylan Baker <dylan@pnwbakers> Reviewed-by: Jose Fonseca <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3844> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3844>
* util: remove the dependency on kcmp.hMarek Olšák2020-02-201-1/+2
| | | | | | | | | Fixes: f76cbc7901f7 "util: Add os_same_file_description helper" Acked-by: Eric Engestrom <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3860> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3860>
* Mark a few static inline helpers with ASSERTEDKristian H. Kristensen2020-02-192-2/+2
| | | | | | Quiet warnings in release builds where these look unused. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3866>
* glsl/blob: Do not call memcpy if there is nothing to copyDanylo Piliaiev2020-02-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | ../src/util/blob.c:166:7: runtime error: null pointer passed as argument 2, which is declared to never be null #0 0x7fe51bc315df in blob_write_bytes ../src/util/blob.c:166 #1 0x7fe51c7a7b9a in iris_disk_cache_store ../src/gallium/drivers/iris/iris_disk_cache.c:115 #2 0x7fe51c7f444d in iris_compile_fs ../src/gallium/drivers/iris/iris_program.c:1693 #3 0x7fe51c7fdcd9 in iris_create_fs_state ../src/gallium/drivers/iris/iris_program.c:2331 #4 0x7fe519e871a3 in st_create_fp_variant ../src/mesa/state_tracker/st_program.c:1275 #5 0x7fe519e89dd0 in st_get_fp_variant ../src/mesa/state_tracker/st_program.c:1435 #6 0x7fe519ed51e1 in st_update_fp ../src/mesa/state_tracker/st_atom_shader.c:163 #7 0x7fe519eb5d73 in st_validate_state ../src/mesa/state_tracker/st_atom.c:261 #8 0x7fe519e4e0bf in prepare_draw ../src/mesa/state_tracker/st_draw.c:132 #9 0x7fe519e4e76e in st_draw_vbo ../src/mesa/state_tracker/st_draw.c:184 #10 0x7fe51aca5245 in vbo_save_playback_vertex_list ../src/mesa/vbo/vbo_save_draw.c:215 #11 0x7fe51a25b1cc in ext_opcode_execute ../src/mesa/main/dlist.c:1126 #12 0x7fe51a2f8d58 in execute_list ../src/mesa/main/dlist.c:11830 #13 0x7fe51a34b2d0 in _mesa_CallList ../src/mesa/main/dlist.c:14267 Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3825>
* Revert "gallium: Fix big-endian addressing of non-bitmask array formats."Eric Anholt2020-02-111-17/+6
| | | | | | | | | | | | | | | | | | | | | | | | This reverts the functional part of commit d17ff2f7f1864c81c1e00d04baf20f953c6d276a, leaving the unit test for mesa/pipe agreement on what's an array. The issue is that the util_channel_desc.shift values on array formats are not used for bit addressing in memory, they're bit addressing within a word treating a pixel of the format as a native type, as seen by llvmpipe's use of the values to do shifts (see lp_build_unpack_arith_rgba_aos() for example). This means the values are nonsensical for 3-byte RGB, but then llvmpipe doesn't expose those formats so it works out. I still want to clean up our big-endian format handling at some point, but let's fix the s390x regression first, sort out our format unit tests in CI, then be able to refactor with confidence. Fixes: d17ff2f7f186 ("gallium: Fix big-endian addressing of non-bitmask array formats.") Closes: #2472 Acked-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3721> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3721>
* gitlab-ci: Add ppc64el and s390x cross-build jobsMichel Dänzer2020-02-053-0/+3
| | | | | | | | | | | | | Using LLVM 8 for ppc64el and 7 for s390x (which hits some coroutine related issues with LLVM 8). There are some test failures we need to ignore for now. Also, the timeout needs to be bumped from the default 30s for some tests, because they can take longer under emulation. Reviewed-by: Adam Jackson <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3643>
* util/disk_cache: check for write() failure in the zstd pathEric Engestrom2020-02-051-1/+5
| | | | | | | | | CoverityID: 1458074 Fixes: a8d941091f72923561a6 ("util: Use ZSTD for shader cache if possible") Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3672> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3672>
* util: Drop unpacking from int signed to unsigned and vice versa.Eric Anholt2020-02-042-4/+2
| | | | | | | | | | After all the previous cleanups, it's clear that the callers only ever ask for SINT->SINT or UINT->UINT. Cuts 20k of compiled text from gallium drivers. Reviewed-by: Marek Olšák <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2744> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2744>
* util: Make helper functions for pack/unpacking pixel rows.Eric Anholt2020-02-042-4/+104
| | | | | | | | | Almost all users of the unpack functions don't have strides to plug in (and many are only doing one pixel!), and this will help simplify them. Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2744>
* util/os_socket: fix header unavailable on windowsEric Engestrom2020-02-041-1/+2
| | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2464 Fixes: e62c3cf350a8b169e640 ("util/os_socket: Include unistd.h to fix build error") Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Krzysztof Raszkowski <[email protected]>
* util/os_socket: Include unistd.h to fix build errorBernd Kuhls2020-02-031-0/+1
| | | | | | | | | | | | | | | Fixes In file included from ../src/util/os_socket.c:8: ../src/util/os_socket.h:26:1: error: unknown type name ‘ssize_t’; did you mean ‘size_t’? ssize_t os_socket_recv(int socket, void *buffer, size_t length, int flags); seen with gcc version 8.3.0 (Buildroot 2019.11) and uClibc 1.0.32. Reviewed-by: Eric Engestrom <[email protected]> Fixes: ef5266ebd50e7fa65c56 ("util/os_socket: Add socket related functions.") Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3659> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3659>
* util/simple_mtx: add a missing include to get ASSERTEDMarek Olšák2020-01-241-0/+1
| | | | | Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2929>
* util/hash_table: added hash functions for integer typesAnthony Pesch2020-01-236-15/+57
| | | | | | | | | | | | | | | | | A few hash_table users roll their own integer hash functions which call _mesa_hash_data to perform the hashing which ultimately calls into XXH32 with a dynamic key length. When using small keys with a constant size the hash rate can be greatly improved by inlining XXH32 and providing it a constant key length, see: https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html Additionally, this patch removes calls to _mesa_key_hash_string and makes them instead call _mesa_has_string directly, matching the new integer hash functions. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>
* util/hash_table: replace _mesa_hash_data's fnv1a hash function with xxhashAnthony Pesch2020-01-231-2/+4
| | | | | | | | | | | For most key sizes, xxhash outperforms fnv1a's hash rate substantially (bug 2153). In particular, the V3D driver hashes multiple ~200 byte keys as part of the shader cache lookup which can easily eat up 10-20% of the runtime on the Raspberry Pi. Swapping over to xxhash drops this to ~1% of the runtime. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>
* util: move fnv1a hash implementation into its own headerAnthony Pesch2020-01-235-30/+64
| | | | | | Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>