javafx: multiple displays when using opengl-es2 pipeline on embedded platforms
Prasant J
pj0585 at gmail.com
Wed Jul 16 08:16:22 UTC 2014
@Dave:
We would love to collaborate and work towards solving this problem.
With guidance from your team I can extend help. Please suggest me next
steps!
On Wed, Jul 16, 2014 at 12:02 PM, Prasant J <pj0585 at gmail.com> wrote:
> On Tue, Jul 15, 2014 at 8:37 PM, David Hill <David.Hill at oracle.com> wrote:
>> On 7/15/14, 10:28 AM, Anthony Petrov wrote:
>>>
>>> Hi Prasant,
>>>
>>> JavaFX supports multi-screen configurations on all the desktop platforms
>>> (Windows, Mac, and Linux).
>
> @Anthony:
> Windows multiscreen support is via D3D pipeline... I have checked that.
> Linux (x86) multiscreen support via "sw" (software) rendering works
> I was not able to setup opengl on windows or linux, so I could not verify that.
>
>
>>>
>>> David, or Daniel, or Lisa (all cc'ed) could clarify whether this is
>>> supported on embedded platforms currently.
>>
>> This is not something we have targeted yet for ARM devices.
>>
>> There are several reasons for this, none of which is a "stopper".
>> * we do not have a device in house that supports multiple screens (ie 2
>> HDMI ports), though I may be wrong on this because I do have a device with
>> an LCD touch and an HDMI port, so I might be able to configure both to work.
>
> @Dave: My device uses one HDMI and one LVDS port.
>
>> * we have not been asked to spend the time support this
>> * because of our focus on direct to framebuffer, we need vendor specific
>> API is pick which screen we are referencing. I have seen this capability
>> documented for the i.MX6, but have not seen how to do it on on other
>> platforms.
>>
>
> @Anthony & @Dave:
> I am 100% sure that multi screen support is not added to ARM linux
> platforms (direct framebuffer).
> I'm an embedded linux expert but this is my maiden foray into high
> level library like openjfx and I'm clearly not an expert at that.
>
> But I have a few pointers to substantiate my point:
>
> - In file: modules/graphics/src/main/native-glass/lens/wm/screen/fbdevScreen.c
> the framebuffer is hard coded to /dev/fb0.
> If a system has multiple screens, then why is the framebuffer handle
> (/dev/fbn) not populated dynamically?
>
> - in file: modules/graphics/src/main/native-glass/lens/LensScreen.c in
> function createJavaSCreens() the screen count is hard coded to "1" and
> the comment clearly says that "we know that is all we currently
> support".
>
> Could you please confirm if my understanding is correct and that
> currently only 1 screen is supported.
>
>
> @Dave:
> On iMX6 platform: vivante opengl libraries (framebuffer build) lets
> the openjfx query a display using screen index, but it does not return
> the exact framebuffer (/dev/fbn) to which that index points to.
> So my understanding is that: openjfx using linux framebuffer handle
> (/dev/fbn) to query the screen information and uses opengl screen
> index to display the data. As there is no way for openjfx to know
> which screen index of opengl refers to which framebuffer, so the
> screen is limited to only 1.
> Can you please confirm my understanding, (if you are handling these
> portions of openjfx development)?
>
>
>> Certainly adding support for multiple screens should not be hard, if I am
>> right, it would mean extending code in two to three places. (discovery in
>> MonocleScreen, and then using the screen in the creation of the EGL context
>> in prism).
>>
>> Can you share which device you were thinking of using this with ?
>
> I'm using Freescale's iMX6 Cortex A9 processor.
>
>> Would you be interested in helping with this?
>
> I will need to check my company policies and manager's permission.
> Before that, I would like to know what kind of help are you looking
> at?
>
>
> We are attempting to add multiple screen support but we are no experts
> and without reference code we are not able to make surgical changes
> for our configuration.
>
> With surgical changes I was able to add multi-screen query to
> (native-glass/lens/wm/screen) code (although I cannot test it
> completely yet) and like the already existing hard coded /dev/fb0, I
> have also hard coded it to the other framebuffer that I intend to use.
> Now Java reports two screens.
> But it displays only on one screen. This is because native-prism-es2
> (eglfb) does not have handles to individual screens. It always gets
> the handle from prisms native code
> (module/graphics/src/main/native-glass/lens/lensport/wrapped_functions.c)
> from fucntion util_getNativeDisplayType() which in the case of vivante
> always gets screen index 0 { wr_fbGetDisplayByIndex(0) hard coded}
>
> We are stuck at that point.
>
>
> Awaiting for your inputs!
>
>>
>> Dave
>>
>>
>>
>>>
>>> --
>>> best regards,
>>> Anthony
>>>
>>> On 7/15/2014 4:28 PM, Prasant J wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm using javafx (build 1.8.0-b132) using opengl-es2 pipeline.
>>>>
>>>>
>>>> I have found out on my ARM linux board (when using opengl-es2 using
>>>> eglfb pipeline) only one screen is supported.
>>>>
>>>>
>>>> I would like to know whether multiple displays is supported at all (on
>>>> any platform: windows/mac/linux) when opengl-es2 pipeline is used?
>>>>
>>>>
>>>> Any inputs will be of help.
>>>>
>>>> -Pj
>>>>
>>
>>
>> --
>> David Hill<David.Hill at Oracle.com>
>> Java Embedded Development
>>
>> "A man's feet should be planted in his country, but his eyes should survey
>> the world."
>> -- George Santayana (1863 - 1952)
>>
More information about the openjfx-dev
mailing list