Add rsDebug(msg, float2-4)
Change-Id: I6e0594d1fa5ed9ae27140334b6dce058aeb38f4e
diff --git a/api/rs_debug.spec b/api/rs_debug.spec
index 4f91a68..dcafe20 100644
--- a/api/rs_debug.spec
+++ b/api/rs_debug.spec
@@ -41,7 +41,6 @@
function: rsDebug
version: 17
w: 2, 3, 4
-# TODO We're not doing it for f64?
t: i32, u32, i64, u64
ret: void
arg: const char* message
@@ -50,6 +49,16 @@
end:
function: rsDebug
+version: 23
+w: 2, 3, 4
+t: f64
+ret: void
+arg: const char* message
+arg: #2#1 a
+test: none
+end:
+
+function: rsDebug
w: 1, 2, 3, 4
ret: void
arg: const char* message
diff --git a/driver/rsdRuntimeStubs.cpp b/driver/rsdRuntimeStubs.cpp
index aef6448..0fa30d1 100644
--- a/driver/rsdRuntimeStubs.cpp
+++ b/driver/rsdRuntimeStubs.cpp
@@ -1962,6 +1962,15 @@
static void SC_debugD(const char *s, double d) {
ALOGD("%s %f, 0x%08llx", s, d, *((long long *) (&d)));
}
+static void SC_debugD2(const char *s, double2 d) {
+ ALOGD("%s {%f, %f}", s, d.x, d.y);
+}
+static void SC_debugD3(const char *s, double3 d) {
+ ALOGD("%s {%f, %f, %f}", s, d.x, d.y, d.z);
+}
+static void SC_debugD4(const char *s, double4 d) {
+ ALOGD("%s {%f, %f, %f, %f}", s, d.x, d.y, d.z, d.w);
+}
static void SC_debugFM4v4(const char *s, const float *f) {
ALOGD("%s {%f, %f, %f, %f", s, f[0], f[4], f[8], f[12]);
ALOGD("%s %f, %f, %f, %f", s, f[1], f[5], f[9], f[13]);
@@ -2124,6 +2133,18 @@
SC_debugD(s, d);
}
+void rsDebug(const char *s, const double2 *d) {
+ SC_debugD2(s, *d);
+}
+
+void rsDebug(const char *s, const double3 *d) {
+ SC_debugD3(s, *d);
+}
+
+void rsDebug(const char *s, const double4 *d) {
+ SC_debugD4(s, *d);
+}
+
void rsDebug(const char *s, const rs_matrix4x4 *m) {
SC_debugFM4v4(s, (float *) m);
}
diff --git a/java/tests/RsTest/src/com/android/rs/test/rsdebug.rs b/java/tests/RsTest/src/com/android/rs/test/rsdebug.rs
index 68ac168..199816b 100644
--- a/java/tests/RsTest/src/com/android/rs/test/rsdebug.rs
+++ b/java/tests/RsTest/src/com/android/rs/test/rsdebug.rs
@@ -6,6 +6,9 @@
float3 float3Test = {3.99f, 13.99f, 23.99f};
float4 float4Test = {4.99f, 14.99f, 24.99f, 34.99f};
double doubleTest = 2.05;
+double2 double2Test = {2.05, 12.05};
+double3 double3Test = {3.05, 13.05, 23.05};
+double4 double4Test = {4.05, 14.05, 24.05, 34.05};
char charTest = -8;
short shortTest = -16;
int intTest = -32;
@@ -30,6 +33,9 @@
rsDebug("float3Test", float3Test);
rsDebug("float4Test", float4Test);
rsDebug("doubleTest", doubleTest);
+ rsDebug("double2Test", double2Test);
+ rsDebug("double3Test", double3Test);
+ rsDebug("double4Test", double4Test);
rsDebug("charTest", charTest);
rsDebug("shortTest", shortTest);
rsDebug("intTest", intTest);
diff --git a/scriptc/rs_debug.rsh b/scriptc/rs_debug.rsh
index 348c598..f75a4cf 100644
--- a/scriptc/rs_debug.rsh
+++ b/scriptc/rs_debug.rsh
@@ -112,6 +112,21 @@
rsDebug(const char* message, ulong4 a);
#endif
+#if (defined(RS_VERSION) && (RS_VERSION >= 23))
+extern void __attribute__((overloadable))
+ rsDebug(const char* message, double2 a);
+#endif
+
+#if (defined(RS_VERSION) && (RS_VERSION >= 23))
+extern void __attribute__((overloadable))
+ rsDebug(const char* message, double3 a);
+#endif
+
+#if (defined(RS_VERSION) && (RS_VERSION >= 23))
+extern void __attribute__((overloadable))
+ rsDebug(const char* message, double4 a);
+#endif
+
extern void __attribute__((overloadable))
rsDebug(const char* message, float a);