[Piglit] [PATCH] arb_texture_view: Check source tex in failure
Ben Widawsky
benjamin.widawsky at intel.com
Wed Oct 28 10:35:31 PDT 2015
While debugging a problem on gen8, I added this code to verify the contents of
the 2d texture array in order to narrow down the failure. It seemed useful and
worth keeping to me.
Cc: Glenn Kennard <glenn.kennard at gmail.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky at intel.com>
---
.../sampling-2d-array-as-2d-layer.c | 29 +++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c b/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
index 8189044..7a741e5 100644
--- a/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
+++ b/tests/spec/arb_texture_view/sampling-2d-array-as-2d-layer.c
@@ -122,7 +122,34 @@ test_single_layer(const Params* p, int layer)
pass = piglit_probe_rect_rgba(0, 0, piglit_width, piglit_height, green);
if (!pass) {
- printf("layer %d failed\n", layer);
+ GLenum status;
+ GLuint temp_fbo;
+
+ glClearColor(0, 0, 1, 1);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ glGenFramebuffers(1, &temp_fbo);
+ glBindFramebuffer(GL_FRAMEBUFFER, temp_fbo);
+ glFramebufferTextureLayer(GL_FRAMEBUFFER,
+ GL_COLOR_ATTACHMENT0,
+ tex_src, 0, layer);
+ status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+ if (status != GL_FRAMEBUFFER_COMPLETE) {
+ printf("Framebuffer Status: %s\n",
+ piglit_get_gl_enum_name(status));
+ }
+
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, piglit_winsys_fbo);
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, temp_fbo);
+ glBlitFramebuffer(0, 0, p->width, p->height,
+ 0, 0, piglit_width, piglit_height,
+ GL_COLOR_BUFFER_BIT, GL_NEAREST);
+
+ printf("layer %d failed. Source image was %s\n",
+ layer, piglit_probe_pixel_rgba(0, 0, green) ?
+ "correct" : "incorrect");
+
+ glDeleteFramebuffers(1, &temp_fbo);
}
glDeleteTextures(1, &tex_view);
--
2.6.1
More information about the Piglit
mailing list