|
virtual | ~Buffer ()=default |
|
| Buffer ()=default |
| Make a null Buffer, which points to no Runtime::Buffer.
|
|
| Buffer (const Buffer &that)=default |
| Trivial copy constructor.
|
|
Buffer & | operator= (const Buffer &that)=default |
| Trivial copy assignment operator.
|
|
Buffer & | operator= (Buffer &&) noexcept=default |
| Trivial move assignment operator.
|
|
template<typename T2 , int D2> |
| Buffer (const Buffer< T2, D2 > &other) |
| Make a Buffer from a Buffer of a different type.
|
|
template<typename T2 , int D2> |
| Buffer (Buffer< T2, D2 > &&other) noexcept |
| Move construct from a Buffer of a different type.
|
|
template<int D2> |
| Buffer (Runtime::Buffer< T, D2 > &&buf, const std::string &name="") |
| Construct a Buffer that captures and owns an rvalue Runtime::Buffer.
|
|
template<typename... Args, typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> |
| Buffer (Type t, int first, Args... rest) |
| Constructors that match Runtime::Buffer with two differences: 1) They take a Type instead of a halide_type_t 2) There is an optional last string argument that gives the buffer a specific name.
|
|
| Buffer (const halide_buffer_t &buf, const std::string &name="") |
|
template<typename... Args, typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> |
| Buffer (int first, Args... rest) |
|
| Buffer (Type t, const std::vector< int > &sizes, const std::string &name="") |
|
| Buffer (Type t, const std::vector< int > &sizes, const std::vector< int > &storage_order, const std::string &name="") |
|
| Buffer (const std::vector< int > &sizes, const std::string &name="") |
|
| Buffer (const std::vector< int > &sizes, const std::vector< int > &storage_order, const std::string &name="") |
|
template<typename Array , size_t N> |
| Buffer (Array(&vals)[N], const std::string &name="") |
|
template<typename... Args, typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> |
| Buffer (Type t, Internal::add_const_if_T_is_const< T, void > *data, int first, Args &&...rest) |
|
template<typename... Args, typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> |
| Buffer (Type t, Internal::add_const_if_T_is_const< T, void > *data, const std::vector< int > &sizes, const std::string &name="") |
|
template<typename... Args, typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> |
| Buffer (T *data, int first, Args &&...rest) |
|
| Buffer (T *data, const std::vector< int > &sizes, const std::string &name="") |
|
| Buffer (Type t, Internal::add_const_if_T_is_const< T, void > *data, const std::vector< int > &sizes, const std::string &name="") |
|
| Buffer (Type t, Internal::add_const_if_T_is_const< T, void > *data, int d, const halide_dimension_t *shape, const std::string &name="") |
|
| Buffer (T *data, int d, const halide_dimension_t *shape, const std::string &name="") |
|
void | set_name (const std::string &n) |
| Buffers are optionally named.
|
|
const std::string & | name () const |
|
template<typename T2 , int D2> |
bool | same_as (const Buffer< T2, D2 > &other) const |
| Check if two Buffer objects point to the same underlying Buffer.
|
|
bool | defined () const |
| Check if this Buffer refers to an existing Buffer.
|
|
Runtime::Buffer< T, Dims > * | get () |
| Get a pointer to the underlying Runtime::Buffer.
|
|
const Runtime::Buffer< T, Dims > * | get () const |
|
template<typename Fn , typename... Args> |
Buffer< T, Dims > & | for_each_value (Fn &&f, Args... other_buffers) |
| Does the same thing as the equivalent Halide::Runtime::Buffer method.
|
|
template<typename Fn , typename... Args> |
const Buffer< T, Dims > & | for_each_value (Fn &&f, Args... other_buffers) const |
|
template<typename Fn > |
Buffer< T, Dims > & | for_each_element (Fn &&f) |
|
template<typename Fn > |
const Buffer< T, Dims > & | for_each_element (Fn &&f) const |
|
template<typename FnOrValue > |
Buffer< T, Dims > & | fill (FnOrValue &&f) |
|
Type | type () const |
|
template<typename T2 , int D2 = Dims> |
Buffer< T2, D2 > | as () const |
|
Buffer< T, Dims > | copy () const |
|
template<typename T2 , int D2> |
void | copy_from (const Buffer< T2, D2 > &other) |
|
template<typename... Args> |
auto | operator() (int first, Args &&...args) -> decltype(std::declval< Runtime::Buffer< T, Dims > >()(first, std::forward< Args >(args)...)) |
|
template<typename... Args> |
auto | operator() (int first, Args &&...args) const -> decltype(std::declval< const Runtime::Buffer< T, Dims > >()(first, std::forward< Args >(args)...)) |
|
auto | operator() (const int *pos) -> decltype(std::declval< Runtime::Buffer< T, Dims > >()(pos)) |
|
auto | operator() (const int *pos) const -> decltype(std::declval< const Runtime::Buffer< T, Dims > >()(pos)) |
|
auto | operator() () -> decltype(std::declval< Runtime::Buffer< T, Dims > >()()) |
|
auto | operator() () const -> decltype(std::declval< const Runtime::Buffer< T, Dims > >()()) |
|
template<typename... Args> |
const Expr | operator() (const Expr &first, Args... rest) const |
| Make an Expr that loads from this concrete buffer at a computed coordinate.
|
|
template<typename... Args> |
const Expr | operator() (const std::vector< Expr > &args) const |
|
int | copy_to_device (const Target &t=get_jit_target_from_environment(), JITUserContext *context=nullptr) |
| Copy to the GPU, using the device API that is the default for the given Target.
|
|
int | copy_to_device (const DeviceAPI &d, const Target &t=get_jit_target_from_environment(), JITUserContext *context=nullptr) |
| Copy to the GPU, using the given device API.
|
|
int | device_malloc (const Target &t=get_jit_target_from_environment(), JITUserContext *context=nullptr) |
| Allocate on the GPU, using the device API that is the default for the given Target.
|
|
int | device_malloc (const DeviceAPI &d, const Target &t=get_jit_target_from_environment(), JITUserContext *context=nullptr) |
| Allocate storage on the GPU, using the given device API.
|
|
int | device_wrap_native (const DeviceAPI &d, uint64_t handle, const Target &t=get_jit_target_from_environment(), JITUserContext *context=nullptr) |
| Wrap a native handle, using the given device API.
|
|
|
static Buffer< T, Dims > | make_scalar (const std::string &name="") |
|
static Buffer | make_scalar (Type t, const std::string &name="") |
|
static Buffer< T, Dims > | make_scalar (T *data, const std::string &name="") |
|
static Buffer< T, Dims > | make_interleaved (int width, int height, int channels, const std::string &name="") |
|
static Buffer | make_interleaved (Type t, int width, int height, int channels, const std::string &name="") |
|
static Buffer< T, Dims > | make_interleaved (T *data, int width, int height, int channels, const std::string &name="") |
|
static Buffer< Internal::add_const_if_T_is_const< T, void > > | make_interleaved (Type t, T *data, int width, int height, int channels, const std::string &name="") |
|
template<typename T2 , int D2> |
static Buffer< T, Dims > | make_with_shape_of (Buffer< T2, D2 > src, void *(*allocate_fn)(size_t)=nullptr, void(*deallocate_fn)(void *)=nullptr, const std::string &name="") |
|
template<typename T2 , int D2> |
static Buffer< T, Dims > | make_with_shape_of (const Runtime::Buffer< T2, D2 > &src, void *(*allocate_fn)(size_t)=nullptr, void(*deallocate_fn)(void *)=nullptr, const std::string &name="") |
|
static constexpr halide_type_t | static_halide_type () |
|
static constexpr int | static_dimensions () |
|
template<typename T2 , int D2> |
static bool | can_convert_from (const Buffer< T2, D2 > &other) |
|
template<typename T, int Dims>
class Halide::Buffer< T, Dims >
A Halide::Buffer is a named shared reference to a Halide::Runtime::Buffer.
A Buffer<T1, D> can refer to a Buffer<T2, D> if T1 is const whenever T2 is const, and either T1 = T2 or T1 is void. A Buffer<void, D> can refer to any Buffer of any non-const type, and the default template parameter is T = void.
A Buffer<T, D1> can refer to a Buffer<T, D2> if D1 == D2, or if D1 is AnyDims (meaning "dimensionality is checked at runtime, not compiletime").
- Examples
- tutorial/lesson_01_basics.cpp, tutorial/lesson_02_input_image.cpp, tutorial/lesson_03_debugging_1.cpp, tutorial/lesson_04_debugging_2.cpp, tutorial/lesson_05_scheduling_1.cpp, tutorial/lesson_06_realizing_over_shifted_domains.cpp, tutorial/lesson_07_multi_stage_pipelines.cpp, tutorial/lesson_08_scheduling_2.cpp, tutorial/lesson_09_update_definitions.cpp, tutorial/lesson_12_using_the_gpu.cpp, and tutorial/lesson_13_tuples.cpp.
Definition at line 21 of file RDom.h.