1Name 2 3 KHR_image_pixmap 4 5Name Strings 6 7 EGL_KHR_image_pixmap 8 9Contributors 10 11 Jeff Juliano 12 Gary King 13 Jon Leech 14 Jonathan Grant 15 Barthold Lichtenbelt 16 Aaftab Munshi 17 Acorn Pooley 18 Chris Wynn 19 Ray Smith 20 21Contacts 22 23 Jon Leech (jon 'at' alumni.caltech.edu) 24 Gary King, NVIDIA Corporation (gking 'at' nvidia.com) 25 26Notice 27 28 Copyright (c) 2008-2013 The Khronos Group Inc. Copyright terms at 29 http://www.khronos.org/registry/speccopyright.html 30 31Status 32 33 Complete. Functionality approved (as part of KHR_image) by the 34 Khronos Board of Promoters on February 11, 2008. 35 36 Split into KHR_image_base and KHR_image_pixmap approved by the 37 Khronos Technical Working Group on November 19, 2008. 38 39Version 40 41 Version 5, November 13, 2013 42 43Number 44 45 EGL Extension #9 46 47Dependencies 48 49 EGL 1.2 is required. 50 51 EGL_KHR_image_base is required. 52 53 The EGL implementation must define an EGLNativePixmapType (although it 54 is not required either to export any EGLConfigs supporting rendering to 55 native pixmaps, or to support eglCreatePixmapSurface). 56 57 This extension is written against the wording of the EGL 1.4 58 Specification. 59 60Overview 61 62 This extension allows creating an EGLImage from a native pixmap 63 image. 64 65New Types 66 67 None 68 69New Procedures and Functions 70 71 None 72 73New Tokens 74 75 Accepted by the <target> parameter of eglCreateImageKHR: 76 77 EGL_NATIVE_PIXMAP_KHR 0x30B0 78 79Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation) 80 81 Rename section 2.2.2.1 "Native Surface Coordinate Systems" to "Native 82 Surface and EGLImage Pixmap Coordinate Systems" and add to the end of 83 the section: 84 85 "EGLImages created with target EGL_NATIVE_PIXMAP_KHR share the same 86 coordinate system as native pixmap surfaces. When that coordinate system 87 is inverted, client APIs must invert their <y> coordinate when accessing 88 such images as described above." 89 90 Add to section 2.5.1 "EGLImage Specification" (as defined by the 91 EGL_KHR_image_base specification), in the description of 92 eglCreateImageKHR: 93 94 "Values accepted for <target> are listed in Table aaa, below. 95 96 +-------------------------+--------------------------------------------+ 97 | <target> | Notes | 98 +-------------------------+--------------------------------------------+ 99 | EGL_NATIVE_PIXMAP_KHR | Used for EGLNativePixmapType objects | 100 +-------------------------+--------------------------------------------+ 101 Table aaa. Legal values for eglCreateImageKHR <target> parameter 102 103 ... 104 105 If <target> is EGL_NATIVE_PIXMAP_KHR, <dpy> must be a valid display, <ctx> 106 must be EGL_NO_CONTEXT; <buffer> must be a handle to a valid 107 NativePixmapType object, cast into the type EGLClientBuffer; and 108 attributes other than EGL_IMAGE_PRESERVED_KHR are ignored." 109 110 Add to the list of error conditions for eglCreateImageKHR: 111 112 "* If <target> is EGL_NATIVE_PIXMAP_KHR and <buffer> is not a 113 valid native pixmap handle, or if <buffer> is a native pixmap 114 whose color buffer format is incompatible with the system's 115 EGLImage implementation, the error EGL_BAD_PARAMETER is 116 generated. 117 118 * If <target> is EGL_NATIVE_PIXMAP_KHR, and <dpy> is not a valid 119 EGLDisplay object the error EGL_BAD_DISPLAY is generated. 120 121 * If <target> is EGL_NATIVE_PIXMAP_KHR, and <ctx> is not EGL_NO_CONTEXT, 122 the error EGL_BAD_PARAMETER is generated. 123 124 * If <target> is EGL_NATIVE_PIXMAP_KHR, and <buffer> is not a handle 125 to a valid NativePixmapType object, the error EGL_BAD_PARAMETER 126 is generated." 127 128Issues 129 130 1) Should this specification allow EGLImages to be created from native 131 pixmaps which already have a pixmap surface associated with them, and 132 vice versa? 133 134 RESOLVED: Yes. There are practical usecases for this, and it is 135 already the application's responsibility to handle any format 136 mismatch or synchronization issues that this may allow. 137 138Revision History 139 140#5 (Jon Leech, November 13, 2013) 141 - Add Issue #1 regarding use cases for multiple EGL consumer/producers 142 of a native pixmap (Bug 7779). 143 144#4 (Jon Leech, October 16, 2013) 145 - Add language allowing native pixmap and client API image y coordinate 146 convention to differ. Re-base extension against EGL 1.4 (Bug 9701). 147 148#3 (Jon Leech, November 25, 2008) 149 - Remove dependency on EGLConfig in error conditions. 150 151#2 (Jon Leech, November 12, 2008) 152 - Clarified dependency on EGLNativePixmapType such that pixmap configs 153 and surfaces are not required. 154 155#1 (Jon Leech, October 21, 2008) 156 - Split native pixmap functionality from EGL_KHR_image into a layered 157 extension on EGL_KHR_image_base, and note interaction with the new 158 EGL_IMAGE_PRESERVED_KHR attribute. 159