[2/4] i965: be more specific about FBO completeness errors

Submitted by andrey simiklit on Nov. 19, 2018, 9 a.m.

Details

Message ID CAHfu=g+oHnUoT-fWBE7PDLvL2HkiXFjZWwdi7YVMkubUUtCjUQ@mail.gmail.com
State New
Headers show
Series "i965: Add support for EXT_texture_sRGB_S8" ( rev: 2 ) in Mesa

Not browsing as part of any series.

Commit Message

andrey simiklit Nov. 19, 2018, 9 a.m.
Hello,

I tried to compile latest mesa master this morning but faced with a
compilation error:
   intel_fbo.c: In function ‘intel_validate_framebuffer’:
   intel_fbo.c:696:25: error: ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS’
undeclared (first use in this function); did you mean
‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT’?
         fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
                            ^
   intel_fbo.c:642:21: note: in definition of macro ‘fbo_incomplete’
          fb->_Status =
error_id;                                                 \
                        ^~~~~~~~
   intel_fbo.c:696:25: note: each undeclared identifier is reported only
once for each function it appears in
         fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
                            ^
   intel_fbo.c:642:21: note: in definition of macro ‘fbo_incomplete’
          fb->_Status =
error_id;                                                 \

This small change helped me but I can't say for sure that it is right:
                            "width, height, depth, LOD and layer\n");
         }

Thanks,
Andrii.

On Thu, Nov 15, 2018 at 8:01 PM Gert Wollny <gert.wollny@collabora.com>
wrote:

> The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all cases of an
> incomplete fbo, be a bit more specific about this following the description
> of glCheckFramebufferStatus.
>
> This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8 support.
>
> Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
> ---
>  src/mesa/drivers/dri/i965/intel_fbo.c | 42 +++++++++++++++------------
>  1 file changed, 23 insertions(+), 19 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> b/src/mesa/drivers/dri/i965/intel_fbo.c
> index 2bbbc34114..d657fdf8e4 100644
> --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> @@ -629,7 +629,7 @@ intel_render_texture(struct gl_context * ctx,
>  }
>
>
> -#define fbo_incomplete(fb, ...) do {
>     \
> +#define fbo_incomplete(fb, error_id, ...) do {
>               \
>        static GLuint msg_id = 0;
>      \
>        if (unlikely(ctx->Const.ContextFlags & GL_CONTEXT_FLAG_DEBUG_BIT))
> {    \
>           _mesa_gl_debug(ctx, &msg_id,
>      \
> @@ -639,7 +639,7 @@ intel_render_texture(struct gl_context * ctx,
>                          __VA_ARGS__);
>      \
>        }
>      \
>        DBG(__VA_ARGS__);
>      \
> -      fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED;
>      \
> +      fb->_Status = error_id;
>      \
>     } while (0)
>
>  /**
> @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *fb)
>               d_depth != s_depth ||
>               depthRb->mt_level != stencilRb->mt_level ||
>              depthRb->mt_layer != stencilRb->mt_layer) {
> -           fbo_incomplete(fb,
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
>                             "FBO incomplete: depth and stencil must match
> in"
>                             "width, height, depth, LOD and layer\n");
>          }
> @@ -705,7 +705,7 @@ intel_validate_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *fb)
>           */
>          if (depthRb->mt_level != stencilRb->mt_level ||
>              depthRb->mt_layer != stencilRb->mt_layer) {
> -           fbo_incomplete(fb,
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
>                             "FBO incomplete: depth image level/layer %d/%d
> != "
>                             "stencil image %d/%d\n",
>                             depthRb->mt_level,
> @@ -715,13 +715,14 @@ intel_validate_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *fb)
>          }
>        } else {
>          if (!brw->has_separate_stencil) {
> -           fbo_incomplete(fb, "FBO incomplete: separate stencil "
> -                           "unsupported\n");
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> +                      "FBO incomplete: separate stencil unsupported\n");
>          }
>          if (stencil_mt->format != MESA_FORMAT_S_UINT8) {
> -           fbo_incomplete(fb, "FBO incomplete: separate stencil is %s "
> -                           "instead of S8\n",
> -                           _mesa_get_format_name(stencil_mt->format));
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> +                      "FBO incomplete: separate stencil is %s "
> +                      "instead of S8\n",
> +                      _mesa_get_format_name(stencil_mt->format));
>          }
>          if (devinfo->gen < 7 && !intel_renderbuffer_has_hiz(depthRb)) {
>             /* Before Gen7, separate depth and stencil buffers can be used
> @@ -730,8 +731,8 @@ intel_validate_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *fb)
>              *     [DevSNB]: This field must be set to the same value
> (enabled
>              *     or disabled) as Hierarchical Depth Buffer Enable.
>              */
> -           fbo_incomplete(fb, "FBO incomplete: separate stencil "
> -                           "without HiZ\n");
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> +                          "FBO incomplete: separate stencil without
> HiZ\n");
>          }
>        }
>     }
> @@ -749,29 +750,32 @@ intel_validate_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *fb)
>         */
>        rb = fb->Attachment[i].Renderbuffer;
>        if (rb == NULL) {
> -        fbo_incomplete(fb, "FBO incomplete: attachment without "
> -                        "renderbuffer\n");
> +        fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
> +                       "FBO incomplete: attachment without "
> +                       "renderbuffer\n");
>          continue;
>        }
>
>        if (fb->Attachment[i].Type == GL_TEXTURE) {
>          if (rb->TexImage->Border) {
> -           fbo_incomplete(fb, "FBO incomplete: texture with border\n");
> +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> +                      "FBO incomplete: texture with border\n");
>             continue;
>          }
>        }
>
>        irb = intel_renderbuffer(rb);
>        if (irb == NULL) {
> -        fbo_incomplete(fb, "FBO incomplete: software rendering "
> -                        "renderbuffer\n");
> +        fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> +                   "FBO incomplete: software rendering renderbuffer\n");
>          continue;
>        }
>
>        if (!brw_render_target_supported(brw, rb)) {
> -        fbo_incomplete(fb, "FBO incomplete: Unsupported HW "
> -                        "texture/renderbuffer format attached: %s\n",
> -                        _mesa_get_format_name(intel_rb_format(irb)));
> +        fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> +                   "FBO incomplete: Unsupported HW "
> +                   "texture/renderbuffer format attached: %s\n",
> +                   _mesa_get_format_name(intel_rb_format(irb)));
>        }
>     }
>  }
> --
> 2.19.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>

Patch hide | download patch | download mbox

diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
b/src/mesa/drivers/dri/i965/intel_fbo.c
index febd1aca98..5d870c65f8 100644
--- a/src/mesa/drivers/dri/i965/intel_fbo.c
+++ b/src/mesa/drivers/dri/i965/intel_fbo.c
@@ -693,7 +693,7 @@  intel_validate_framebuffer(struct gl_context *ctx,
struct gl_framebuffer *fb)
              d_depth != s_depth ||
              depthRb->mt_level != stencilRb->mt_level ||
             depthRb->mt_layer != stencilRb->mt_layer) {
-           fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
+           fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
                            "FBO incomplete: depth and stencil must match
in"

Comments

I was about to write about this too. I think the patch is not
correct for a couple of reasons:

1.  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS is not defined for OpenGL,
only for GL ES. The GL definition has the _EXT suffix and is included
with a specific extension, so I don't think we can use it like this.

2. According to the OpenGL ES 3.2 spec:

"Note that the error token FRAMEBUFFER_INCOMPLETE_DIMENSIONS is 
included in the API for OpenGL ES 2.0 compatibility, but cannot be
generated by an OpenGL ES 3.0 or later implementation."

Maybe we should revert this patch?

Iago

On Mon, 2018-11-19 at 11:00 +0200, andrey simiklit wrote:
> Hello,
> 
> I tried to compile latest mesa master this morning but faced with a
> compilation error:
>    intel_fbo.c: In function ‘intel_validate_framebuffer’:
>    intel_fbo.c:696:25: error: ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS’
> undeclared (first use in this function); did you mean
> ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT’?
>          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
>                             ^
>    intel_fbo.c:642:21: note: in definition of macro ‘fbo_incomplete’
>           fb->_Status =
> error_id;                                                 \
>                         ^~~~~~~~
>    intel_fbo.c:696:25: note: each undeclared identifier is reported
> only once for each function it appears in
>          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
>                             ^
>    intel_fbo.c:642:21: note: in definition of macro ‘fbo_incomplete’
>           fb->_Status =
> error_id;                                                 \
> 
> This small change helped me but I can't say for sure that it is
> right:
> diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> b/src/mesa/drivers/dri/i965/intel_fbo.c
> index febd1aca98..5d870c65f8 100644
> --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> *ctx, struct gl_framebuffer *fb)
>               d_depth != s_depth ||
>               depthRb->mt_level != stencilRb->mt_level ||
>              depthRb->mt_layer != stencilRb->mt_layer) {
> -           fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> +           fbo_incomplete(fb,
> GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
>                             "FBO incomplete: depth and stencil must
> match in"
>                             "width, height, depth, LOD and layer\n");
>          }
> 
> Thanks,
> Andrii.
> 
> On Thu, Nov 15, 2018 at 8:01 PM Gert Wollny <
> gert.wollny@collabora.com> wrote:
> > The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all cases
> > of an
> > incomplete fbo, be a bit more specific about this following the
> > description
> > of glCheckFramebufferStatus.
> > 
> > This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8
> > support.
> > 
> > Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
> > ---
> >  src/mesa/drivers/dri/i965/intel_fbo.c | 42 +++++++++++++++------
> > ------
> >  1 file changed, 23 insertions(+), 19 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > index 2bbbc34114..d657fdf8e4 100644
> > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > @@ -629,7 +629,7 @@ intel_render_texture(struct gl_context * ctx,
> >  }
> > 
> > 
> > -#define fbo_incomplete(fb, ...) do {                             
> >             \
> > +#define fbo_incomplete(fb, error_id, ...) do {                   
> >                       \
> >        static GLuint msg_id = 0;                                   
> >            \
> >        if (unlikely(ctx->Const.ContextFlags &
> > GL_CONTEXT_FLAG_DEBUG_BIT)) {    \
> >           _mesa_gl_debug(ctx, &msg_id,                             
> >            \
> > @@ -639,7 +639,7 @@ intel_render_texture(struct gl_context * ctx,
> >                          __VA_ARGS__);                             
> >            \
> >        }                                                           
> >            \
> >        DBG(__VA_ARGS__);                                           
> >            \
> > -      fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED;                   
> >            \
> > +      fb->_Status = error_id;                                     
> >            \
> >     } while (0)
> > 
> >  /**
> > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >               d_depth != s_depth ||
> >               depthRb->mt_level != stencilRb->mt_level ||
> >              depthRb->mt_layer != stencilRb->mt_layer) {
> > -           fbo_incomplete(fb,
> > +           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> >                             "FBO incomplete: depth and stencil must
> > match in"
> >                             "width, height, depth, LOD and
> > layer\n");
> >          }
> > @@ -705,7 +705,7 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >           */
> >          if (depthRb->mt_level != stencilRb->mt_level ||
> >              depthRb->mt_layer != stencilRb->mt_layer) {
> > -           fbo_incomplete(fb,
> > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> >                             "FBO incomplete: depth image
> > level/layer %d/%d != "
> >                             "stencil image %d/%d\n",
> >                             depthRb->mt_level,
> > @@ -715,13 +715,14 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >          }
> >        } else {
> >          if (!brw->has_separate_stencil) {
> > -           fbo_incomplete(fb, "FBO incomplete: separate stencil "
> > -                           "unsupported\n");
> > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > +                      "FBO incomplete: separate stencil
> > unsupported\n");
> >          }
> >          if (stencil_mt->format != MESA_FORMAT_S_UINT8) {
> > -           fbo_incomplete(fb, "FBO incomplete: separate stencil is
> > %s "
> > -                           "instead of S8\n",
> > -                           _mesa_get_format_name(stencil_mt-
> > >format));
> > +           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > +                      "FBO incomplete: separate stencil is %s "
> > +                      "instead of S8\n",
> > +                      _mesa_get_format_name(stencil_mt->format));
> >          }
> >          if (devinfo->gen < 7 &&
> > !intel_renderbuffer_has_hiz(depthRb)) {
> >             /* Before Gen7, separate depth and stencil buffers can
> > be used
> > @@ -730,8 +731,8 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >              *     [DevSNB]: This field must be set to the same
> > value (enabled
> >              *     or disabled) as Hierarchical Depth Buffer
> > Enable.
> >              */
> > -           fbo_incomplete(fb, "FBO incomplete: separate stencil "
> > -                           "without HiZ\n");
> > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > +                          "FBO incomplete: separate stencil
> > without HiZ\n");
> >          }
> >        }
> >     }
> > @@ -749,29 +750,32 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >         */
> >        rb = fb->Attachment[i].Renderbuffer;
> >        if (rb == NULL) {
> > -        fbo_incomplete(fb, "FBO incomplete: attachment without "
> > -                        "renderbuffer\n");
> > +        fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
> > +                       "FBO incomplete: attachment without "
> > +                       "renderbuffer\n");
> >          continue;
> >        }
> > 
> >        if (fb->Attachment[i].Type == GL_TEXTURE) {
> >          if (rb->TexImage->Border) {
> > -           fbo_incomplete(fb, "FBO incomplete: texture with
> > border\n");
> > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > +                      "FBO incomplete: texture with border\n");
> >             continue;
> >          }
> >        }
> > 
> >        irb = intel_renderbuffer(rb);
> >        if (irb == NULL) {
> > -        fbo_incomplete(fb, "FBO incomplete: software rendering "
> > -                        "renderbuffer\n");
> > +        fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > +                   "FBO incomplete: software rendering
> > renderbuffer\n");
> >          continue;
> >        }
> > 
> >        if (!brw_render_target_supported(brw, rb)) {
> > -        fbo_incomplete(fb, "FBO incomplete: Unsupported HW "
> > -                        "texture/renderbuffer format attached:
> > %s\n",
> > -                       
> > _mesa_get_format_name(intel_rb_format(irb)));
> > +        fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > +                   "FBO incomplete: Unsupported HW "
> > +                   "texture/renderbuffer format attached: %s\n",
> > +                   _mesa_get_format_name(intel_rb_format(irb)));
> >        }
> >     }
> >  }
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
Am Montag, den 19.11.2018, 10:21 +0100 schrieb Iago Toral:
> I was about to write about this too. I think the patch is not
> correct for a couple of reasons:
> 
> 1.  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS is not defined for OpenGL,
> only for GL ES. The GL definition has the _EXT suffix and is included
> with a specific extension, so I don't think we can use it like this.
> 
> 2. According to the OpenGL ES 3.2 spec:
> 
> "Note that the error token FRAMEBUFFER_INCOMPLETE_DIMENSIONS is 
> included in the API for OpenGL ES 2.0 compatibility, but cannot be
> generated by an OpenGL ES 3.0 or later implementation."
> 
> Maybe we should revert this patch?

Sorry, my bad, I'll send out a correction in a minute, 

Best, 
Gert 


> Iago
> 
> On Mon, 2018-11-19 at 11:00 +0200, andrey simiklit wrote:
> > Hello,
> > 
> > I tried to compile latest mesa master this morning but faced with a
> > compilation error:
> >    intel_fbo.c: In function ‘intel_validate_framebuffer’:
> >    intel_fbo.c:696:25: error:
> > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS’
> > undeclared (first use in this function); did you mean
> > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT’?
> >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> >                             ^
> >    intel_fbo.c:642:21: note: in definition of macro
> > ‘fbo_incomplete’
> >           fb->_Status =
> > error_id;                                                 \
> >                         ^~~~~~~~
> >    intel_fbo.c:696:25: note: each undeclared identifier is reported
> > only once for each function it appears in
> >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> >                             ^
> >    intel_fbo.c:642:21: note: in definition of macro
> > ‘fbo_incomplete’
> >           fb->_Status =
> > error_id;                                                 \
> > 
> > This small change helped me but I can't say for sure that it is
> > right:
> > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > index febd1aca98..5d870c65f8 100644
> > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >               d_depth != s_depth ||
> >               depthRb->mt_level != stencilRb->mt_level ||
> >              depthRb->mt_layer != stencilRb->mt_layer) {
> > -           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > +           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
> >                             "FBO incomplete: depth and stencil must
> > match in"
> >                             "width, height, depth, LOD and
> > layer\n");
> >          }
> > 
> > Thanks,
> > Andrii.
> > 
> > On Thu, Nov 15, 2018 at 8:01 PM Gert Wollny <
> > gert.wollny@collabora.com> wrote:
> > > The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all cases
> > > of an
> > > incomplete fbo, be a bit more specific about this following the
> > > description
> > > of glCheckFramebufferStatus.
> > > 
> > > This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8
> > > support.
> > > 
> > > Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
> > > ---
> > >  src/mesa/drivers/dri/i965/intel_fbo.c | 42 +++++++++++++++------
> > > ------
> > >  1 file changed, 23 insertions(+), 19 deletions(-)
> > > 
> > > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > index 2bbbc34114..d657fdf8e4 100644
> > > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > @@ -629,7 +629,7 @@ intel_render_texture(struct gl_context * ctx,
> > >  }
> > > 
> > > 
> > > -#define fbo_incomplete(fb, ...) do
> > > {                             
> > >             \
> > > +#define fbo_incomplete(fb, error_id, ...) do
> > > {                   
> > >                       \
> > >        static GLuint msg_id =
> > > 0;                                   
> > >            \
> > >        if (unlikely(ctx->Const.ContextFlags &
> > > GL_CONTEXT_FLAG_DEBUG_BIT)) {    \
> > >           _mesa_gl_debug(ctx,
> > > &msg_id,                             
> > >            \
> > > @@ -639,7 +639,7 @@ intel_render_texture(struct gl_context * ctx,
> > >                          __VA_ARGS__);                           
> > >   
> > >            \
> > >        }                                                         
> > >   
> > >            \
> > >        DBG(__VA_ARGS__);                                         
> > >   
> > >            \
> > > -      fb->_Status =
> > > GL_FRAMEBUFFER_UNSUPPORTED;                   
> > >            \
> > > +      fb->_Status =
> > > error_id;                                     
> > >            \
> > >     } while (0)
> > > 
> > >  /**
> > > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >               d_depth != s_depth ||
> > >               depthRb->mt_level != stencilRb->mt_level ||
> > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > -           fbo_incomplete(fb,
> > > +           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > >                             "FBO incomplete: depth and stencil
> > > must
> > > match in"
> > >                             "width, height, depth, LOD and
> > > layer\n");
> > >          }
> > > @@ -705,7 +705,7 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >           */
> > >          if (depthRb->mt_level != stencilRb->mt_level ||
> > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > -           fbo_incomplete(fb,
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > >                             "FBO incomplete: depth image
> > > level/layer %d/%d != "
> > >                             "stencil image %d/%d\n",
> > >                             depthRb->mt_level,
> > > @@ -715,13 +715,14 @@ intel_validate_framebuffer(struct
> > > gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >          }
> > >        } else {
> > >          if (!brw->has_separate_stencil) {
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > "
> > > -                           "unsupported\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                      "FBO incomplete: separate stencil
> > > unsupported\n");
> > >          }
> > >          if (stencil_mt->format != MESA_FORMAT_S_UINT8) {
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > is
> > > %s "
> > > -                           "instead of S8\n",
> > > -                           _mesa_get_format_name(stencil_mt-
> > > > format));
> > > 
> > > +           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > +                      "FBO incomplete: separate stencil is %s "
> > > +                      "instead of S8\n",
> > > +                      _mesa_get_format_name(stencil_mt-
> > > >format));
> > >          }
> > >          if (devinfo->gen < 7 &&
> > > !intel_renderbuffer_has_hiz(depthRb)) {
> > >             /* Before Gen7, separate depth and stencil buffers
> > > can
> > > be used
> > > @@ -730,8 +731,8 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >              *     [DevSNB]: This field must be set to the same
> > > value (enabled
> > >              *     or disabled) as Hierarchical Depth Buffer
> > > Enable.
> > >              */
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > "
> > > -                           "without HiZ\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                          "FBO incomplete: separate stencil
> > > without HiZ\n");
> > >          }
> > >        }
> > >     }
> > > @@ -749,29 +750,32 @@ intel_validate_framebuffer(struct
> > > gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >         */
> > >        rb = fb->Attachment[i].Renderbuffer;
> > >        if (rb == NULL) {
> > > -        fbo_incomplete(fb, "FBO incomplete: attachment without "
> > > -                        "renderbuffer\n");
> > > +        fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
> > > +                       "FBO incomplete: attachment without "
> > > +                       "renderbuffer\n");
> > >          continue;
> > >        }
> > > 
> > >        if (fb->Attachment[i].Type == GL_TEXTURE) {
> > >          if (rb->TexImage->Border) {
> > > -           fbo_incomplete(fb, "FBO incomplete: texture with
> > > border\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                      "FBO incomplete: texture with border\n");
> > >             continue;
> > >          }
> > >        }
> > > 
> > >        irb = intel_renderbuffer(rb);
> > >        if (irb == NULL) {
> > > -        fbo_incomplete(fb, "FBO incomplete: software rendering "
> > > -                        "renderbuffer\n");
> > > +        fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                   "FBO incomplete: software rendering
> > > renderbuffer\n");
> > >          continue;
> > >        }
> > > 
> > >        if (!brw_render_target_supported(brw, rb)) {
> > > -        fbo_incomplete(fb, "FBO incomplete: Unsupported HW "
> > > -                        "texture/renderbuffer format attached:
> > > %s\n",
> > > -                       
> > > _mesa_get_format_name(intel_rb_format(irb)));
> > > +        fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > +                   "FBO incomplete: Unsupported HW "
> > > +                   "texture/renderbuffer format attached: %s\n",
> > > +                   _mesa_get_format_name(intel_rb_format(irb)));
> > >        }
> > >     }
> > >  }
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > > 
> 
>
On Mon, 2018-11-19 at 10:21 +0100, Iago Toral wrote:
> I was about to write about this too. I think the patch is not
> correct for a couple of reasons:
> 
> 1.  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS is not defined for OpenGL,
> only for GL ES. The GL definition has the _EXT suffix and is included
> with a specific extension, so I don't think we can use it like this.
> 
> 2. According to the OpenGL ES 3.2 spec:
> 
> "Note that the error token FRAMEBUFFER_INCOMPLETE_DIMENSIONS is 
> included in the API for OpenGL ES 2.0 compatibility, but cannot be
> generated by an OpenGL ES 3.0 or later implementation."
> 
> Maybe we should revert this patch?

Well, not revert it maybe, but amend the case where we return
incomplete dimensions and just return GL_FRAMEBUFFER_UNSUPPORTED
instead? Would that be enought for EXT_texture_sRGB_R8?

Iago

> Iago
> 
> On Mon, 2018-11-19 at 11:00 +0200, andrey simiklit wrote:
> > Hello,
> > 
> > I tried to compile latest mesa master this morning but faced with a
> > compilation error:
> >    intel_fbo.c: In function ‘intel_validate_framebuffer’:
> >    intel_fbo.c:696:25: error:
> > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS’
> > undeclared (first use in this function); did you mean
> > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT’?
> >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> >                             ^
> >    intel_fbo.c:642:21: note: in definition of macro
> > ‘fbo_incomplete’
> >           fb->_Status =
> > error_id;                                                 \
> >                         ^~~~~~~~
> >    intel_fbo.c:696:25: note: each undeclared identifier is reported
> > only once for each function it appears in
> >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> >                             ^
> >    intel_fbo.c:642:21: note: in definition of macro
> > ‘fbo_incomplete’
> >           fb->_Status =
> > error_id;                                                 \
> > 
> > This small change helped me but I can't say for sure that it is
> > right:
> > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > index febd1aca98..5d870c65f8 100644
> > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > *ctx, struct gl_framebuffer *fb)
> >               d_depth != s_depth ||
> >               depthRb->mt_level != stencilRb->mt_level ||
> >              depthRb->mt_layer != stencilRb->mt_layer) {
> > -           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > +           fbo_incomplete(fb,
> > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
> >                             "FBO incomplete: depth and stencil must
> > match in"
> >                             "width, height, depth, LOD and
> > layer\n");
> >          }
> > 
> > Thanks,
> > Andrii.
> > 
> > On Thu, Nov 15, 2018 at 8:01 PM Gert Wollny <
> > gert.wollny@collabora.com> wrote:
> > > The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all cases
> > > of an
> > > incomplete fbo, be a bit more specific about this following the
> > > description
> > > of glCheckFramebufferStatus.
> > > 
> > > This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8
> > > support.
> > > 
> > > Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
> > > ---
> > >  src/mesa/drivers/dri/i965/intel_fbo.c | 42 +++++++++++++++------
> > > ------
> > >  1 file changed, 23 insertions(+), 19 deletions(-)
> > > 
> > > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > index 2bbbc34114..d657fdf8e4 100644
> > > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > @@ -629,7 +629,7 @@ intel_render_texture(struct gl_context * ctx,
> > >  }
> > > 
> > > 
> > > -#define fbo_incomplete(fb, ...) do
> > > {                             
> > >             \
> > > +#define fbo_incomplete(fb, error_id, ...) do
> > > {                   
> > >                       \
> > >        static GLuint msg_id =
> > > 0;                                   
> > >            \
> > >        if (unlikely(ctx->Const.ContextFlags &
> > > GL_CONTEXT_FLAG_DEBUG_BIT)) {    \
> > >           _mesa_gl_debug(ctx,
> > > &msg_id,                             
> > >            \
> > > @@ -639,7 +639,7 @@ intel_render_texture(struct gl_context * ctx,
> > >                          __VA_ARGS__);                           
> > >   
> > >            \
> > >        }                                                         
> > >   
> > >            \
> > >        DBG(__VA_ARGS__);                                         
> > >   
> > >            \
> > > -      fb->_Status =
> > > GL_FRAMEBUFFER_UNSUPPORTED;                   
> > >            \
> > > +      fb->_Status =
> > > error_id;                                     
> > >            \
> > >     } while (0)
> > > 
> > >  /**
> > > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >               d_depth != s_depth ||
> > >               depthRb->mt_level != stencilRb->mt_level ||
> > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > -           fbo_incomplete(fb,
> > > +           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > >                             "FBO incomplete: depth and stencil
> > > must
> > > match in"
> > >                             "width, height, depth, LOD and
> > > layer\n");
> > >          }
> > > @@ -705,7 +705,7 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >           */
> > >          if (depthRb->mt_level != stencilRb->mt_level ||
> > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > -           fbo_incomplete(fb,
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > >                             "FBO incomplete: depth image
> > > level/layer %d/%d != "
> > >                             "stencil image %d/%d\n",
> > >                             depthRb->mt_level,
> > > @@ -715,13 +715,14 @@ intel_validate_framebuffer(struct
> > > gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >          }
> > >        } else {
> > >          if (!brw->has_separate_stencil) {
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > "
> > > -                           "unsupported\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                      "FBO incomplete: separate stencil
> > > unsupported\n");
> > >          }
> > >          if (stencil_mt->format != MESA_FORMAT_S_UINT8) {
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > is
> > > %s "
> > > -                           "instead of S8\n",
> > > -                           _mesa_get_format_name(stencil_mt-
> > > > format));
> > > 
> > > +           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > +                      "FBO incomplete: separate stencil is %s "
> > > +                      "instead of S8\n",
> > > +                      _mesa_get_format_name(stencil_mt-
> > > >format));
> > >          }
> > >          if (devinfo->gen < 7 &&
> > > !intel_renderbuffer_has_hiz(depthRb)) {
> > >             /* Before Gen7, separate depth and stencil buffers
> > > can
> > > be used
> > > @@ -730,8 +731,8 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >              *     [DevSNB]: This field must be set to the same
> > > value (enabled
> > >              *     or disabled) as Hierarchical Depth Buffer
> > > Enable.
> > >              */
> > > -           fbo_incomplete(fb, "FBO incomplete: separate stencil
> > > "
> > > -                           "without HiZ\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                          "FBO incomplete: separate stencil
> > > without HiZ\n");
> > >          }
> > >        }
> > >     }
> > > @@ -749,29 +750,32 @@ intel_validate_framebuffer(struct
> > > gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >         */
> > >        rb = fb->Attachment[i].Renderbuffer;
> > >        if (rb == NULL) {
> > > -        fbo_incomplete(fb, "FBO incomplete: attachment without "
> > > -                        "renderbuffer\n");
> > > +        fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
> > > +                       "FBO incomplete: attachment without "
> > > +                       "renderbuffer\n");
> > >          continue;
> > >        }
> > > 
> > >        if (fb->Attachment[i].Type == GL_TEXTURE) {
> > >          if (rb->TexImage->Border) {
> > > -           fbo_incomplete(fb, "FBO incomplete: texture with
> > > border\n");
> > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                      "FBO incomplete: texture with border\n");
> > >             continue;
> > >          }
> > >        }
> > > 
> > >        irb = intel_renderbuffer(rb);
> > >        if (irb == NULL) {
> > > -        fbo_incomplete(fb, "FBO incomplete: software rendering "
> > > -                        "renderbuffer\n");
> > > +        fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > +                   "FBO incomplete: software rendering
> > > renderbuffer\n");
> > >          continue;
> > >        }
> > > 
> > >        if (!brw_render_target_supported(brw, rb)) {
> > > -        fbo_incomplete(fb, "FBO incomplete: Unsupported HW "
> > > -                        "texture/renderbuffer format attached:
> > > %s\n",
> > > -                       
> > > _mesa_get_format_name(intel_rb_format(irb)));
> > > +        fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > +                   "FBO incomplete: Unsupported HW "
> > > +                   "texture/renderbuffer format attached: %s\n",
> > > +                   _mesa_get_format_name(intel_rb_format(irb)));
> > >        }
> > >     }
> > >  }
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > >
Am Montag, den 19.11.2018, 10:26 +0100 schrieb Iago Toral:
> On Mon, 2018-11-19 at 10:21 +0100, Iago Toral wrote:
> > I was about to write about this too. I think the patch is not
> > correct for a couple of reasons:
> > 
> > 1.  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS is not defined for OpenGL,
> > only for GL ES. The GL definition has the _EXT suffix and is
> > included
> > with a specific extension, so I don't think we can use it like
> > this.
> > 
> > 2. According to the OpenGL ES 3.2 spec:
> > 
> > "Note that the error token FRAMEBUFFER_INCOMPLETE_DIMENSIONS is 
> > included in the API for OpenGL ES 2.0 compatibility, but cannot be
> > generated by an OpenGL ES 3.0 or later implementation."
> > 
> > Maybe we should revert this patch?
> 
> Well, not revert it maybe, but amend the case where we return
> incomplete dimensions and just return GL_FRAMEBUFFER_UNSUPPORTED
> instead? Would that be enought for EXT_texture_sRGB_R8?
> 
That's exacly what I was going to propose, 

Best, 
Gert 
 

> Iago
> 
> > Iago
> > 
> > On Mon, 2018-11-19 at 11:00 +0200, andrey simiklit wrote:
> > > Hello,
> > > 
> > > I tried to compile latest mesa master this morning but faced with
> > > a
> > > compilation error:
> > >    intel_fbo.c: In function ‘intel_validate_framebuffer’:
> > >    intel_fbo.c:696:25: error:
> > > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS’
> > > undeclared (first use in this function); did you mean
> > > ‘GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT’?
> > >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > >                             ^
> > >    intel_fbo.c:642:21: note: in definition of macro
> > > ‘fbo_incomplete’
> > >           fb->_Status =
> > > error_id;                                                 \
> > >                         ^~~~~~~~
> > >    intel_fbo.c:696:25: note: each undeclared identifier is
> > > reported
> > > only once for each function it appears in
> > >          fbo_incomplete(fb, GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > >                             ^
> > >    intel_fbo.c:642:21: note: in definition of macro
> > > ‘fbo_incomplete’
> > >           fb->_Status =
> > > error_id;                                                 \
> > > 
> > > This small change helped me but I can't say for sure that it is
> > > right:
> > > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > index febd1aca98..5d870c65f8 100644
> > > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct gl_context
> > > *ctx, struct gl_framebuffer *fb)
> > >               d_depth != s_depth ||
> > >               depthRb->mt_level != stencilRb->mt_level ||
> > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > -           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > > +           fbo_incomplete(fb,
> > > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
> > >                             "FBO incomplete: depth and stencil
> > > must
> > > match in"
> > >                             "width, height, depth, LOD and
> > > layer\n");
> > >          }
> > > 
> > > Thanks,
> > > Andrii.
> > > 
> > > On Thu, Nov 15, 2018 at 8:01 PM Gert Wollny <
> > > gert.wollny@collabora.com> wrote:
> > > > The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all
> > > > cases
> > > > of an
> > > > incomplete fbo, be a bit more specific about this following the
> > > > description
> > > > of glCheckFramebufferStatus.
> > > > 
> > > > This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8
> > > > support.
> > > > 
> > > > Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
> > > > ---
> > > >  src/mesa/drivers/dri/i965/intel_fbo.c | 42 +++++++++++++++--
> > > > ----
> > > > ------
> > > >  1 file changed, 23 insertions(+), 19 deletions(-)
> > > > 
> > > > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > > b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > > index 2bbbc34114..d657fdf8e4 100644
> > > > --- a/src/mesa/drivers/dri/i965/intel_fbo.c
> > > > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c
> > > > @@ -629,7 +629,7 @@ intel_render_texture(struct gl_context *
> > > > ctx,
> > > >  }
> > > > 
> > > > 
> > > > -#define fbo_incomplete(fb, ...) do
> > > > {                             
> > > >             \
> > > > +#define fbo_incomplete(fb, error_id, ...) do
> > > > {                   
> > > >                       \
> > > >        static GLuint msg_id =
> > > > 0;                                   
> > > >            \
> > > >        if (unlikely(ctx->Const.ContextFlags &
> > > > GL_CONTEXT_FLAG_DEBUG_BIT)) {    \
> > > >           _mesa_gl_debug(ctx,
> > > > &msg_id,                             
> > > >            \
> > > > @@ -639,7 +639,7 @@ intel_render_texture(struct gl_context *
> > > > ctx,
> > > >                          __VA_ARGS__);                         
> > > >   
> > > >   
> > > >            \
> > > >        }                                                       
> > > >   
> > > >   
> > > >            \
> > > >        DBG(__VA_ARGS__);                                       
> > > >   
> > > >   
> > > >            \
> > > > -      fb->_Status =
> > > > GL_FRAMEBUFFER_UNSUPPORTED;                   
> > > >            \
> > > > +      fb->_Status =
> > > > error_id;                                     
> > > >            \
> > > >     } while (0)
> > > > 
> > > >  /**
> > > > @@ -693,7 +693,7 @@ intel_validate_framebuffer(struct
> > > > gl_context
> > > > *ctx, struct gl_framebuffer *fb)
> > > >               d_depth != s_depth ||
> > > >               depthRb->mt_level != stencilRb->mt_level ||
> > > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > > -           fbo_incomplete(fb,
> > > > +           fbo_incomplete(fb,
> > > > GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
> > > >                             "FBO incomplete: depth and stencil
> > > > must
> > > > match in"
> > > >                             "width, height, depth, LOD and
> > > > layer\n");
> > > >          }
> > > > @@ -705,7 +705,7 @@ intel_validate_framebuffer(struct
> > > > gl_context
> > > > *ctx, struct gl_framebuffer *fb)
> > > >           */
> > > >          if (depthRb->mt_level != stencilRb->mt_level ||
> > > >              depthRb->mt_layer != stencilRb->mt_layer) {
> > > > -           fbo_incomplete(fb,
> > > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > >                             "FBO incomplete: depth image
> > > > level/layer %d/%d != "
> > > >                             "stencil image %d/%d\n",
> > > >                             depthRb->mt_level,
> > > > @@ -715,13 +715,14 @@ intel_validate_framebuffer(struct
> > > > gl_context
> > > > *ctx, struct gl_framebuffer *fb)
> > > >          }
> > > >        } else {
> > > >          if (!brw->has_separate_stencil) {
> > > > -           fbo_incomplete(fb, "FBO incomplete: separate
> > > > stencil
> > > > "
> > > > -                           "unsupported\n");
> > > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > > +                      "FBO incomplete: separate stencil
> > > > unsupported\n");
> > > >          }
> > > >          if (stencil_mt->format != MESA_FORMAT_S_UINT8) {
> > > > -           fbo_incomplete(fb, "FBO incomplete: separate
> > > > stencil
> > > > is
> > > > %s "
> > > > -                           "instead of S8\n",
> > > > -                           _mesa_get_format_name(stencil_mt-
> > > > > format));
> > > > 
> > > > +           fbo_incomplete(fb,
> > > > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > > +                      "FBO incomplete: separate stencil is %s
> > > > "
> > > > +                      "instead of S8\n",
> > > > +                      _mesa_get_format_name(stencil_mt-
> > > > > format));
> > > > 
> > > >          }
> > > >          if (devinfo->gen < 7 &&
> > > > !intel_renderbuffer_has_hiz(depthRb)) {
> > > >             /* Before Gen7, separate depth and stencil buffers
> > > > can
> > > > be used
> > > > @@ -730,8 +731,8 @@ intel_validate_framebuffer(struct
> > > > gl_context
> > > > *ctx, struct gl_framebuffer *fb)
> > > >              *     [DevSNB]: This field must be set to the same
> > > > value (enabled
> > > >              *     or disabled) as Hierarchical Depth Buffer
> > > > Enable.
> > > >              */
> > > > -           fbo_incomplete(fb, "FBO incomplete: separate
> > > > stencil
> > > > "
> > > > -                           "without HiZ\n");
> > > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > > +                          "FBO incomplete: separate stencil
> > > > without HiZ\n");
> > > >          }
> > > >        }
> > > >     }
> > > > @@ -749,29 +750,32 @@ intel_validate_framebuffer(struct
> > > > gl_context
> > > > *ctx, struct gl_framebuffer *fb)
> > > >         */
> > > >        rb = fb->Attachment[i].Renderbuffer;
> > > >        if (rb == NULL) {
> > > > -        fbo_incomplete(fb, "FBO incomplete: attachment without
> > > > "
> > > > -                        "renderbuffer\n");
> > > > +        fbo_incomplete(fb,
> > > > GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
> > > > +                       "FBO incomplete: attachment without "
> > > > +                       "renderbuffer\n");
> > > >          continue;
> > > >        }
> > > > 
> > > >        if (fb->Attachment[i].Type == GL_TEXTURE) {
> > > >          if (rb->TexImage->Border) {
> > > > -           fbo_incomplete(fb, "FBO incomplete: texture with
> > > > border\n");
> > > > +           fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > > +                      "FBO incomplete: texture with
> > > > border\n");
> > > >             continue;
> > > >          }
> > > >        }
> > > > 
> > > >        irb = intel_renderbuffer(rb);
> > > >        if (irb == NULL) {
> > > > -        fbo_incomplete(fb, "FBO incomplete: software rendering
> > > > "
> > > > -                        "renderbuffer\n");
> > > > +        fbo_incomplete(fb, GL_FRAMEBUFFER_UNSUPPORTED,
> > > > +                   "FBO incomplete: software rendering
> > > > renderbuffer\n");
> > > >          continue;
> > > >        }
> > > > 
> > > >        if (!brw_render_target_supported(brw, rb)) {
> > > > -        fbo_incomplete(fb, "FBO incomplete: Unsupported HW "
> > > > -                        "texture/renderbuffer format attached:
> > > > %s\n",
> > > > -                       
> > > > _mesa_get_format_name(intel_rb_format(irb)));
> > > > +        fbo_incomplete(fb,
> > > > GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
> > > > +                   "FBO incomplete: Unsupported HW "
> > > > +                   "texture/renderbuffer format attached:
> > > > %s\n",
> > > > +                   _mesa_get_format_name(intel_rb_format(irb))
> > > > );
> > > >        }
> > > >     }
> > > >  }
> > > > _______________________________________________
> > > > mesa-dev mailing list
> > > > mesa-dev@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > > > 
> 
>