Merge "Cleanup RSListActivity and RSTest GUI"
diff --git a/cpp/rsDispatch.h b/cpp/rsDispatch.h
index ab57936..1bcd954 100644
--- a/cpp/rsDispatch.h
+++ b/cpp/rsDispatch.h
@@ -29,6 +29,7 @@
typedef void (*DeviceDestroyFnPtr) (RsDevice dev);
typedef void (*DeviceSetConfigFnPtr) (RsDevice dev, RsDeviceParam p, int32_t value);
typedef RsContext (*ContextCreateFnPtr)(RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsContextType ct, uint32_t flags);
+typedef RsContext (*ContextCreateVendorFnPtr)(RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsContextType ct, uint32_t flags, const char* vendorDriverName);
typedef void (*GetNameFnPtr)(RsContext, void * obj, const char **name);
typedef RsClosure (*ClosureCreateFnPtr)(RsContext, RsScriptKernelID, RsAllocation, RsScriptFieldID*, size_t, int64_t*, size_t, int*, size_t, RsClosure*, size_t, RsScriptFieldID*, size_t);
typedef RsClosure (*InvokeClosureCreateFnPtr)(RsContext, RsScriptInvokeID, const void*, const size_t, const RsScriptFieldID*, const size_t, const int64_t*, const size_t, const int*, const size_t);
@@ -177,6 +178,7 @@
ClosureSetArgFnPtr ClosureSetArg;
ClosureSetGlobalFnPtr ClosureSetGlobal;
ContextCreateFnPtr ContextCreate;
+ ContextCreateVendorFnPtr ContextCreateVendor;
ContextDeinitToClientFnPtr ContextDeinitToClient;
ContextDestroyFnPtr ContextDestroy;
ContextDumpFnPtr ContextDump;
diff --git a/rsApiContext.cpp b/rsApiContext.cpp
index 1160985..53d9e4a 100644
--- a/rsApiContext.cpp
+++ b/rsApiContext.cpp
@@ -25,16 +25,22 @@
using android::renderscript::Device;
using android::renderscript::ObjectBase;
-extern "C" RsContext rsContextCreate(RsDevice vdev, uint32_t version, uint32_t sdkVersion,
- RsContextType ct, uint32_t flags) {
+extern "C" RsContext rsContextCreateVendor(RsDevice vdev, uint32_t version, uint32_t sdkVersion,
+ RsContextType ct, uint32_t flags,
+ const char* vendorDriverName) {
Device * dev = static_cast<Device *>(vdev);
- Context *rsc = Context::createContext(dev, nullptr, ct, flags);
+ Context *rsc = Context::createContext(dev, nullptr, ct, flags, vendorDriverName);
if (rsc) {
rsc->setTargetSdkVersion(sdkVersion);
}
return rsc;
}
+extern "C" RsContext rsContextCreate(RsDevice vdev, uint32_t version, uint32_t sdkVersion,
+ RsContextType ct, uint32_t flags) {
+ return rsContextCreateVendor(vdev, version, sdkVersion, ct, flags, nullptr);
+}
+
extern "C" void rsaContextSetNativeLibDir(RsContext con, char *libDir, size_t length) {
#ifdef RS_COMPATIBILITY_LIB
Context *rsc = static_cast<Context *>(con);
diff --git a/rsContext.cpp b/rsContext.cpp
index 3be600e..7a1c4b1 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -468,7 +468,8 @@
}
Context * Context::createContext(Device *dev, const RsSurfaceConfig *sc,
- RsContextType ct, uint32_t flags) {
+ RsContextType ct, uint32_t flags,
+ const char* vendorDriverName) {
Context * rsc = new Context();
if (flags & RS_CONTEXT_LOW_LATENCY) {
@@ -479,6 +480,7 @@
}
rsc->mContextType = ct;
rsc->mHal.flags = flags;
+ rsc->mVendorDriverName = vendorDriverName;
if (!rsc->initContext(dev, sc)) {
delete rsc;
diff --git a/rsContext.h b/rsContext.h
index 2122460..8023fb9 100644
--- a/rsContext.h
+++ b/rsContext.h
@@ -81,7 +81,8 @@
static Context * createContext(Device *, const RsSurfaceConfig *sc,
RsContextType ct = RS_CONTEXT_TYPE_NORMAL,
- uint32_t flags = 0);
+ uint32_t flags = 0,
+ const char* vendorDriverName = nullptr);
static Context * createContextLite();
~Context();
@@ -353,6 +354,7 @@
// Since this is always just a static string, we don't have to
// allocate, copy, or free any memory here.
const char* mDriverName;
+ const char* mVendorDriverName;
std::vector<ObjectBase *> mNames;
diff --git a/rsDriverLoader.cpp b/rsDriverLoader.cpp
index 48ff990..e432a4f 100644
--- a/rsDriverLoader.cpp
+++ b/rsDriverLoader.cpp
@@ -240,21 +240,14 @@
ALOGE("Failed to load the RSoV driver!");
}
-#ifdef OVERRIDE_RS_DRIVER
-#define XSTR(S) #S
-#define STR(S) XSTR(S)
-#define OVERRIDE_RS_DRIVER_STRING STR(OVERRIDE_RS_DRIVER)
- if (!forceDefault) {
- if (loadRuntime(OVERRIDE_RS_DRIVER_STRING)) {
- ALOGV("Successfully loaded runtime: %s", OVERRIDE_RS_DRIVER_STRING);
+ if (!forceDefault && mVendorDriverName != nullptr) {
+ if (loadRuntime(mVendorDriverName)) {
+ ALOGV("Successfully loaded runtime: %s", mVendorDriverName);
loadDefault = false;
} else {
- ALOGE("Failed to load runtime %s, loading default", OVERRIDE_RS_DRIVER_STRING);
+ ALOGE("Failed to load runtime %s, loading default", mVendorDriverName);
}
}
-#undef XSTR
-#undef STR
-#endif // OVERRIDE_RS_DRIVER
if (loadDefault) {
if (!loadRuntime("libRSDriver.so")) {
diff --git a/tests/java_api/RSUnitTests/src/com/android/rs/unittest/math.rs b/tests/java_api/RSUnitTests/src/com/android/rs/unittest/math.rs
index 2e53481..676423c 100644
--- a/tests/java_api/RSUnitTests/src/com/android/rs/unittest/math.rs
+++ b/tests/java_api/RSUnitTests/src/com/android/rs/unittest/math.rs
@@ -301,6 +301,7 @@
TEST_FN_FUNC_FN_F(fmin);
TEST_FN_FUNC_FN_FN(fmod);
TEST_FN_FUNC_FN_PFN(fract);
+ TEST_FN_FUNC_FN(fract);
TEST_FN_FUNC_FN_PIN(frexp);
TEST_FN_FUNC_FN_FN(hypot);
TEST_IN_FUNC_FN(ilogb);
diff --git a/tests/java_api/RSUnitTests/supportlibsrc_gen/com/android/rs/unittest/math.rs b/tests/java_api/RSUnitTests/supportlibsrc_gen/com/android/rs/unittest/math.rs
index 895ddc6..1d2682e 100644
--- a/tests/java_api/RSUnitTests/supportlibsrc_gen/com/android/rs/unittest/math.rs
+++ b/tests/java_api/RSUnitTests/supportlibsrc_gen/com/android/rs/unittest/math.rs
@@ -303,6 +303,7 @@
TEST_FN_FUNC_FN_F(fmin);
TEST_FN_FUNC_FN_FN(fmod);
TEST_FN_FUNC_FN_PFN(fract);
+ TEST_FN_FUNC_FN(fract);
TEST_FN_FUNC_FN_PIN(frexp);
TEST_FN_FUNC_FN_FN(hypot);
TEST_IN_FUNC_FN(ilogb);