// Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. | |
// | |
// NVIDIA CORPORATION and its licensors retain all intellectual property | |
// and proprietary rights in and to this software, related documentation | |
// and any modifications thereto. Any use, reproduction, disclosure or | |
// distribution of this software and related documentation without an express | |
// license agreement from NVIDIA CORPORATION is strictly prohibited. | |
//------------------------------------------------------------------------ | |
// Constants and helpers. | |
//------------------------------------------------------------------------ | |
// CUDA kernel params. | |
struct InterpolateKernelParams | |
{ | |
const int* tri; // Incoming triangle buffer. | |
const float* attr; // Incoming attribute buffer. | |
const float* rast; // Incoming rasterizer output buffer. | |
const float* rastDB; // Incoming rasterizer output buffer for bary derivatives. | |
const float* dy; // Incoming attribute gradients. | |
const float* dda; // Incoming attr diff gradients. | |
float* out; // Outgoing interpolated attributes. | |
float* outDA; // Outgoing texcoord major axis lengths. | |
float* gradAttr; // Outgoing attribute gradients. | |
float* gradRaster; // Outgoing rasterizer gradients. | |
float* gradRasterDB; // Outgoing rasterizer bary diff gradients. | |
int numTriangles; // Number of triangles. | |
int numVertices; // Number of vertices. | |
int numAttr; // Number of total vertex attributes. | |
int numDiffAttr; // Number of attributes to differentiate. | |
int width; // Image width. | |
int height; // Image height. | |
int depth; // Minibatch size. | |
int attrBC; // 0=normal, 1=attr is broadcast. | |
int instance_mode; // 0=normal, 1=instance mode. | |
int diff_attrs_all; // 0=normal, 1=produce pixel differentials for all attributes. | |
int diffAttrs[IP_MAX_DIFF_ATTRS]; // List of attributes to differentiate. | |
}; | |
//------------------------------------------------------------------------ | |