Initial commit.
This commit is contained in:
commit
d3bb49b3f5
1073 changed files with 484757 additions and 0 deletions
46
Framework/external/embree/common/tasking/taskschedulerppl.h
vendored
Normal file
46
Framework/external/embree/common/tasking/taskschedulerppl.h
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
// Copyright 2009-2021 Intel Corporation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../sys/platform.h"
|
||||
#include "../sys/alloc.h"
|
||||
#include "../sys/barrier.h"
|
||||
#include "../sys/thread.h"
|
||||
#include "../sys/mutex.h"
|
||||
#include "../sys/condition.h"
|
||||
#include "../sys/ref.h"
|
||||
|
||||
#if !defined(__WIN32__)
|
||||
#error PPL tasking system only available under windows
|
||||
#endif
|
||||
|
||||
#include <ppl.h>
|
||||
|
||||
namespace embree
|
||||
{
|
||||
struct TaskScheduler
|
||||
{
|
||||
/*! initializes the task scheduler */
|
||||
static void create(size_t numThreads, bool set_affinity, bool start_threads);
|
||||
|
||||
/*! destroys the task scheduler again */
|
||||
static void destroy();
|
||||
|
||||
/* returns the ID of the current thread */
|
||||
static __forceinline size_t threadID() {
|
||||
return GetCurrentThreadId();
|
||||
}
|
||||
|
||||
/* returns the index (0..threadCount-1) of the current thread */
|
||||
/* FIXME: threadIndex is NOT supported by PPL! */
|
||||
static __forceinline size_t threadIndex() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* returns the total number of threads */
|
||||
static __forceinline size_t threadCount() {
|
||||
return GetMaximumProcessorCount(ALL_PROCESSOR_GROUPS) + 1;
|
||||
}
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue