Comments (8)
I have a very strong preference for #1
. Now that all the modifier entrypoints accept (and queries advertise) DRM_FORMAT_MOD_INVALID
, and we've all gone out and typed out support for that exact usecase, I don't see what benefit #2
would bring us.
Suggested addition to EGL_EXT_image_dma_buf_import_modifiers
question section:
- What if my implementation does not support DRM format modifiers?
It is strongly recommended that every implementation supporting dmabuf import also implements this extension.DRM_FORMAT_MOD_INVALID
is a special modifier token indicating that the exact layout is not known and will be determined by implementation-defined semantics. Platforms not supporting modifiers should implement this extension, advertising only theDRM_FORMAT_MOD_INVALID
modifier for every supported format, and accepting only theDRM_FORMAT_MOD_INVALID
modifier for EGLImage import.
Suggested addition to EGL_EXT_image_dma_buf_import
question section:
- How can clients discover the set of supported formats?
Every driver supporting dmabuf import should implement theEGL_EXT_image_dma_buf_import_modifiers
extension, even if they do not support modifiers. This extension adds format-advertisement entrypoints, and as detailed in that extension's question section,DRM_FORMAT_MOD_INVALID
is used to implement the same behaviour as without that extension, i.e. that the exact buffer layout is not known and will be determined by implementation-defined semantics.
from egl-registry.
This looks like a good idea to me. This would let drivers return an external_only
flag for implicit modifiers too, which is useful to know whether rendering to a buffer using this format is possible. This isn't possible if the driver returns zero modifiers.
I'll type up the Mesa patch for this.
from egl-registry.
Thanks @emersion , I will bring this to GLES/EGL WG , but we will need you/MESA people to craft the work/specs. Just not enough people and bandwidth to support linux platform properly.
from egl-registry.
Are there drivers that don't advertise EGL_EXT_image_dma_buf_import_modifiers but do advertise EXT_image_dma_buf_import? If not, I'd prefer stronger language, e.g., just updating EXT_image_dma_buf_import's dependency section to require EGL_EXT_image_dma_buf_import_modifiers, and modifying Daniel's proposed text above accordingly.
from egl-registry.
IIRC the Mali proprietary blob does this? @fooishbar probably knows more.
from egl-registry.
It depends on how the SoC vendor configures it (it’s not a single blob like NV), but a lot of them seem to ship it with dmabuf disabled entirely. I’ve yet to see a build with modifiers in the wild.
from egl-registry.
Are there drivers that don't advertise EGL_EXT_image_dma_buf_import_modifiers but do advertise EXT_image_dma_buf_import? If not, I'd prefer stronger language, e.g., just updating EXT_image_dma_buf_import's dependency section to require EGL_EXT_image_dma_buf_import_modifiers, and modifying Daniel's proposed text above accordingly.
I meet a soc which use mali G52, and support EXT_image_dma_buf_import, but do not support EGL_EXT_image_dma_buf_import_modifiers. eglQueryDmaBufFormatsEXT
actually returns meanful fourcc codes, but only some of the return values are truely supported.
from egl-registry.
I assume this is using the proprietary Mali driver? Exposing the entrypoint without advertising the extension is not something that’s expected to work - and the driver can be trivially modified to work with the modifier extension by exposing only DRM_FORMAT_MOD_INVALID
.
from egl-registry.
Related Issues (20)
- Depth/stencil EGL image HOT 27
- how can I build and install EGL-Registry on linux os ? HOT 3
- Broken link on start.html page HOT 8
- EGL cross-vendor Display Timing / Presentation timing extension for Linux HOT 5
- [EGL-Registry mismatch with EGL spec] Why the default value of EGL_GL_COLORSPACE on eglCreatePBufferSurface has gap between EGL spec with this EGL-Registry ? HOT 2
- Possibly missing xcb extension? HOT 7
- /usr/bin/ld: cannot find -lEGL HOT 5
- eglCreateImage for cubemap textures HOT 12
- eglCreateContext attrib_list documentation is confusing HOT 3
- eglCreatePlatform{Window,Pixmap}Surface documentation should mention EGL 1.5 dependency HOT 2
- Does EGL_KHR_display_reference overspecify the default state? HOT 4
- `EGL_EXT_image_dma_buf_import`: advertise which hints are supported HOT 3
- eglCompositorSwapPolicyEXT mismatch between header and description HOT 2
- Broken contact details for EGL_EXT_surface_SMPTE2086_metadata and EGL_EXT_surface_CTA861_3_metadata HOT 8
- Query context reset notification strategy HOT 12
- opengl HOT 1
- Wrong EGL native types used for QNX HOT 6
- New HOT 1
- Color management on EGL Wayland platform HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from egl-registry.