23#ifndef HIP_INCLUDE_HIP_TEXTURE_TYPES_H
24#define HIP_INCLUDE_HIP_TEXTURE_TYPES_H
26#include <hip/hip_common.h>
28#if !(defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__)) && (defined(__HIP_PLATFORM_NVCC__) || defined(__HIP_PLATFORM_NVIDIA__))
29#include "texture_types.h"
30#elif (defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__)) && !(defined(__HIP_PLATFORM_NVCC__) || defined(__HIP_PLATFORM_NVIDIA__))
36#if !defined(__HIPCC_RTC__)
38#include <hip/channel_descriptor.h>
41#include <hip/driver_types.h>
43#define hipTextureType1D 0x01
44#define hipTextureType2D 0x02
45#define hipTextureType3D 0x03
46#define hipTextureTypeCubemap 0x0C
47#define hipTextureType1DLayered 0xF1
48#define hipTextureType2DLayered 0xF2
49#define hipTextureTypeCubemapLayered 0xFC
54#define HIP_IMAGE_OBJECT_SIZE_DWORD 12
55#define HIP_SAMPLER_OBJECT_SIZE_DWORD 8
56#define HIP_SAMPLER_OBJECT_OFFSET_DWORD HIP_IMAGE_OBJECT_SIZE_DWORD
57#define HIP_TEXTURE_OBJECT_SIZE_DWORD (HIP_IMAGE_OBJECT_SIZE_DWORD + HIP_SAMPLER_OBJECT_SIZE_DWORD)
63typedef struct __hip_texture* hipTextureObject_t;
68enum hipTextureAddressMode {
69 hipAddressModeWrap = 0,
70 hipAddressModeClamp = 1,
71 hipAddressModeMirror = 2,
72 hipAddressModeBorder = 3
78enum hipTextureFilterMode { hipFilterModePoint = 0, hipFilterModeLinear = 1 };
83enum hipTextureReadMode { hipReadModeElementType = 0, hipReadModeNormalizedFloat = 1 };
90 enum hipTextureReadMode readMode;
91 enum hipTextureFilterMode filterMode;
92 enum hipTextureAddressMode addressMode[3];
95 unsigned int maxAnisotropy;
96 enum hipTextureFilterMode mipmapFilterMode;
97 float mipmapLevelBias;
98 float minMipmapLevelClamp;
99 float maxMipmapLevelClamp;
101 hipTextureObject_t textureObject;
103 enum hipArray_Format format;
110 enum hipTextureAddressMode addressMode[3];
111 enum hipTextureFilterMode filterMode;
112 enum hipTextureReadMode readMode;
114 float borderColor[4];
115 int normalizedCoords;
116 unsigned int maxAnisotropy;
117 enum hipTextureFilterMode mipmapFilterMode;
118 float mipmapLevelBias;
119 float minMipmapLevelClamp;
120 float maxMipmapLevelClamp;
131#define __HIP_TEXTURE_ATTRIB __attribute__((device_builtin_texture_type))
133#define __HIP_TEXTURE_ATTRIB
138template <
class T,
int texType = hipTextureType1D,
139 enum hipTextureReadMode mode = hipReadModeElementType>
141 texture(
int norm = 0,
enum hipTextureFilterMode fMode = hipFilterModePoint,
142 enum hipTextureAddressMode aMode = hipAddressModeClamp) {
146 addressMode[0] = aMode;
147 addressMode[1] = aMode;
148 addressMode[2] = aMode;
149 channelDesc = hipCreateChannelDesc<T>();
151 textureObject =
nullptr;
154 minMipmapLevelClamp = 0;
155 maxMipmapLevelClamp = 0;
158 texture(
int norm,
enum hipTextureFilterMode fMode,
enum hipTextureAddressMode aMode,
163 addressMode[0] = aMode;
164 addressMode[1] = aMode;
165 addressMode[2] = aMode;
168 textureObject =
nullptr;
171 minMipmapLevelClamp = 0;
172 maxMipmapLevelClamp = 0;
179#error("Must define exactly one of __HIP_PLATFORM_AMD__ or __HIP_PLATFORM_NVIDIA__");
Definition texture_types.h:109
Definition texture_types.h:88