mirror of
https://github.com/godotengine/godot.git
synced 2024-12-27 11:24:59 +08:00
767e374dce
Since Embree v3.13.0 supports AARCH64, switch back to the official repo instead of using Embree-aarch64. `thirdparty/embree/patches/godot-changes.patch` should now contain an accurate diff of the changes done to the library.
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// 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;
|
|
}
|
|
};
|
|
};
|