On 05/28/2013 02:51 AM, Topi Pohjolainen wrote:
v2:
- compile only on platforms that have drm (Eric)
- use standard drm definitions for fourcc instead of duplicated
local (Daniel, Eric)
- removed irrelevant quotes of the spec (Eric)
- rewritten attribute test vector using a full set which is then
trimmed down in individual tests (Eric)
- check that EGL did not take the ownership and revise the
explanation for it (Eric)
- use helper variables for width, height and cpp instead
of repeating the magic numbers over and over again (Eric)
- use the stride and offset provided by the framework instead of
hardcoded assumed values (Eric)
v3 (Eric):
- use properly linked egl-extension calls
Signed-off-by: Topi Pohjolainen <[email protected]>
---
.../ext_image_dma_buf_import/CMakeLists.gles1.txt | 1 +
.../ext_image_dma_buf_import/missing_attributes.c | 163 +++++++++++++++++++++
2 files changed, 164 insertions(+)
create mode 100644 tests/spec/ext_image_dma_buf_import/missing_attributes.c
+#include "piglit-util-egl.h"
+#define EGL_EGLEXT_PROTOTYPES 1
Prototypes again.
+enum piglit_result
+piglit_display(void)
+{
+ const unsigned w = 2;
+ const unsigned h = 2;
+ const unsigned cpp = 2;
+ const unsigned char pixels[w * h * cpp];
+ EGLint all[2 * NUM_MANDATORY_ATTRS];
+ EGLint missing[2 * (NUM_MANDATORY_ATTRS - 1) + 1];
+ struct piglit_dma_buf *buf;
+ unsigned stride;
+ unsigned offset;
+ int fd;
+ enum piglit_result res;
+ bool pass;
+
+ res = piglit_create_dma_buf(w, h, cpp, pixels, w * cpp,
+ &buf, &fd, &stride, &offset);
+ if (res != PIGLIT_PASS)
+ return res;
+
+ fill_full_set(w, h, fd, offset, stride, all);
+
+ fill_one_missing(all, missing, EGL_HEIGHT);
+ pass = test_missing(fd, missing);
^^^
Please initialize 'pass = true' and use '&=' here. Otherwise,
this just looks buggy because it doesn't follow the overall pattern
in this function.
+
+ fill_one_missing(all, missing, EGL_WIDTH);
+ pass &= test_missing(fd, missing);
+
+ fill_one_missing(all, missing, EGL_LINUX_DRM_FOURCC_EXT);
+ pass &= test_missing(fd, missing);
+
+ fill_one_missing(all, missing, EGL_DMA_BUF_PLANE0_FD_EXT);
+ pass &= test_missing(fd, missing);
+
+ fill_one_missing(all, missing, EGL_DMA_BUF_PLANE0_OFFSET_EXT);
+ pass &= test_missing(fd, missing);
+
+ fill_one_missing(all, missing, EGL_DMA_BUF_PLANE0_PITCH_EXT);
+ pass &= test_missing(fd, missing);
+
+ /**
+ * EGL stack can claim the ownership of the file descriptor only when it
+ * succeeds. Close the file descriptor here and check that it really
+ * wasn't closed by EGL.
+ */
+ pass &= (close(fd) == 0);
+
+ piglit_destroy_dma_buf(buf);
+
+ return pass ? PIGLIT_PASS : PIGLIT_FAIL;
+}
_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit