Geoffrey McRae
d99ec3e9c0
[common] ringbuffer: remove exta locking and add append/consume funcs
...
As the ringbuffer is now in use for audio it makes sense to provide bulk
append and consume functions that are thread safe instead of adding
locking over all of the functions. This partially reverts the prior
commit that added the extra locking.
2021-12-26 11:09:42 +11:00
Geoffrey McRae
8ba4b56dba
[common] ringbuffer: added shift and locking for thread safety
2021-12-26 11:09:42 +11:00
Geoffrey McRae
affc3f51f8
[common] rects: fix error introduced in cosmetics patch
...
`x2` and `y2` are required here as they need to operate on the original
x & y before they are clamped. Can't believe I missed this *facepalm*
2021-10-26 23:35:09 +11:00
Geoffrey McRae
6078b11200
Revert "[common] rects: fix damage regression introduced in the cosmetics patch"
...
This was correct, brainfart moment
2021-10-26 22:26:20 +11:00
Geoffrey McRae
68a9504366
[common] rects: fix damage regression introduced in the cosmetics patch
2021-10-26 22:15:54 +11:00
Geoffrey McRae
9d71655273
[common] rects: fix return value of removeRects
2021-10-24 22:22:13 +11:00
Geoffrey McRae
2f0b97a487
[common] rects: de-dup code and don't needlessly copy rect over itself
2021-10-24 22:19:28 +11:00
Geoffrey McRae
f69b869282
[common] rects: cosmetics
2021-10-24 22:05:30 +11:00
Geoffrey McRae
bc7cbf1173
[common] fix out by one error in rectsIntersect
2021-10-24 13:31:41 +11:00
Quantum
edf1e341da
[common] rects: fix rectIntersects
2021-10-20 16:32:41 +11:00
Geoffrey McRae
dca5da02a0
[client] egl: fix undefined behaviour with zero size array
2021-10-20 13:34:16 +11:00
Quantum
57d220a43b
[common] open: detach xdg-open instead of waiting for it
...
Sometimes, e.g. when xdg-open has to start the browser, the xdg-open
process can stay around until the browser exits, which freezes the
client. Instead, we should not wait for xdg-open to exit.
However, we can't simply not call wait, as that would leave the
xdg-open process around as a zombie. We could turn off the SIGCHLD
handler, but that's a global solution to a local problem. Instead, we
call setsid and fork again to detach the xdg-open process as if it's a
daemon, and let init take care of the reaping process.
Co-Authored-By: Tudor Brindus <me@tbrindus.ca>
2021-09-27 13:35:08 +10:00
Geoffrey McRae
2aa236e1f9
[common] options: check for realloc failure
2021-09-11 10:38:07 +10:00
Quantum
43b0e80f93
[common] ivshmem: use e.g. instead of incorrect ie for example
2021-09-04 13:28:34 +10:00
Quantum
ab033d84b1
[common] cpuinfo: handle more than 64 threads on Windows
...
The old code will not correctly report the number of threads on CPUs with
more than one processor group, i.e. when there are more than 64 logical
processors (threads).
2021-09-04 13:25:24 +10:00
Quantum
ffabdd348c
[common] cpuinfo: trim trailing whitespace from model name on Windows
2021-08-31 20:57:34 +10:00
Geoffrey McRae
5fc561fa63
[common] cpuinfo: trim any trailing whitespace from CPU model
2021-08-31 20:20:11 +10:00
Quantum
8514f35474
[common] windebug: handle FormatMessage failure
2021-08-31 20:14:29 +10:00
Quantum
0faafbff47
[common] cpuinfo: implement for Windows
2021-08-31 20:14:10 +10:00
Quantum
34fb2f9076
[common] cpuinfo: implement lgDebugCPU
...
This is a helper function that can be run at startup to quickly generate
a debug print containing CPU information.
2021-08-31 20:14:10 +10:00
Quantum
a6112feddb
[common] cpuinfo: implement for linux by parsing /proc/cpuinfo
2021-08-31 20:14:10 +10:00
Quantum
39e42ba735
[common] option: change option_dump to option_dump_preset
...
This new function dumps all options marked as preset instead of dumping
individual sections. This should allow filter options to not be all grouped
into the [eglFilter] section.
2021-08-30 18:32:16 +10:00
Quantum
44850f1699
[common] option: add preset-only options that don't show up in help
2021-08-30 18:21:54 +10:00
Quantum
e11246d46e
[common] stringlist: implement item removal
2021-08-30 18:21:54 +10:00
Quantum
f0beedb5ba
[common] vector: implement item removal
2021-08-30 18:21:54 +10:00
Quantum
bbd39b8185
[common] option: implement the ability to set option values
...
This can then be used to update the options from EGL filters, and then
dumping them to files.
2021-08-30 18:21:54 +10:00
Quantum
f0624ccf89
[common] option: implement ability to dump config into ini
...
This is intended to be used for saving filter options into an ini file.
2021-08-30 18:21:54 +10:00
Tudor Brindus
e22a070dd3
[common] appstrings: add blurb for xyene
2021-08-30 17:46:24 +10:00
Quantum
0c27111260
[common] option: return NAN when float option doesn't exist
...
false is not a float value.
2021-08-30 17:40:35 +10:00
Quantum
e5f2b3079e
[common] stringlist: use vector for storage
2021-08-28 19:17:15 +10:00
Quantum
e6df0acad9
[common] vector: eliminate double allocation when possible
...
This commit creates two constructor/destructor pairs for vector:
* vector_alloc/vector_free dynamically allocates the vector itself
* vector_create/vector_destroy uses existing Vector objects
2021-08-28 19:17:15 +10:00
Quantum
ba527761ef
[common] vector: inline common operations
2021-08-28 19:17:15 +10:00
Quantum
e040b88bf0
[common] ivshmem: switch to using vectors
2021-08-24 22:10:36 +10:00
Quantum
53b4b4818b
[common] vector: allow inplace construction with vector_push
...
This makes vector_push return a pointer to the pushed element.
It also allows the user to push a NULL pointer, which means allocating the
memory for the element but do not copy anything into it.
2021-08-24 22:10:36 +10:00
Quantum
07d3d6cbe7
[common] vector: implement a clear operation
2021-08-24 22:10:36 +10:00
Quantum
b71838a530
[common] vector: allow vector_free to be used with NULL
...
This is done for consistency with free.
2021-08-24 22:10:36 +10:00
Quantum
24e0343156
[common] vector: add new data structure
2021-08-22 21:36:13 +10:00
Quantum
164dd00490
[common] rects: fix typo in rectContains
2021-08-20 17:13:04 +10:00
Quantum
ccda264648
[common] windebug: pass FORMAT_MESSAGE_IGNORE_INSERTS to FormatMessage
...
This avoids problems when the error message we are told to format contains
inserts like %1.
See https://devblogs.microsoft.com/oldnewthing/20071128-00/?p=24353 for
details (or for fun).
2021-08-17 19:07:41 +10:00
Quantum
2de9e3e9be
[common] remove all casts around malloc
2021-08-16 16:26:58 +10:00
Quantum
4d907cecab
[common] use correct argument order for calloc
...
The signature for calloc is void *calloc(size_t num, size_t size), where num
is the number of elements to allocate, and size is the size. Therefore, to
allocate a single struct, we should pass 1 for num and the size of the struct
as size.
In some places, we use the opposite order, and we should flip it.
2021-08-16 16:25:59 +10:00
Tudor Brindus
1c5620ba25
[common] use variable-relative sizeof where possible
2021-08-16 16:22:55 +10:00
Quantum
c89518ead4
[common] option: use isspace from <ctype.h>
2021-08-15 18:00:52 +10:00
Quantum
b2630024a7
[common] all: switch asserts to DEBUG_ASSERT
2021-08-14 12:19:07 +10:00
Quantum
e5d252290d
[common] array: add ALIGN_PAD macro for common logic
...
ALIGN_PAD(x, a) returns x rounded up to the nearest multiple of a.
2021-08-14 08:05:29 +10:00
Quantum
717b90366b
[common] ivshmem: use correct page alignment logic
...
Before, if the size is exactly the multiple of the page size, an extra padding
page is added for no reason. This commit fixes the logic and also uses the
page size obtained dynamically.
2021-08-13 20:24:15 +10:00
Quantum
e945955d13
[common] rects: add rectsRejectContained function
...
This function will remove rectangles in a list that are entirely contained
in another rectangle in the same list.
2021-08-13 20:21:27 +10:00
Quantum
604b44d6d8
[common] rects: add rectsMergeOverlapping helper function
...
This is based on the client's util_mergeOverlappingRects.
2021-08-11 19:01:52 +10:00
Quantum
9f4afcd944
[common] crash: use DEBUG_WINERROR on windows
2021-08-11 02:41:33 +10:00
Geoffrey McRae
e41cbf5f32
[common] option: option_get_float should return a float
2021-08-10 01:36:12 +10:00