[Piglit] [PATCH 1/5] util: Add support for multisample array textures to the FBO framework

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Sep 22 13:10:08 PDT 2015



On 09/22/2015 05:44 PM, Ian Romanick wrote:
> Anuj,
>
> Were you able to run the modified test on an NVIDIA system?  Did it
> pass?  I don't know if you noticed my plea for help in the commit
> message of patch 5. :)

If you provide the full command line (I mean the number of samples), I 
can do that for you on Nouveau. :)

>
> On 09/21/2015 01:50 PM, Anuj Phogat wrote:
>> On Mon, Sep 21, 2015 at 8:57 AM, Ian Romanick <idr at freedesktop.org> wrote:
>>> From: Ian Romanick <ian.d.romanick at intel.com>
>>>
>>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>>> ---
>>>   tests/util/piglit-fbo.cpp | 43 ++++++++++++++++++++++++++++++-------------
>>>   tests/util/piglit-fbo.h   | 18 ++++++++++++++++++
>>>   2 files changed, 48 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/tests/util/piglit-fbo.cpp b/tests/util/piglit-fbo.cpp
>>> index 49e9b26..bc705aa 100644
>>> --- a/tests/util/piglit-fbo.cpp
>>> +++ b/tests/util/piglit-fbo.cpp
>>> @@ -37,6 +37,8 @@ FboConfig::FboConfig(int num_samples, int width, int height)
>>>            num_tex_attachments(0),
>>>            width(width),
>>>            height(height),
>>> +         layers(0),
>>> +         attachment_layer(0),
>>>            combine_depth_stencil(true),
>>>            color_format(GL_RGBA),
>>>            color_internalformat(GL_RGBA),
>>> @@ -116,19 +118,34 @@ Fbo::attach_color_texture(const FboConfig &config, int index)
>>>   void
>>>   Fbo::attach_multisample_color_texture(const FboConfig &config, int index)
>>>   {
>>> -       glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, color_tex[index]);
>>> -       glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
>>> -                               config.num_samples,
>>> -                               config.color_internalformat,
>>> -                               config.width,
>>> -                               config.height,
>>> -                               GL_TRUE /* fixed sample locations */);
>>> -
>>> -       glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
>>> -                              config.tex_attachment[index],
>>> -                              GL_TEXTURE_2D_MULTISAMPLE,
>>> -                              color_tex[index],
>>> -                              0 /* level */);
>>> +       if (config.layers == 0) {
>>> +               glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, color_tex[index]);
>>> +               glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
>>> +                                       config.num_samples,
>>> +                                       config.color_internalformat,
>>> +                                       config.width,
>>> +                                       config.height,
>>> +                                       GL_TRUE /* fixed sample locations */);
>>> +               glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
>>> +                                      config.tex_attachment[index],
>>> +                                      GL_TEXTURE_2D_MULTISAMPLE,
>>> +                                      color_tex[index],
>>> +                                      0 /* level */);
>>> +       } else {
>>> +               glBindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY, color_tex[index]);
>>> +               glTexImage3DMultisample(GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
>>> +                                       config.num_samples,
>>> +                                       config.color_internalformat,
>>> +                                       config.width,
>>> +                                       config.height,
>>> +                                       config.layers,
>>> +                                       GL_TRUE /* fixed sample locations */);
>>> +               glFramebufferTextureLayer(GL_DRAW_FRAMEBUFFER,
>>> +                                         config.tex_attachment[index],
>>> +                                         color_tex[index],
>>> +                                         0 /* level */,
>>> +                                         config.attachment_layer);
>>> +       }
>>>   }
>>>
>>>   void
>>> diff --git a/tests/util/piglit-fbo.h b/tests/util/piglit-fbo.h
>>> index b8ddaf8..8f956a4 100644
>>> --- a/tests/util/piglit-fbo.h
>>> +++ b/tests/util/piglit-fbo.h
>>> @@ -51,6 +51,24 @@ namespace piglit_util_fbo {
>>>                  int height;
>>>
>>>                  /**
>>> +                * If non-zero, GL_TEXTURE_2D_MULTISAMPLE_ARRAY is used with
>>> +                * the specified number of layers instead of
>>> +                * GL_TEXTURE_2D_MULTISAMPLE.
>>> +                *
>>> +                * Default value is zero.
>>> +                */
>>> +               unsigned layers;
>>> +
>>> +               /**
>>> +                * Specifies the layer of the texture that should be attached
>>> +                * to the framebuffer.  This must be less than the value of
>>> +                * ::layers (unless ::layers is zero).
>>> +                *
>>> +                * Default value is zero.
>>> +                */
>>> +               unsigned attachment_layer;
>>> +
>>> +               /**
>>>                   * True if a single renderbuffer should be used as the backing
>>>                   * store for both the depth and stencil attachment points.
>>>                   * Defaults to true.
>>> --
>>> 2.1.0
>>>
>>> _______________________________________________
>>> Piglit mailing list
>>> Piglit at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/piglit
>>
>> Series is: Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
>>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit



More information about the Piglit mailing list