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

Commit d8e0e26d authored by Jim Huang's avatar Jim Huang Committed by Android Git Automerger
Browse files

am 7caef0c7: am 6090dacd: libpixelflinger: Move codeflinger test function to test-opengl-codegen

Merge commit '7caef0c7'

* commit '7caef0c7':
  libpixelflinger: Move codeflinger test function to test-opengl-codegen
parents c174b710 7caef0c7
Loading
Loading
Loading
Loading
+0 −23
Original line number Diff line number Diff line
@@ -1518,26 +1518,3 @@ void rect_memcpy(context_t* c, size_t yc)
// ----------------------------------------------------------------------------
}; // namespace android
using namespace android;
extern "C" void ggl_test_codegen(uint32_t n, uint32_t p, uint32_t t0, uint32_t t1)
{
#if ANDROID_ARM_CODEGEN
    GGLContext* c;
    gglInit(&c);
    needs_t needs;
    needs.n = n;
    needs.p = p;
    needs.t[0] = t0;
    needs.t[1] = t1;
    sp<ScanlineAssembly> a(new ScanlineAssembly(needs, ASSEMBLY_SCRATCH_SIZE));
    GGLAssembler assembler( new ARMAssembler(a) );
    int err = assembler.scanline(needs, (context_t*)c);
    if (err != 0) {
        printf("error %08x (%s)\n", err, strerror(-err));
    }
    gglUninit(c);
#else
    printf("This test runs only on ARM\n");
#endif
}
+4 −1
Original line number Diff line number Diff line
@@ -2,12 +2,15 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES:= \
	codegen.cpp
	codegen.cpp.arm

LOCAL_SHARED_LIBRARIES := \
	libcutils \
    libpixelflinger

LOCAL_C_INCLUDES := \
	system/core/libpixelflinger

LOCAL_MODULE:= test-opengl-codegen

LOCAL_MODULE_TAGS := tests
+47 −2
Original line number Diff line number Diff line
#include <stdio.h>
#include <stdint.h>

extern "C" void ggl_test_codegen(
        uint32_t n, uint32_t p, uint32_t t0, uint32_t t1);
#include "private/pixelflinger/ggl_context.h"

#include "buffer.h"
#include "scanline.h"

#include "codeflinger/CodeCache.h"
#include "codeflinger/GGLAssembler.h"
#include "codeflinger/ARMAssembler.h"

#if defined(__arm__)
#   define ANDROID_ARM_CODEGEN  1
#else
#   define ANDROID_ARM_CODEGEN  0
#endif

#define ASSEMBLY_SCRATCH_SIZE   2048

using namespace android;

class ScanlineAssembly : public Assembly {
    AssemblyKey<needs_t> mKey;
public:
    ScanlineAssembly(needs_t needs, size_t size)
        : Assembly(size), mKey(needs) { }
    const AssemblyKey<needs_t>& key() const { return mKey; }
};

static void ggl_test_codegen(uint32_t n, uint32_t p, uint32_t t0, uint32_t t1)
{
#if ANDROID_ARM_CODEGEN
    GGLContext* c;
    gglInit(&c);
    needs_t needs;
    needs.n = n;
    needs.p = p;
    needs.t[0] = t0;
    needs.t[1] = t1;
    sp<ScanlineAssembly> a(new ScanlineAssembly(needs, ASSEMBLY_SCRATCH_SIZE));
    GGLAssembler assembler( new ARMAssembler(a) );
    int err = assembler.scanline(needs, (context_t*)c);
    if (err != 0) {
        printf("error %08x (%s)\n", err, strerror(-err));
    }
    gglUninit(c);
#else
    printf("This test runs only on ARM\n");
#endif
}

int main(int argc, char** argv)
{