Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d64188a4 authored by Jason Sams's avatar Jason Sams
Browse files

Fix debugging support for float vectors and add matrix debugging.

Change-Id: Ie1ee3764a32889f3c39b923186f14af74ecb772f
parent 41d9825b
Loading
Loading
Loading
Loading
+28 −12
Original line number Diff line number Diff line
@@ -267,18 +267,31 @@ const void * SC_getElementAtXYZ(RsAllocation va, uint32_t x, uint32_t y, uint32_
static void SC_debugF(const char *s, float f) {
    LOGE("%s %f, 0x%08x", s, f, *((int *) (&f)));
}
static void SC_debugFv2(const char *s, rsvF_2 fv) {
    float *f = (float *)&fv;
    LOGE("%s {%f, %f}", s, f[0], f[1]);
static void SC_debugFv2(const char *s, float f1, float f2) {
    LOGE("%s {%f, %f}", s, f1, f2);
}
static void SC_debugFv3(const char *s, rsvF_4 fv) {
    float *f = (float *)&fv;
    LOGE("%s {%f, %f, %f}", s, f[0], f[1], f[2]);
static void SC_debugFv3(const char *s, float f1, float f2, float f3) {
    LOGE("%s {%f, %f, %f}", s, f1, f2, f3);
}
static void SC_debugFv4(const char *s, rsvF_4 fv) {
    float *f = (float *)&fv;
    LOGE("%s {%f, %f, %f, %f}", s, f[0], f[1], f[2], f[3]);
static void SC_debugFv4(const char *s, float f1, float f2, float f3, float f4) {
    LOGE("%s {%f, %f, %f, %f}", s, f1, f2, f3, f4);
}
static void SC_debugFM4v4(const char *s, const float *f) {
    LOGE("%s {%f, %f, %f, %f", s, f[0], f[4], f[8], f[12]);
    LOGE("%s  %f, %f, %f, %f", s, f[1], f[5], f[9], f[13]);
    LOGE("%s  %f, %f, %f, %f", s, f[2], f[6], f[10], f[14]);
    LOGE("%s  %f, %f, %f, %f}", s, f[3], f[7], f[11], f[15]);
}
static void SC_debugFM3v3(const char *s, const float *f) {
    LOGE("%s {%f, %f, %f", s, f[0], f[3], f[6]);
    LOGE("%s  %f, %f, %f", s, f[1], f[4], f[7]);
    LOGE("%s  %f, %f, %f}",s, f[2], f[5], f[8]);
}
static void SC_debugFM2v2(const char *s, const float *f) {
    LOGE("%s {%f, %f", s, f[0], f[2]);
    LOGE("%s  %f, %f}",s, f[1], f[3]);
}

static void SC_debugI32(const char *s, int32_t i) {
    LOGE("%s %i  0x%x", s, i, i);
}
@@ -394,9 +407,12 @@ static ScriptCState::SymbolTable_t gSyms[] = {

    // Debug
    { "_Z7rsDebugPKcf", (void *)&SC_debugF },
    { "_Z7rsDebugPKcDv2_f", (void *)&SC_debugFv2 },
    { "_Z7rsDebugPKcDv3_f", (void *)&SC_debugFv3 },
    { "_Z7rsDebugPKcDv4_f", (void *)&SC_debugFv4 },
    { "_Z7rsDebugPKcff", (void *)&SC_debugFv2 },
    { "_Z7rsDebugPKcfff", (void *)&SC_debugFv3 },
    { "_Z7rsDebugPKcffff", (void *)&SC_debugFv4 },
    { "_Z7rsDebugPKcPK12rs_matrix4x4", (void *)&SC_debugFM4v4 },
    { "_Z7rsDebugPKcPK12rs_matrix3x3", (void *)&SC_debugFM3v3 },
    { "_Z7rsDebugPKcPK12rs_matrix2x2", (void *)&SC_debugFM2v2 },
    { "_Z7rsDebugPKci", (void *)&SC_debugI32 },
    { "_Z7rsDebugPKcj", (void *)&SC_debugU32 },
    { "_Z7rsDebugPKcPKv", (void *)&SC_debugP },
+9 −0
Original line number Diff line number Diff line
#ifndef __RS_CORE_RSH__
#define __RS_CORE_RSH__

static void __attribute__((overloadable)) rsDebug(const char *s, float2 v) {
    rsDebug(s, v.x, v.y);
}
static void __attribute__((overloadable)) rsDebug(const char *s, float3 v) {
    rsDebug(s, v.x, v.y, v.z);
}
static void __attribute__((overloadable)) rsDebug(const char *s, float4 v) {
    rsDebug(s, v.x, v.y, v.z, v.w);
}

static uchar4 __attribute__((overloadable)) rsPackColorTo8888(float r, float g, float b)
{
+25 −19
Original line number Diff line number Diff line
#ifndef __RS_MATH_RSH__
#define __RS_MATH_RSH__

// Debugging, print to the LOG a description string and a value.
extern void __attribute__((overloadable))
    rsDebug(const char *, float);
extern void __attribute__((overloadable))
    rsDebug(const char *, float, float);
extern void __attribute__((overloadable))
    rsDebug(const char *, float, float, float);
extern void __attribute__((overloadable))
    rsDebug(const char *, float, float, float, float);
extern void __attribute__((overloadable))
    rsDebug(const char *, const rs_matrix4x4 *);
extern void __attribute__((overloadable))
    rsDebug(const char *, const rs_matrix3x3 *);
extern void __attribute__((overloadable))
    rsDebug(const char *, const rs_matrix2x2 *);
extern void __attribute__((overloadable))
    rsDebug(const char *, int);
extern void __attribute__((overloadable))
    rsDebug(const char *, uint);
extern void __attribute__((overloadable))
    rsDebug(const char *, const void *);
#define RS_DEBUG(a) rsDebug(#a, a)
#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)


#include "rs_cl.rsh"
#include "rs_core.rsh"

@@ -31,25 +56,6 @@ extern const void * __attribute__((overloadable))
extern const void * __attribute__((overloadable))
    rsGetElementAt(rs_allocation, uint32_t x, uint32_t y, uint32_t z);


// Debugging, print to the LOG a description string and a value.
extern void __attribute__((overloadable))
    rsDebug(const char *, float);
extern void __attribute__((overloadable))
    rsDebug(const char *, float2);
extern void __attribute__((overloadable))
    rsDebug(const char *, float3);
extern void __attribute__((overloadable))
    rsDebug(const char *, float4);
extern void __attribute__((overloadable))
    rsDebug(const char *, int);
extern void __attribute__((overloadable))
    rsDebug(const char *, uint);
extern void __attribute__((overloadable))
    rsDebug(const char *, const void *);
#define RS_DEBUG(a) rsDebug(#a, a)
#define RS_DEBUG_MARKER rsDebug(__FILE__, __LINE__)

// Return a random value between 0 (or min_value) and max_malue.
extern int __attribute__((overloadable))
    rsRand(int max_value);