summaryrefslogtreecommitdiffstats
path: root/libpixelflinger/tests
diff options
context:
space:
mode:
authorJim Huang <jserv@0xlab.org>2010-08-10 02:03:29 +0800
committerJim Huang <jserv@0xlab.org>2010-08-10 02:07:38 +0800
commit6090dacd1894429baaf13f7b30b2f6e9e2c1617f (patch)
tree6bf4fa371515fecefaec3b438e5d14cce97f9b8c /libpixelflinger/tests
parent0fcbdb4147858d40d581d3b034f5150962632943 (diff)
downloadsystem_core-6090dacd1894429baaf13f7b30b2f6e9e2c1617f.zip
system_core-6090dacd1894429baaf13f7b30b2f6e9e2c1617f.tar.gz
system_core-6090dacd1894429baaf13f7b30b2f6e9e2c1617f.tar.bz2
libpixelflinger: Move codeflinger test function to test-opengl-codegen
There is no need to include codeflinger test function in libpixelflinger. Instead, it should exist in test-opengl-codegen. Change-Id: Ic5b0bd1f754b2ac678d4e16565568c70ceb8d325
Diffstat (limited to 'libpixelflinger/tests')
-rw-r--r--libpixelflinger/tests/codegen/Android.mk5
-rw-r--r--libpixelflinger/tests/codegen/codegen.cpp49
2 files changed, 51 insertions, 3 deletions
diff --git a/libpixelflinger/tests/codegen/Android.mk b/libpixelflinger/tests/codegen/Android.mk
index 1bc4214..aa320fc 100644
--- a/libpixelflinger/tests/codegen/Android.mk
+++ b/libpixelflinger/tests/codegen/Android.mk
@@ -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
diff --git a/libpixelflinger/tests/codegen/codegen.cpp b/libpixelflinger/tests/codegen/codegen.cpp
index 1865888..94e2481 100644
--- a/libpixelflinger/tests/codegen/codegen.cpp
+++ b/libpixelflinger/tests/codegen/codegen.cpp
@@ -1,9 +1,54 @@
#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)
{