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

Commit cc77841f authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 2541

* changes:
  Turn on ACC script test. (It works!)
parents a3cfda3b 8191d0f6
Loading
Loading
Loading
Loading
+23 −26
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
#include "../RenderScript.h"
#include "../RenderScriptEnv.h"

// #define USE_ACC
#define USE_ACC

#ifdef USE_ACC
#include "acc/acc.h"
@@ -50,7 +50,7 @@ extern "C" void test_script(void *con, const rsc_FunctionTable *ft, uint32_t lau
static const char* TEST_SCRIPT = ""
        "// Fountain test script\n"
        "\n"
        "void main(con, ft, launchID) {\n"
        "main(con, ft, launchID) {\n"
        "    int count, touch, x, y, rate, maxLife, lifeShift;\n"
        "    int life;\n"
        "    int ct, ct2;\n"
@@ -62,10 +62,10 @@ static const char* TEST_SCRIPT = ""
        "    int posx,posy;\n"
        "    int c;\n"
        "\n"
        "    count = loadEnvI32(con, 0, 1);\n"
        "    touch = loadEnvI32(con, 0, 2);\n"
        "    x = loadEnvI32(ft, con, 0, 3);\n"
        "    y = 480 - loadEnvI32(con, 0, 4);\n"
        "    count = loadI32(con, 0, 1);\n"
        "    touch = loadI32(con, 0, 2);\n"
        "    x = loadI32(con, 0, 3);\n"
        "    y = 480 - loadI32(con, 0, 4);\n"
        "\n"
        "    rate = 4;\n"
        "    maxLife = (count / rate) - 1;\n"
@@ -73,35 +73,35 @@ static const char* TEST_SCRIPT = ""
        "    {\n"
        "        life = maxLife;\n"
        "        while (life > 255) {\n"
        "            life >>= 1;\n"
        "            life = life >> 1;\n"
        "            lifeShift ++;\n"
        "        }\n"
        "    }\n"
        "\n"
        "    if (touch) {\n"
        "        newPart = loadEnvI32(con, 2, 0);\n"
        "        newPart = loadI32(con, 2, 0);\n"
        "        for (ct2=0; ct2<rate; ct2++) {\n"
        "            dx = scriptRand(con, 0x10000) - 0x8000;\n"
        "            dy = scriptRand(con, 0x10000) - 0x8000;\n"
        "\n"
        "            idx = newPart * 5 + 1;\n"
        "            storeEnvI32(con, 2, idx, dx);\n"
        "            storeEnvI32(con, 2, idx + 1, dy);\n"
        "            storeEnvI32(con, 2, idx + 2, maxLife);\n"
        "            storeEnvI32(con, 2, idx + 3, x << 16);\n"
        "            storeEnvI32(con, 2, idx + 4, y << 16);\n"
        "            storeI32(con, 2, idx, dx);\n"
        "            storeI32(con, 2, idx + 1, dy);\n"
        "            storeI32(con, 2, idx + 2, maxLife);\n"
        "            storeI32(con, 2, idx + 3, x << 16);\n"
        "            storeI32(con, 2, idx + 4, y << 16);\n"
        "\n"
        "            newPart++;\n"
        "            if (newPart >= count) {\n"
        "                newPart = 0;\n"
        "            }\n"
        "        }\n"
        "        storeEnvI32(con, 2, 0, newPart);\n"
        "        storeI32(con, 2, 0, newPart);\n"
        "    }\n"
        "\n"
        "    // Emulate intrinsic perf...\n"
        "    partPtr = loadEnvVp(con, 2, 4);\n"
        "    vertPtr = loadEnvVp(con, 1, 0);\n"
        "    partPtr = loadVp(con, 2, 4);\n"
        "    vertPtr = loadVp(con, 1, 0);\n"
        "\n"
        "    drawCount = 0;\n"
        "    for (ct=0; ct < count; ct++) {\n"
@@ -130,7 +130,7 @@ static const char* TEST_SCRIPT = ""
        "                * (int* )(vertPtr + 28) = posx - 0x10000; //storeEnvI32(con, 1, dstIdx + 7, posx + 0x0800);\n"
        "                * (int* )(vertPtr + 32) = posy + dy * 4; //storeEnvI32(con, 1, dstIdx + 8, posy + 0x10000);\n"
        "\n"
        "                vertPtr += 36;\n"
        "                vertPtr = vertPtr + 36;\n"
        "                drawCount ++;\n"
        "            } else {\n"
        "                if (dy < 0) {\n"
@@ -138,9 +138,9 @@ static const char* TEST_SCRIPT = ""
        "                }\n"
        "            }\n"
        "\n"
        "            posx += dx;\n"
        "            posy += dy;\n"
        "            dy -= 0x400;\n"
        "            posx = posx + dx;\n"
        "            posy = posy + dy;\n"
        "            dy = dy - 0x400;\n"
        "            life --;\n"
        "\n"
        "            * (int* )(partPtr + 0) = dx; //storeEnvI32(con, 2, srcIdx, dx);\n"
@@ -150,12 +150,11 @@ static const char* TEST_SCRIPT = ""
        "            * (int* )(partPtr + 16) = posy; //storeEnvI32(con, 2, srcIdx + 4, posy);\n"
        "        }\n"
        "\n"
        "        partPtr += 20;\n"
        "        partPtr = partPtr + 20;\n"
        "    }\n"
        "\n"
        "    drawTriangleArray(con, loadEnvI32(con, 0, 5), drawCount);\n"
        "}\n"
        "";
        "    drawTriangleArray(con, loadI32(con, 0, 5), drawCount);\n"
        "}\n";

typedef void (*ScriptEntry)(void *con, const rsc_FunctionTable *ft, uint32_t launchID);

@@ -166,8 +165,6 @@ void test_script(void *con, const rsc_FunctionTable *ft, uint32_t launchID)
{
    if (!gScript) {
        gScript = accCreateScript();
    }
    if (!gScriptEntry) {
        const char* scriptSource[] = { TEST_SCRIPT };
        accScriptSource(gScript, 1, scriptSource, NULL);
        accCompileScript(gScript);