Skip to content
This repository has been archived by the owner on Jun 16, 2022. It is now read-only.

Need support for Chrome OS's EGL null platform #30

Open
linyaa-kiwi opened this issue Mar 13, 2015 · 3 comments
Open

Need support for Chrome OS's EGL null platform #30

linyaa-kiwi opened this issue Mar 13, 2015 · 3 comments

Comments

@linyaa-kiwi
Copy link
Member

Chrome OS Freon now uses the EGL null platform. Waffle needs a new platform type to support this. Otherwise, nothing works on Freon, not even wflinfo.

Difficulty: Easy but non-trivial.

The initial implementation should support waffle_config_choose and waffle_context_create. waffle_window_create can be implemented after context creation works. Or maybe waffle_window_create should never be implemented, always emitting an error on the EGL null platform. @fjhenigman is in the best position for deciding the behavior of waffle_window_create.

Questions

  • Maybe name the new platform WAFFLE_PLATFORM_EGL_NULL?
  • Should Waffle's EGL null platform use minigbm? Or should Waffle choose to keep the EGL null platform super simple, and give minigbm its own platform?
@fjhenigman
Copy link
Contributor

I've been working on this and have enough to pass a chrome os test or two.
It's by no means commit-ready, but I'll likely mail the waffle list next week asking for comments.

I named it WAFFLE_PLATFORM_NULL, because the gbm platform is not called EGL_GBM. I figured X11_EGL had the "EGL" in there to make it extra clear it wasn't glx. I have been trying to think of a different name however, because I put some stupid macro tricks into chrome os that trip up on NULL (because NULL is already a macro). That's not really a reason for a different name, but if someone suggests a good one I'll be all for it.

My goal was to make platform null a drop-in substitute for any other platform, so window_create works, swapbuffers works, everything works like in X or gbm. It actually didn't occur to me to go windowless/surfaceless. Doing so would mean re-coding any waffle program that wanted to work surfacelessly. However there are some major challenges in hiding the surfacelessness behind waffle. I'll elaborate when I ask for comments.

I've only tested with minigbm so far, but it seems like it should work with mesa gbm too. All it uses gbm for is to get and query buffers (and get corresponding dmabufs).

@evelikov
Copy link
Member

With surfaceless (sl)landed should we close this one ? I realise that there's the topic of displaying (KMS support) be that for sl or gbm but IMHO that could/should be tackled separately.

@chadversary @fjhenigman thoughts, opinions, suggestions ?

@evelikov
Copy link
Member

@chadversary @fjhenigman gents?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants