I'm trying to write real-time raytracer. I use Java and Jogamp bindings of OpenGL and OpenCL for it (calls Jogl and Jocl). I already have raytracing code in my .cl kernel and its works well. I get output as FloatBuffer and pass it to the OpenGL texture via glTexImage2D. Now I want to go realtime, and to achive this I want to remove FloatBuffer copy which happens twice in my program (first - from OpenCL kernel result to RAM, and second from RAM to OpenGL texture). Obvious there is a way to point OpenCL buffer from OpenGL texture direct, cause all calculations works on GPU. I know that there is cl_khr_gl_sharing extention for OpenCL which do what I want. But I can't understand how to use this in Java Jogamp bindings (jocl/jogl). Can somebody helps me or give some sample JAVA code (not C++ which is really differs in details)?
How to use cl_khr_gl_sharing in Jocl?
212 Views Asked by Crabonog At
1
There are 1 best solutions below
Related Questions in JAVA
- Add image to JCheckBoxMenuItem
- How to access invisible Unordered List element with Selenium WebDriver using Java
- Inheritance in Java, apparent type vs actual type
- Java catch the ball Game
- Access objects variable & method by name
- GridBagLayout is displaying JTextField and JTextArea as short, vertical lines
- Perform a task each interval
- Compound classes stored in an array are not accessible in selenium java
- How to avoid concurrent access to a resource?
- Why does processing goes slower on implementing try catch block in java?
- Redirect inside java interceptor
- Push toolbar content below statusbar
- Animation in Java on top of JPanel
- JPA - How to query with a LIKE operator in combination with an AttributeConverter
- Java Assign a Value to an array cell
Related Questions in OPENGL
- setting OpenGL version in objective-C
- How to run OpenGL version 3.3 (with Intel HD 4000) on Ubuntu 15.04
- Can linear filtering be used for an FBO blit of an MSAA texture to non-MSAA texture?
- How to get shader version from QOpenGLShader?
- "Capture GPU Frame" in XCode -- iOS only?
- Difference between glewGetString(GLEW_VERSION) and glewIsSupported
- Tesselation result flickering - OpenGL/GLSL
- Water rendering in opengl
- Texture mapping consuming physical memory
- Rotating a Cube using Quaternions in PyOpenGL
- Switching from perspective orthographic projection in OpenGL
- FreeType2 and OpenGL : Use unicode
- Should Meshes with and without Skeleton use different Shaders?
- How to get accurate 3D depth from 2D screen mouse click for large scale object in OpenGL?
- Trying to load 2d texture with glTexImage2D, but just getting blank
Related Questions in OPENCL
- Disable OpenCL in OpenCV completely
- opencl duplicate memory object on device
- Can I use Julia to program my GPU & CPU?
- openCL CL_OUT_OF_RESOURCES Error
- Debugging OpenCL with Intel SDK for visual studio dont stop at breakpoints
- NetBeans gives segfault, running the prgram using terminal does not
- opencl local memory and workgroup size
- Visual Studio 2013, Intel INDE 2015 update 2, Platform IDS change while debug
- Can I run Cuda or OpenCl on Intel processor graphics I7 (3rd or 4rd generation)
- How much, if any, does the choice of host language affect OpenCL performance?
- Row and Column-Major in opencl and pyopencl
- ClEnqueueCopyBuffer with offset 1
- VexCL vector of structs?
- How many threads/work-items are used?
- Kernel file not opening in XCode: C++ openCL code
Related Questions in JOGL
- GLSL: Uniform Buffer Object containing an array of struct
- Why normal mapping doesn't appear correctly?
- Differences rendering a gradient using a FBO in GLES2 and GLES3
- Using JOGL with QtJambi
- JOGL won't draw 2D triangle
- Is there a better code than waiting for JOGL display method to finish something?
- glReadPixels returns more data than expected
- glScissors produces me flickering with animations (JOGL)
- JOGL Using Multiple Textures
- How to get altitude at the height of a bounding box drawn in OpenGL?
- First Person Camera using JOGL GL3 core
- GLCanvas serializing
- JOGL glBufferData with glVertexAttribPointer not working
- How to apply Bullet physics to drawn Opengl 3d shapes
- Java OpenGL install in ubuntu Linux?
Related Questions in JOCL
- GPGPU performance in high-level languages
- Help with JOCL on Mac
- OpenCL (JOCL) - 2D calculus over two arrays in Kernel
- Need help adding OpenCL(GPU Usage)
- opencl kernel float4 issues
- How to read txt file in OpenCL
- Releasing Memory Allocated by Native Libraries in Java
- OpenCL & Java - Weird Performance Results
- Java: Cast or reference multidimensional array into single dimensional array
- jocl neural network
- copying an image onto another with JOCL/OpenCL
- Why would JOCL CL.clEnqueueReadBuffer never return?
- CL_INVALID_KERNEL_ARGS in JOCL (a Java Binding to OpenCL).
- determine global memory available on GPU with JOCL?
- "UnsatisfiedLinkError: Native Library already loaded in another classloader" in multimodule project
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
So, after few days of research I find how to do it. Posting an answer for anybody who interest.
In "init" method of Jogl's GLEventListener you create GL context. You must create CL context in that method too. My sample code for this:
The core line is:
clContext.createFromGLTexture2d(GL4.GL_TEXTURE_2D, textureIndex, 0, Mem.WRITE_ONLY);You should create an OpenCL texture object for your previous created OpenGL texture. Code of creating OpenGL texture:And the last - you must use right data type of texture argument in your OpenCL kernel. In my case kernel method has the following signature:
and I use write_imagef build-in OpenCL method to write float data (0.0f - 1.0f) into this texture.
Feel free to ask me about this approach if you interested.