From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 106601] The internal format RGB32F is not color-renderable, This is not in accordance with Opengl 3.0 spec Date: Wed, 23 May 2018 06:09:30 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0022936684==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [IPv6:2610:10:20:722:a800:ff:fe98:4b55]) by gabe.freedesktop.org (Postfix) with ESMTP id 1171E89F5B for ; Wed, 23 May 2018 06:09:30 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0022936684== Content-Type: multipart/alternative; boundary="15270557690.82A9a784e.6243" Content-Transfer-Encoding: 7bit --15270557690.82A9a784e.6243 Date: Wed, 23 May 2018 06:09:29 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D106601 --- Comment #7 from Yunchao He --- #5, In GL 3.0. RGB32F is color-renderable for texture-only. It is not color-renderable for renderbuffer. But we do use A TEXTURE with RGB32F as color-attachment and then check the framebuffer attachment, it says framebu= ffer incomplete on Intel mesa driver. It is OK for Intel Windows GL driver and I= ntel MacOS GL driver. It's also OK for NVIDIA and AMD (Windows, MacOS, Linux, et= c). For this statement to check framebuffer completeness below: """ Required Framebuffer Formats Implementations must support framebuffer objects with up to MAX COLOR ATTACHMENTS color attachments, a depth attachment, and a stencil attachment. Each color attachment may be in any of the required color formats for textu= res and renderbuffers described in sections 3.9.1 and 4.4.2. """ My understanding is that the color formats for a color attachment should be color-renderable for a texture, or color-renderable for a renderbuffer. It = is not required that the color format should be color-renderable both for a texture and a renderbuffer. If you attach a texture with a color-renderable format, that format is not color-renderable for a renderbuffer (like RGB32F= ), it doesn't matter. This is A TEXTURE, not a renderbuffer. There is no reason that we need to go through renderbuffer's color-renderable formats for a texture. In short, this statements says that color attachment should be attached an image which is color-renderable, no matter it is a texture or a renderbuffer.=20 In addition, why you say "GL_RGB32F is marked as color-renderable, but not required to be renderable"? My understanding is that, a format is color-renderable (or depth-renderable, or stencil renderable), it must be renderable. But a color-renderable format for texture is not guaranteed to = be color-renderable for renderbuffer.=20 Let's discuss this issue from a different perspective. You know, for a text= ure, it has 2 main usage: 1) sample (or read) from a texture, 2) draw (or write)= to a texture. If a format is color-renderable for a texture, but we can't atta= ch it to a FB/FBO, I don't know how could we draw into this kind of texture. A= s a result, it makes no sense that we say it is color-renderable. So I think attaching a color-renderable format to a fbo should be valid.=20 But for same other formats which is used only for sampling from a texture, = it can be not renderable. That formats can't be attached to a fbo and used as a render target.=20 However, RGB32F is claimed as color-renderable in OpenGL. So texture with t= his format can be rendered into without error.=20 For a renderbuffer, It is mainly used to draw. We can't sample from a renderbuffer (although we can call readpixel to read AFTER you draw somethi= ng). So all formats for a renderbuffer should be renderable (color-renderable, depth-renderable, etc).=20=20 Please correct me if I am wrong. Any other comments are welcome too. --=20 You are receiving this mail because: You are the assignee for the bug.= --15270557690.82A9a784e.6243 Date: Wed, 23 May 2018 06:09:29 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated

Commen= t # 7 on bug 10660= 1 from Yunchao He
#5, In GL 3.0. RGB32F is color-renderable for texture-only. It=
 is not
color-renderable for renderbuffer. But we do use A TEXTURE with RGB32F as
color-attachment and then check the framebuffer attachment, it says framebu=
ffer
incomplete on Intel mesa driver. It is OK for Intel Windows GL driver and I=
ntel
MacOS GL driver. It's also OK for NVIDIA and AMD (Windows, MacOS, Linux, et=
c).

For this statement to check framebuffer completeness below:

"""
Required Framebuffer Formats

Implementations must support framebuffer objects with up to MAX COLOR
ATTACHMENTS color attachments, a depth attachment, and a stencil attachment.
Each color attachment may be in any of the required color formats for textu=
res
and renderbuffers described in sections 3.9.1 and 4.4.2.
"""

My understanding is that the color formats for a color attachment should be
color-renderable for a texture, or color-renderable for a renderbuffer. It =
is
not required that the color format should be color-renderable both for a
texture and a renderbuffer. If you attach a texture with a color-renderable
format, that format is not color-renderable for a renderbuffer (like RGB32F=
),
it doesn't matter. This is A TEXTURE, not a renderbuffer. There is no reason
that we need to go through renderbuffer's color-renderable formats for a
texture. In short, this statements says that color attachment should be
attached an image which is color-renderable, no matter it is a texture or a
renderbuffer.=20

In addition, why you say "GL_RGB32F is marked as color-renderable, but=
 not
required to be renderable"? My understanding is that, a format is
color-renderable (or depth-renderable, or stencil renderable), it must be
renderable. But a color-renderable format for texture is not guaranteed to =
be
color-renderable for renderbuffer.=20

Let's discuss this issue from a different perspective. You know, for a text=
ure,
it has 2 main usage: 1) sample (or read) from a texture, 2) draw (or write)=
 to
a texture. If a format is color-renderable for a texture, but we can't atta=
ch
it to a FB/FBO, I don't know how could we draw into this kind of texture. A=
s a
result, it makes no sense that we say it is color-renderable. So I think
attaching a color-renderable format to a fbo should be valid.=20

But for same other formats which is used only for sampling from a texture, =
it
can be not renderable. That formats can't be attached to a fbo and used as a
render target.=20

However, RGB32F is claimed as color-renderable in OpenGL. So texture with t=
his
format can be rendered into without error.=20

For a renderbuffer, It is mainly used to draw. We can't sample from a
renderbuffer (although we can call readpixel to read AFTER you draw somethi=
ng).
So all formats for a renderbuffer should be renderable (color-renderable,
depth-renderable, etc).=20=20

Please correct me if I am wrong. Any other comments are welcome too.


You are receiving this mail because:
  • You are the assignee for the bug.
= --15270557690.82A9a784e.6243-- --===============0022936684== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============0022936684==--