beehive-lab / TornadoVM-Ray-Tracer

A real-time ray tracer in Java, accelerated on heterogeneous hardware using TornadoVM
Apache License 2.0
12 stars 1 forks source link

[bug] TornadoVM sketch fails for method render(null) #8

Open stratika opened 2 weeks ago

stratika commented 2 weeks ago

I think we have something broken in TornadoVM. The project seems to have been tested with v1.0.4.

I tried the small refactoring change that we did in the TornadoBackend class (getDeviceCount -> getBackendCounter) in this branch. It now builds, but it throws a compilation error in the sketcher:

tornadovm-ray-tracer 
------------------------------------
Running TornadoVM Ray Tracer with GUI...
WARNING: Using incubator modules: jdk.incubator.vector
------------------------------------
Building World:
-> Loading Skybox Image 'Sky.jpg'...
-> Adding object to the scene...
-> Allocating object representation buffers...
------------------------------------
Setting up rendering environment...
Allocating buffers...
Setting up Tornado Task Graph...
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
javafx.fxml.LoadException: 
/home/thanos/repositories/TornadoVM-Ray-Tracer/target/classes/com/vinhderful/raytracer/controllers/Main.fxml

    at javafx.fxml@19/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2677)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3331)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3287)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3255)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3227)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3203)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3196)
    at com.vinhderful.raytracer.controllers.Loading$1.call(Loading.java:63)
    at com.vinhderful.raytracer.controllers.Loading$1.call(Loading.java:56)
    at javafx.graphics@19/javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at javafx.base@19/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml@19/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
    at javafx.fxml@19/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2673)
    ... 12 more
Caused by: uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: render(null)
    at tornado.runtime@1.0.6-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:190)
    at tornado.runtime@1.0.6-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:262)
    at tornado.runtime@1.0.6-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:252)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    ... 1 more

I am using this TornadoVM specs:

version=1.0.6-dev
branch=develop
commit=27d5a82

Backends installed: 
     - opencl
JDK: OpenJDK 21
jjfumero commented 2 weeks ago

Fix in https://github.com/beehive-lab/TornadoVM/pull/456