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: Tue, 22 May 2018 06:36:55 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0199398887==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B44F6E0C3 for ; Tue, 22 May 2018 06:36:55 +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 --===============0199398887== Content-Type: multipart/alternative; boundary="15269710150.cdE0e6.27413" Content-Transfer-Encoding: 7bit --15269710150.cdE0e6.27413 Date: Tue, 22 May 2018 06:36:55 +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 #4 from wangjingbin --- In OpenGL ES spec, GL_RGB32F is texture supported format, but is not color renderable format, it means that texture with this format could been sample= d in shader. But it cannot be as an attachment for a framebuffer object, cannot = be as a render target. In OpenGL spec, GL_RGB32F is texture supported format, and is also color renderable format. This case could run normally on Nvidia GPU, but not on Intel GPU. OpenGL context of Nvidia GPU could support GL_RGB32F format texture as a render target. OpenGL context of Intel GPU hardware does not support this format texture as a render target. Trace mesa code to look for clue [some related code in mesa] _mesa_test_framebuffer_completeness function in fbobject.c, follows specs to check completeness of fbo on OpenGL context or OpenGL ES context, there is = no error. But it is not enough, it also need to call the ctx->Driver.ValidateFramebuffer() function to ask the driver to make hardware-specific validation/completeness checks. intel_validate_framebuffer function in intel_fbo.c, makes hardware-specific validation/completeness checks. intel_screen_init_surface_formats in brw_surface_formats.c, initializes whi= ch format supports texture sample, texture filter and renderable, etc. A table in isl_format.c, named "format_info", specifies support for surface(texture, renderbuffer, vertex buffer) formats across the various hardware generations. The table shows that GL_RGB32F format is not supporte= d as render target for all hardware generations. It suggest that it depend on hardware's capacity.=20 In order to figure out it whether depends on hardware's capacity. I have run ANGLE for Texture2DTest.CopySubImageFloat_RGBA_RGB, The follow of this test= is same as attachment file. It run successfully on windows Opengl. So need mesa team to help investigate it --=20 You are receiving this mail because: You are the assignee for the bug.= --15269710150.cdE0e6.27413 Date: Tue, 22 May 2018 06:36:55 +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 # 4 on bug 10660= 1 from wangjingbin
In OpenGL ES spec, GL_RGB32F is texture supported format, but =
is not color
renderable format, it means that texture with this format could been sample=
d in
shader. But it cannot be as an attachment for a framebuffer object, cannot =
be
as a render target.
In OpenGL spec, GL_RGB32F is texture supported format, and is also color
renderable format.

This case could run normally on Nvidia GPU, but not on Intel GPU. OpenGL
context of Nvidia GPU could support GL_RGB32F format texture as a render
target. OpenGL context of Intel GPU hardware does not support this format
texture as a render target.

Trace mesa code to look for clue

[some related code in mesa]
_mesa_test_framebuffer_completeness function in fbobject.c, follows specs to
check completeness of fbo on OpenGL context or OpenGL ES context, there is =
no
error. But it is not enough, it also need to call the
ctx->Driver.ValidateFramebuffer() function to ask the driver to make
hardware-specific validation/completeness checks.
intel_validate_framebuffer function in intel_fbo.c, makes hardware-specific
validation/completeness checks.
intel_screen_init_surface_formats in brw_surface_formats.c, initializes whi=
ch
format supports texture sample, texture filter and renderable, etc.
A table in isl_format.c, named "format_info", specifies support f=
or
surface(texture, renderbuffer, vertex buffer) formats across the various
hardware generations. The table shows that GL_RGB32F format is not supporte=
d as
render target for all hardware generations.

It suggest that it depend on hardware's capacity.=20

In order to figure out it whether depends on hardware's capacity. I have run
ANGLE for Texture2DTest.CopySubImageFloat_RGBA_RGB, The follow of this test=
 is
same as attachment file. It run successfully on windows Opengl.

So  need mesa team to help investigate it


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