include/hip/texture_types.h Source File

include/hip/texture_types.h Source File#

HIP Runtime API Reference: include/hip/texture_types.h Source File
texture_types.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#ifndef HIP_INCLUDE_HIP_TEXTURE_TYPES_H
8#define HIP_INCLUDE_HIP_TEXTURE_TYPES_H
9
10#if defined(__clang__)
11#pragma clang diagnostic push
12#pragma clang diagnostic ignored "-Wreserved-identifier"
13#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
14#pragma clang diagnostic ignored "-Wc++98-compat"
15#endif
16
17#if !defined(__HIPCC_RTC__)
18#include <hip/hip_common.h>
19#endif
20
21#if !defined(__HIP_PLATFORM_AMD__) && defined(__HIP_PLATFORM_NVIDIA__)
22#include "texture_types.h"
23#elif defined(__HIP_PLATFORM_AMD__) && !defined(__HIP_PLATFORM_NVIDIA__)
24/*******************************************************************************
25 * *
26 * *
27 * *
28 *******************************************************************************/
29#if !defined(__HIPCC_RTC__)
31#include <hip/driver_types.h>
32#endif // !defined(__HIPCC_RTC__)
33
34#define hipTextureType1D 0x01
35#define hipTextureType2D 0x02
36#define hipTextureType3D 0x03
37#define hipTextureTypeCubemap 0x0C
38#define hipTextureType1DLayered 0xF1
39#define hipTextureType2DLayered 0xF2
40#define hipTextureTypeCubemapLayered 0xFC
41
45#define HIP_IMAGE_OBJECT_SIZE_DWORD 12
46#define HIP_SAMPLER_OBJECT_SIZE_DWORD 8
47#define HIP_SAMPLER_OBJECT_OFFSET_DWORD HIP_IMAGE_OBJECT_SIZE_DWORD
48#define HIP_TEXTURE_OBJECT_SIZE_DWORD (HIP_IMAGE_OBJECT_SIZE_DWORD + HIP_SAMPLER_OBJECT_SIZE_DWORD)
49
53struct __hip_texture;
54typedef struct __hip_texture* hipTextureObject_t;
55
65
70
75
79typedef struct textureReference {
81 enum hipTextureReadMode readMode; // used only for driver API's
83 enum hipTextureAddressMode addressMode[3]; // Texture address mode for up to 3 dimensions
85 int sRGB; // Perform sRGB->linear conversion during texture read
86 unsigned int maxAnisotropy; // Limit to the anisotropy ratio
91
96
100typedef struct hipTextureDesc {
101 enum hipTextureAddressMode addressMode[3]; // Texture address mode for up to 3 dimensions
104 int sRGB; // Perform sRGB->linear conversion during texture read
105 float borderColor[4];
107 unsigned int maxAnisotropy;
113
114#if __cplusplus
115
116/*******************************************************************************
117 * *
118 * *
119 * *
120 *******************************************************************************/
121#if __HIP__
122#define __HIP_TEXTURE_ATTRIB __attribute__((device_builtin_texture_type))
123#else
124#define __HIP_TEXTURE_ATTRIB
125#endif
126
128
129template <class T, int texType = hipTextureType1D,
134 normalized = norm;
135 readMode = mode;
136 filterMode = fMode;
137 addressMode[0] = aMode;
138 addressMode[1] = aMode;
139 addressMode[2] = aMode;
140 channelDesc = hipCreateChannelDesc<T>();
141 sRGB = 0;
142 textureObject = nullptr;
143 maxAnisotropy = 0;
144 mipmapLevelBias = 0;
145 minMipmapLevelClamp = 0;
146 maxMipmapLevelClamp = 0;
147 }
148
149 texture(int norm, enum hipTextureFilterMode fMode, enum hipTextureAddressMode aMode,
150 struct hipChannelFormatDesc desc) {
151 normalized = norm;
152 readMode = mode;
153 filterMode = fMode;
154 addressMode[0] = aMode;
155 addressMode[1] = aMode;
156 addressMode[2] = aMode;
157 channelDesc = desc;
158 sRGB = 0;
159 textureObject = nullptr;
160 maxAnisotropy = 0;
161 mipmapLevelBias = 0;
162 minMipmapLevelClamp = 0;
163 maxMipmapLevelClamp = 0;
164 }
165};
166
167#endif /* __cplusplus */
168
169#else
170#error ("Must define exactly one of __HIP_PLATFORM_AMD__ or __HIP_PLATFORM_NVIDIA__");
171#endif
172
173#if defined(__clang__)
174#pragma clang diagnostic pop
175#endif
176
177#endif
const struct texture< T, dim, readMode > const void size_t int enum hipTextureReadMode readMode const struct texture< T, dim, readMode > const void const struct hipChannelFormatDesc & desc
Definition hip_runtime_api.h:10157
hipArray_Format
Definition driver_types.h:64
Definition driver_types.h:43
Definition texture_types.h:100
float minMipmapLevelClamp
Definition texture_types.h:110
float mipmapLevelBias
Definition texture_types.h:109
float maxMipmapLevelClamp
Definition texture_types.h:111
enum hipTextureFilterMode filterMode
Definition texture_types.h:102
enum hipTextureReadMode readMode
Definition texture_types.h:103
float borderColor[4]
Definition texture_types.h:105
enum hipTextureFilterMode mipmapFilterMode
Definition texture_types.h:108
int sRGB
Definition texture_types.h:104
int normalizedCoords
Definition texture_types.h:106
unsigned int maxAnisotropy
Definition texture_types.h:107
enum hipTextureAddressMode addressMode[3]
Definition texture_types.h:101
Definition texture_types.h:131
texture(int norm=0, enum hipTextureFilterMode fMode=hipFilterModePoint, enum hipTextureAddressMode aMode=hipAddressModeClamp)
Definition texture_types.h:132
texture(int norm, enum hipTextureFilterMode fMode, enum hipTextureAddressMode aMode, struct hipChannelFormatDesc desc)
Definition texture_types.h:149
Definition texture_types.h:79
int sRGB
Definition texture_types.h:85
hipTextureObject_t textureObject
Definition texture_types.h:92
float minMipmapLevelClamp
Definition texture_types.h:89
enum hipTextureFilterMode mipmapFilterMode
Definition texture_types.h:87
enum hipTextureReadMode readMode
Definition texture_types.h:81
enum hipTextureAddressMode addressMode[3]
Definition texture_types.h:83
enum hipTextureFilterMode filterMode
Definition texture_types.h:82
int normalized
Definition texture_types.h:80
unsigned int maxAnisotropy
Definition texture_types.h:86
int numChannels
Definition texture_types.h:93
float maxMipmapLevelClamp
Definition texture_types.h:90
enum hipArray_Format format
Definition texture_types.h:94
float mipmapLevelBias
Definition texture_types.h:88
struct hipChannelFormatDesc channelDesc
Definition texture_types.h:84
struct __hip_texture * hipTextureObject_t
Definition texture_types.h:54
hipTextureReadMode
Definition texture_types.h:74
@ hipReadModeElementType
Definition texture_types.h:74
@ hipReadModeNormalizedFloat
Definition texture_types.h:74
#define hipTextureType1D
Definition texture_types.h:34
textureReference * hipTexRef
Definition texture_types.h:127
#define __HIP_TEXTURE_ATTRIB
Definition texture_types.h:124
hipTextureAddressMode
Definition texture_types.h:59
@ hipAddressModeMirror
Definition texture_types.h:62
@ hipAddressModeBorder
Definition texture_types.h:63
@ hipAddressModeWrap
Definition texture_types.h:60
@ hipAddressModeClamp
Definition texture_types.h:61
hipTextureFilterMode
Definition texture_types.h:69
@ hipFilterModePoint
Definition texture_types.h:69
@ hipFilterModeLinear
Definition texture_types.h:69