4 #include "testing/testing.h"
8 #define GHASH_INTERNAL_API
20 #define NUM_RUN_AVERAGED 100
34 return ((num & 255) << 6) + 1;
57 int *
count = (
int *)userdata;
74 for (
uint i = 0; i < num; i++) {
86 int *
count = (
int *)userdata;
91 for (
uint i = 0; i < num; i++) {
102 const bool use_threads,
103 const bool check_items_tmp_num)
109 double averaged_timing = 0.0;
117 if (check_items_tmp_num) {
122 for (j = 0, item = (
LinkData *)list->
first; j < items_num && item !=
nullptr;
123 j++, item = item->
next) {
129 *items_tmp_num = items_num;
132 printf(
"\t%s: done in %fs on average over %d runs\n",
140 printf(
"\n========== STARTING %s ==========\n",
id);
148 for (
int i = 0; i <
count; i++) {
152 int items_tmp_num = items_num;
165 "Light iter with mem barrier",
181 "Heavy iter with mem barrier",
189 printf(
"========== ENDED %s ==========\n\n",
id);
194 task_listbase_test(
"ListBase parallel iteration - Single thread - 10000 items", 10000,
false);
199 task_listbase_test(
"ListBase parallel iteration - Threaded - 10000 items", 10000,
true);
204 task_listbase_test(
"ListBase parallel iteration - Single thread - 100000 items", 100000,
false);
209 task_listbase_test(
"ListBase parallel iteration - Threaded - 100000 items", 100000,
true);
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
void(* TaskParallelIteratorFunc)(void *__restrict userdata, void *item, int index, const TaskParallelTLS *__restrict tls)
void BLI_task_parallel_listbase(struct ListBase *listbase, void *userdata, TaskParallelIteratorFunc func, const TaskParallelSettings *settings)
void BLI_threadapi_init(void)
void BLI_threadapi_exit(void)
#define POINTER_FROM_INT(i)
#define POINTER_AS_INT(i)
Read Guarded memory(de)allocation.
Platform independent time functions.
Provides wrapper around system-specific atomic primitives, and some extensions (faked-atomic operatio...
ATOMIC_INLINE uint32_t atomic_sub_and_fetch_uint32(uint32_t *p, uint32_t x)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_calloc_arrayN)(size_t len, size_t size, const char *str)
struct blender::compositor::@179::@181 task
double PIL_check_seconds_timer(void)