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> 39 #endif // !defined(__HIPCC_RTC__) 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) 63 typedef struct __hip_texture* hipTextureObject_t;
68 enum hipTextureAddressMode {
69 hipAddressModeWrap = 0,
70 hipAddressModeClamp = 1,
71 hipAddressModeMirror = 2,
72 hipAddressModeBorder = 3
78 enum hipTextureFilterMode { hipFilterModePoint = 0, hipFilterModeLinear = 1 };
83 enum 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 138 template <
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:88
Definition: texture_types.h:109