livoxGen1:OpenCL kernels: add debug printfs
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
// Debug macro: define DEBUG_COLLATE_DGRAMS to enable printf statements
|
||||
#define DEBUG_COLLATE_DGRAMS
|
||||
#ifdef DEBUG_COLLATE_DGRAMS
|
||||
#define DBG_PRINTF(...) printf(__VA_ARGS__)
|
||||
#else
|
||||
#define DBG_PRINTF(...)
|
||||
#endif
|
||||
|
||||
// Helper function to read a little-endian int32 from unaligned memory
|
||||
inline int readInt32LE(__global uchar* ptr)
|
||||
{
|
||||
@@ -57,12 +65,21 @@ __kernel void collate(
|
||||
int z_mm = readInt32LE(pointPtr + 8);
|
||||
uchar reflectivity = pointPtr[12];
|
||||
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: x_mm=%d, y_mm=%d, z_mm=%d, reflectivity=%d\n",
|
||||
slotIndex, i, x_mm, y_mm, z_mm, reflectivity);
|
||||
// Convert to PointXYZI (meters, float)
|
||||
float x = (float)x_mm / 1000.0f;
|
||||
float y = (float)y_mm / 1000.0f;
|
||||
float z = (float)z_mm / 1000.0f;
|
||||
float intensity = (float)reflectivity;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, i, intensity);
|
||||
}
|
||||
|
||||
// Write to collation buffer
|
||||
uint offset = collationBaseOffset + (i * FLOATS_PER_POINT);
|
||||
collation[offset + 0] = x;
|
||||
@@ -86,12 +103,21 @@ __kernel void collate(
|
||||
uchar reflectivity = pointPtr[12];
|
||||
// tag at offset 13 is ignored
|
||||
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: x_mm=%d, y_mm=%d, z_mm=%d, reflectivity=%d\n",
|
||||
slotIndex, i, x_mm, y_mm, z_mm, reflectivity);
|
||||
// Convert to PointXYZI (meters, float)
|
||||
float x = (float)x_mm / 1000.0f;
|
||||
float y = (float)y_mm / 1000.0f;
|
||||
float z = (float)z_mm / 1000.0f;
|
||||
float intensity = (float)reflectivity;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, i, intensity);
|
||||
}
|
||||
|
||||
// Write to collation buffer
|
||||
uint offset = collationBaseOffset + (i * FLOATS_PER_POINT);
|
||||
collation[offset + 0] = x;
|
||||
@@ -124,6 +150,13 @@ __kernel void collate(
|
||||
float z1 = (float)z1_mm / 1000.0f;
|
||||
float intensity1 = (float)reflectivity1;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity1 > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, pointIndex, intensity1);
|
||||
}
|
||||
|
||||
uint offset1 = collationBaseOffset
|
||||
+ (pointIndex * FLOATS_PER_POINT);
|
||||
collation[offset1 + 0] = x1;
|
||||
@@ -144,6 +177,13 @@ __kernel void collate(
|
||||
float z2 = (float)z2_mm / 1000.0f;
|
||||
float intensity2 = (float)reflectivity2;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity2 > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, pointIndex, intensity2);
|
||||
}
|
||||
|
||||
uint offset2 = collationBaseOffset
|
||||
+ (pointIndex * FLOATS_PER_POINT);
|
||||
collation[offset2 + 0] = x2;
|
||||
@@ -177,6 +217,13 @@ __kernel void collate(
|
||||
float z1 = (float)z1_mm / 1000.0f;
|
||||
float intensity1 = (float)reflectivity1;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity1 > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, pointIndex, intensity1);
|
||||
}
|
||||
|
||||
uint offset1 = collationBaseOffset
|
||||
+ (pointIndex * FLOATS_PER_POINT);
|
||||
collation[offset1 + 0] = x1;
|
||||
@@ -197,6 +244,13 @@ __kernel void collate(
|
||||
float z2 = (float)z2_mm / 1000.0f;
|
||||
float intensity2 = (float)reflectivity2;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity2 > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, pointIndex, intensity2);
|
||||
}
|
||||
|
||||
uint offset2 = collationBaseOffset
|
||||
+ (pointIndex * FLOATS_PER_POINT);
|
||||
collation[offset2 + 0] = x2;
|
||||
@@ -217,6 +271,13 @@ __kernel void collate(
|
||||
float z3 = (float)z3_mm / 1000.0f;
|
||||
float intensity3 = (float)reflectivity3;
|
||||
|
||||
// Print intensity if above 5
|
||||
if (intensity3 > 5.0f)
|
||||
{
|
||||
DBG_PRINTF("collate[slot=%u,point=%u]: intensity=%.1f\n",
|
||||
slotIndex, pointIndex, intensity3);
|
||||
}
|
||||
|
||||
uint offset3 = collationBaseOffset
|
||||
+ (pointIndex * FLOATS_PER_POINT);
|
||||
collation[offset3 + 0] = x3;
|
||||
|
||||
Reference in New Issue
Block a user