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

Commit 072671f0 authored by Jason Sams's avatar Jason Sams Committed by Android (Google) Code Review
Browse files

Merge "Fix debugging support for float vectors and add matrix debugging."

parents 2032d036 d64188a4
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);