File: alloc.h

package info (click to toggle)
embree 4.4.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 99,492 kB
  • sloc: cpp: 224,036; xml: 40,944; ansic: 2,731; python: 812; sh: 639; makefile: 228; csh: 42
file content (34 lines) | stat: -rw-r--r-- 1,016 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "../../../common/sys/alloc.h"

#if defined(EMBREE_SYCL_SUPPORT)
#include <sycl/sycl.hpp>
#endif

namespace embree
{
#if defined(EMBREE_SYCL_SUPPORT)

  /* enables SYCL USM allocation */
  void enableUSMAllocTutorial(sycl::context* context, sycl::device* device);

  /* disables SYCL USM allocation */
  void disableUSMAllocTutorial();

#endif

#define ALIGNED_STRUCT_USM_(align)                                          \
  void* operator new(size_t size) { return alignedUSMMalloc(size,align); }   \
  void operator delete(void* ptr) { alignedUSMFree(ptr); }                   \
  void* operator new[](size_t size) { return alignedUSMMalloc(size,align); } \
  void operator delete[](void* ptr) { alignedUSMFree(ptr); }

  /*! aligned allocation using SYCL USM */
  void* alignedUSMMalloc(size_t size, size_t align = 16, EmbreeUSMMode mode = EmbreeUSMMode::DEVICE_READ_ONLY);
  void alignedUSMFree(void* ptr);

}