CUDA常见函数(二):纹理参考管理

CUDA-Runtime-API 纹理参考管理

cudaCreateChannelDesc

使用方法

// Allocate CUDA array in device memory
	cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc<float>();

定义

  struct cudaChannelFormatDesc {
          int x, y, z, w;
          enum cudaChannelFormatKind f;
        };
__host__​cudaChannelFormatDesc cudaCreateChannelDesc ( int  x, int  y, int  z, int  w, cudaChannelFormatKind f )

cudaChannelFormatKind

各通道数据类型设置

cudaChannelFormatKindSigned = 0
Signed channel format
cudaChannelFormatKindUnsigned = 1
Unsigned channel format
cudaChannelFormatKindFloat = 2
Float channel format
cudaChannelFormatKindNone = 3
No channel format

cudaMallocArray

使用方法

cudaArray* cuArray;
cudaMallocArray(&cuArray, &channelDesc, y, x);

依照cudaCreateChannelDesc的设定,在device上分配一个数组。

cudaTextureDesc结构体

定义如下:

        struct cudaTextureDesc {
                  enum cudaTextureAddressMode 
                  addressMode[3];
                  enum cudaTextureFilterMode  
                  filterMode;
                  enum cudaTextureReadMode    
                  readMode;
                  int                         sRGB;
                  int                         normalizedCoords;
                  unsigned int                maxAnisotropy;
                  enum cudaTextureFilterMode  
                  mipmapFilterMode;
                  float                       mipmapLevelBias;
                  float                       minMipmapLevelClamp;
                  float                       maxMipmapLevelClamp;
              };

cudaTextureDesc::addressMode 纹理寻址模式

详见此篇

enum cudaTextureAddressMode {
                  cudaAddressModeWrap   = 0, // Wrapping address mode
                  cudaAddressModeClamp  = 1, // Clamp to edge address mode
                  cudaAddressModeMirror = 2, // Mirror address mode
                  cudaAddressModeBorder = 3  // Border address mode
              };

cudaTextureDesc::filterMode

从纹理获取时要使用的过滤模式

enum cudaTextureFilterMode {
                  cudaFilterModePoint  = 0,
                  cudaFilterModeLinear = 1
              };

cudaTextureDesc :: readMode

指定是否应将整数数据转换为浮点数。cudaTextureReadMode定义为:

 enum cudaTextureReadMode {
                  cudaReadModeElementType     = 0,
                  cudaReadModeNormalizedFloat = 1
              };

cudaTextureDesc::normalizedCoords

是否将纹理坐标标准化

cudaBindTextureToArray

将数据与纹理绑定

一个彩蛋

theForger’s Win32 API Programming Tutorial

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值