Open
Bug 1279855
Opened 9 years ago
Updated 3 years ago
WebGL texImage2D "expensive reformat"
Categories
(Core :: Graphics: CanvasWebGL, defect, P3)
Tracking
()
UNCONFIRMED
People
(Reporter: jonas.schlatter, Unassigned)
Details
(Whiteboard: [gfx-noted])
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0
Build ID: 20160611004009
Steps to reproduce:
Using texImage2D in conformity to https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
Actual results:
yields
Error: WebGL: texImage2D: Chosen format/type incured an expensive reformat: 0x1908/0x1401
translating to: GL_RGBA to GL_UNSIGNED_BYTE is an expensive reformat.
Expected results:
This should not happen, since unsigned_byte is the type to handle rgba format within webGL? (None of the other types matched, either)
Comment 2•9 years ago
|
||
Jeff is our WebGL expert.
Flags: needinfo?(nical.bugzilla) → needinfo?(jgilbert)
Whiteboard: [gfx-noted]
Comment 3•9 years ago
|
||
(In reply to jonas.schlatter from comment #0)
> User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101
> Firefox/49.0
> Build ID: 20160611004009
>
> Steps to reproduce:
>
> Using texImage2D in conformity to
> https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/
> texImage2D
>
> gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
>
>
> Actual results:
>
> yields
>
> Error: WebGL: texImage2D: Chosen format/type incured an expensive reformat:
> 0x1908/0x1401
>
> translating to: GL_RGBA to GL_UNSIGNED_BYTE is an expensive reformat.
>
>
> Expected results:
>
> This should not happen, since unsigned_byte is the type to handle rgba
> format within webGL? (None of the other types matched, either)
It's not actually an error. It's supposed to be a warning. (the c++ is GenerateWarning)
I'll take a look at making this actually a warning.
If we're hitting this, there's not getting around the truth: An expensive reformat is occurring.
This could be because the original format is YUV, in which case there *is* no direct upload format that can be selected.
Component: Untriaged → Canvas: WebGL
Flags: needinfo?(jgilbert)
Product: Firefox → Core
Comment 4•9 years ago
|
||
In Firefox Beta (V50), the problem gets even worse. I get three warnings whenever I try to use texImage2D with an HTMLImageElement:
Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow.util.js:965:16
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow.util.js:965:16
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401
These errors even show up in the WebGL conformance tests:
https://www.khronos.org/registry/webgl/sdk/tests/conformance/more/functions/texImage2DHTML.html
What are we supposed to do to get rid of these errors?
Comment 5•9 years ago
|
||
`srcFormat` here is BGRA8, and BGRA8->RGBA8 isn't cheap, so we warn about it.
This perf warning should probably be behind a dev pref.
Updated•8 years ago
|
Priority: -- → P3
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•