[Piglit] [PATCH 2/2] sample-mask-execution: resolve into fbo always

Chris Forbes chrisf at ijw.co.nz
Tue Dec 17 23:09:10 PST 2013


Yes, GL_FRAMEBUFFER and ss_tex were both just sloppy. Will fix :)

On Wed, Dec 18, 2013 at 2:41 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:
> On Fri, Nov 29, 2013 at 5:45 PM, Chris Forbes <chrisf at ijw.co.nz> wrote:
>> If the MSAA resolve happens into the default framebuffer, we don't get
>> the colors we expect.
>>
>> Adjusts the test to resolve into an FBO first, and then blit the result
>> to either the test FBO or the default framebuffer.
>>
>> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
>> ---
>>  .../sample-mask-execution.c                        | 27 ++++++++++++++++++----
>>  1 file changed, 23 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/spec/arb_texture_multisample/sample-mask-execution.c b/tests/spec/arb_texture_multisample/sample-mask-execution.c
>> index 2a6c2f8..58ec11f 100644
>> --- a/tests/spec/arb_texture_multisample/sample-mask-execution.c
>> +++ b/tests/spec/arb_texture_multisample/sample-mask-execution.c
>> @@ -36,11 +36,16 @@ PIGLIT_GL_TEST_CONFIG_END
>>   * - set mask to the other half of the samples
>>   * - render a blue thing
>>   *
>> - * - blit from the MSAA buffer to the winsys buffer
>> + * - blit from the MSAA buffer to the single-sampled FBO
>> + * - blit from the single-sampled FBO to the winsys buffer
>>   * - ensure that the pixels are yellow
>> + *
>> + *   note the intermediate single-sampled FBO is only necessary so that
>> + *   the resolve is always happening FBO->FBO; if we resolve into a winsys
>> + *   buffer, there are sRGB interactions.
>>   */
>>
>> -GLuint fbo, tex;
>> +GLuint fbo, ss_fbo, tex, ss_tex;
>>
>>  enum piglit_result
>>  piglit_display(void)
>> @@ -67,10 +72,16 @@ piglit_display(void)
>>      if (!piglit_check_gl_error(GL_NO_ERROR))
>>          piglit_report_result(PIGLIT_FAIL);
>>
>> -    glFinish();
>> +    /* resolve */
>> +    glBindFramebuffer(GL_FRAMEBUFFER, ss_fbo);
> Using GL_DRAW_FRAMEBUFFER makes it more clear.
>
>> +    glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
>> +    glBlitFramebuffer(0, 0, 64, 64, 0, 0, 64, 64,
>> +                      GL_COLOR_BUFFER_BIT, GL_NEAREST);
>>
>> +
>> +    /* single-sampled blit */
>>      glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);
>> -    glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
>> +    glBindFramebuffer(GL_READ_FRAMEBUFFER, ss_fbo);
>>      glBlitFramebuffer(0, 0, 64, 64, 0, 0, 64, 64,
>>                        GL_COLOR_BUFFER_BIT, GL_NEAREST);
>>
>> @@ -125,4 +136,12 @@ piglit_init(int argc, char **argv)
>>          glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
>>                                    GL_RENDERBUFFER, tex);
>>      }
>> +
>> +    glGenFramebuffers(1, &ss_fbo);
>> +    glBindFramebuffer(GL_FRAMEBUFFER, ss_fbo);
>> +    glGenRenderbuffers(1, &ss_tex);
> As you're generating a renderbuffer, using a variable name ss_rb
> is a better option.
>
>> +    glBindRenderbuffer(GL_RENDERBUFFER, ss_tex);
>> +    glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, 64, 64);
>> +    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
>> +                              GL_RENDERBUFFER, ss_tex);
>>  }
>> --
>> 1.8.4.2
>>
>> _______________________________________________
>> Piglit mailing list
>> Piglit at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/piglit
>
> Irrespective of what you decide about suggested changes, both the
> patches are: Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the Piglit mailing list