[Fix] (trace-replay): render DirectGLES replay onscreen by default

This commit is contained in:
2026-06-23 21:42:24 +08:00
parent 2f52264f01
commit 9137396eae
7 changed files with 34 additions and 8 deletions
@@ -814,6 +814,7 @@ bool WriteResultJson(const Request& request, const Result& result) {
file << " \"ssim\": " << result.ssim << ",\n";
file << " \"ssimThreshold\": " << request.ssimThreshold << ",\n";
file << " \"useAngle\": " << (UseAngleForRequest(request) ? "true" : "false") << ",\n";
file << " \"usePbuffer\": " << (request.usePbuffer ? "true" : "false") << ",\n";
file << " \"mismatchPixels\": " << result.mismatchPixels << "\n";
file << "}\n";
return true;
@@ -34,6 +34,7 @@ struct Request {
int cropHeight = 0;
double ssimThreshold = 0.99;
bool useAngle = false;
bool usePbuffer = false;
};
struct Result {
@@ -99,7 +99,8 @@ Java_top_mobilegl_plugin_trace_TraceReplayActivity_nativeRunTraceReplay(JNIEnv*
jint cropWidth,
jint cropHeight,
jstring angleLibraryDir,
jboolean useAngle) {
jboolean useAngle,
jboolean usePbuffer) {
mobilegl_trace::Request request;
request.tracePath = ToString(env, tracePath);
request.goldenPath = ToString(env, goldenPath);
@@ -121,10 +122,13 @@ Java_top_mobilegl_plugin_trace_TraceReplayActivity_nativeRunTraceReplay(JNIEnv*
request.cropWidth = cropWidth;
request.cropHeight = cropHeight;
request.useAngle = useAngle == JNI_TRUE;
request.usePbuffer = usePbuffer == JNI_TRUE;
ScopedTraceReplayState replayState;
mobilegl_trace_set_requested_size(request.width, request.height);
const bool needsNativeWindow = request.backend == "DirectVulkan";
const bool needsNativeWindow =
request.backend == "DirectVulkan" ||
(request.backend == "DirectGLES" && !request.usePbuffer);
ANativeWindow *window = needsNativeWindow && surface != nullptr ? ANativeWindow_fromSurface(env, surface) : nullptr;
mobilegl_trace_set_native_window(window);
if (window != nullptr) {