feat: Add texture obj init logic for cuda 12.3 support

This commit is contained in:
kradchen
2025-01-06 16:07:27 +08:00
parent f29e128c31
commit a248ae64e5

View File

@@ -86,6 +86,53 @@ SAFTHandler::SAFTHandler(int deviceId, ///< CUDA ID of th
IMAGE_RESOLUTION_FACTOR = 1 / IMAGE_RESOLUTION; // Auflösung im OutputVolumen
SOS_RESOLUTION_FACTOR = 1 / SOS_RESOLUTION; // Auflösung im SoS-Volumen
memset(&resDesc, 0, sizeof(resDesc));
resDesc.resType = cudaResourceTypeArray;
memset(&texDesc, 0, sizeof(texDesc));
texDesc.addressMode[0] = cudaAddressModeClamp;
texDesc.addressMode[1] = cudaAddressModeClamp;
texDesc.addressMode[2] = cudaAddressModeClamp;
switch (SAFT_VARIANT[SAFT_VARIANT_3DVolumeInterpolationAtReconstruction]) {
case 0:
texDesc.filterMode = cudaFilterModePoint;
break;
case 1:
texDesc.filterMode = cudaFilterModeLinear;
break;
}
texDesc.readMode = cudaReadModeElementType;
texDesc.normalizedCoords = 0;
memset(&texDescSosAttField, 0, sizeof(texDescSosAttField));
texDescSosAttField.addressMode[0] = cudaAddressModeClamp;
texDescSosAttField.addressMode[1] = cudaAddressModeClamp;
texDescSosAttField.addressMode[2] = cudaAddressModeClamp;
if (SAFT_VARIANT[SAFT_VARIANT_3DVolumeInterpolationAtPreprocessing] == 1)
{
texDescSosAttField.filterMode = cudaFilterModeLinear; // Lineare Interpolation
}
else
{
texDescSosAttField.filterMode = cudaFilterModePoint; // Nearest Neighbor
}
texDescSosAttField.readMode = cudaReadModeElementType;
texDescSosAttField.normalizedCoords = 0;
memset(&texDesc2D, 0, sizeof(texDesc2D));
texDesc2D.addressMode[0] = cudaAddressModeBorder;
texDesc2D.addressMode[1] = cudaAddressModeBorder;
if (SAFT_VARIANT[SAFT_VARIANT_AscanInterpolation] == 1)
{
texDesc2D.filterMode = cudaFilterModeLinear; // Lineare Interpolation
}
else
{
texDesc2D.filterMode = cudaFilterModePoint; // Nearest Neighbor
}
texDesc2D.readMode = cudaReadModeElementType;
texDesc2D.normalizedCoords = 0;
}
/**