[Piglit] [PATCH 1/4] fbo-blit-d24s8: avoid using textures
Ilia Mirkin
imirkin at alum.mit.edu
Sat Mar 15 04:16:01 PDT 2014
On Fri, Mar 14, 2014 at 8:24 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:
> On Thu, Mar 13, 2014 at 9:07 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> There's no reason to attach the teximages to the framebuffer. Instead
>> use renderbuffers so that we don't need to depend on ARB_depth_texture.
>>
> OpenGL driver may choose different blitting paths internally based on if the
> attachment is a renderbuffer or a texture. e. g. take a look at function
> _mesa_meta_BlitFramebuffer() in mesa:
> http://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/common/meta_blit.c
>
> I think the better idea would be to keep the code for testing with texture
> attachments and add renderbuffer testing as well.
Thanks for taking a look. I'm just trying to get piglits to not fail
on nv1x hardware for the wrong reasons. I don't have the
time/motivation to restructure the test to check both the texture and
renderbuffer paths -- I'd be happy to drop this patch (and the other
one just like it) and just slap ARB_depth_texture dependencies.
Anyone else have opinions on which way to go here?
>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>> tests/fbo/fbo-blit-d24s8.c | 38 +++++++++++++++++---------------------
>> 1 file changed, 17 insertions(+), 21 deletions(-)
>>
>> diff --git a/tests/fbo/fbo-blit-d24s8.c b/tests/fbo/fbo-blit-d24s8.c
>> index 37e8470..fe8c30d 100644
>> --- a/tests/fbo/fbo-blit-d24s8.c
>> +++ b/tests/fbo/fbo-blit-d24s8.c
>> @@ -58,33 +58,29 @@ PIGLIT_GL_TEST_CONFIG_END
>> static GLuint
>> make_fbo(int w, int h)
>> {
>> - GLuint tex;
>> + GLuint rb;
>> GLuint fb;
>> GLenum status;
>>
>> glGenFramebuffersEXT(1, &fb);
>> glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
>>
>> - glGenTextures(1, &tex);
>> - glBindTexture(GL_TEXTURE_2D, tex);
>> - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8_EXT,
>> - w, h, 0,
>> - GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT, NULL);
>> -
>> - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
>> - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
>> -
>> - glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
>> - GL_DEPTH_ATTACHMENT_EXT,
>> - GL_TEXTURE_2D,
>> - tex,
>> - 0);
>> - glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
>> - GL_STENCIL_ATTACHMENT_EXT,
>> - GL_TEXTURE_2D,
>> - tex,
>> - 0);
>> -
>> + glGenRenderbuffersEXT(1, &rb);
>> + glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, rb);
>> +
>> + glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,
>> + GL_DEPTH24_STENCIL8,
>> + w, h);
>> +
>> + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
>> + GL_DEPTH_ATTACHMENT_EXT,
>> + GL_RENDERBUFFER_EXT,
>> + rb);
>> + glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,
>> + GL_STENCIL_ATTACHMENT_EXT,
>> + GL_RENDERBUFFER_EXT,
>> + rb);
>> +
>> glDrawBuffer(GL_NONE);
>> glReadBuffer(GL_NONE);
>> assert(glGetError() == 0);
>> --
>> 1.8.3.2
>>
>> _______________________________________________
>> Piglit mailing list
>> Piglit at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list