Closed Bug 586946 Opened 14 years ago Closed 11 years ago

WebGL textures not rendering in some environments

Categories

(Core :: Graphics: CanvasWebGL, defect)

x86
Windows 7
defect
Not set
major

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: opensource, Unassigned)

References

()

Details

User-Agent:       Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3) Gecko/20100805 Firefox/4.0b3
Build Identifier: Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3) Gecko/20100805 Firefox/4.0b3

http://learningwebgl.com/lessons/lesson06/index.html

...renders fine on all systems. However, on a Windows 7 system with an ATi HD 3200 series...

http://learningwebgl.com/lessons/lesson07/index.html

...does not.

A diff of the two shaders can be found on this page: http://learningwebgl.com/blog/?p=684

Reproducible: Always

Steps to Reproduce:
1. Use a HD 3200 GPU on Win 7 with latest drivers
2. Visit http://learningwebgl.com/lessons/lesson07/index.html
Actual Results:  
No textures are visible, the fragment shader appears to always return white. All subsequent tutorials on this site have the same issue.

Expected Results:  
Textures are visible on the model


Further information about my card:

Supports OpenGL 3.0 (not sure about ES)
Running against 8.632.1.1 Catalyst drivers
Please, update your graphic driver to the latest version 10.7 :
http://game.amd.com/us-en/drivers_catalyst.aspx?p=win7/windows-7-32bit

Then check if this problem happens again.
Already did, before filing the report.

Interestingly, the OpenGL drivers are dated as being Aug 09, whereas the DirectX ones are very recent. I suspect the latest ones for this device, therefore, quite old.
Component: General → Canvas: WebGL
Product: Firefox → Core
QA Contact: general → canvas.webgl
I missed this report and only found it by accident, because it was uncategorized.

Can you do two things:

* Go to about:config and set webgl.shader_validator to true, if it's not already set.

* check in the JS Error Console (Ctrl+Shift+J) if it mentions any errors that could be webgl-related; paste them all here.
Nothing logged in the error console - shader validator is active :(
Be aware that the graphic driver version recommanded by OEM, by "Windows 7 update" and by the graphic card manufacturer can be different. Usually, from the older one to the recent one.

You say that you are running 8.632.1.1 catalyst driver and that it is up-to-date.
May be it is according to "Windows 7 update", but the last Catalyst suite version is now 10.8 and contains 8.762 catalyst driver which is compatible of your HD 3200 GPU and now fully supports OpenGL ES 2.0
http://www2.ati.com/relnotes/catalyst_108_release_notes.pdf

Install it and check if the problem is gone.

Check also if a bios update is required by your OEM because sometimes it includes a video bios update.
As previously stated:

The official 10.8 Catalyst MSI as provided by ATi does not install any more recent OpenGL drivers than those specified on my system. It does install more recent DirectX drivers, however. I have attempted this procedure twice and verified the results against multiple tools. DX is running recent catalyst drivers, OpenGL is not.

There is no relevant BIOS update, the system is up-to-date. Monitor drivers and all other OEM drivers are also up to date where appropriate.

Given the scenario, I hypothesis the ATi-provided MSI has not have been updated to reflect the fact that the HD 3200 is supposedly compatible.
There is no good reason why a texture would unexpectedly render as white.

If it were black I'd suspect a texture completeness issue (sections 3.8.2/3.7.10 in the ES spec) but white? AFAICS this can only be a driver bug. Especially as it only happens with ATI cards.

OK to mark as invalid since it's a driver bug? Unless you can think of a reasonable workaround or you think there is something else going on here.
Note: in bug 594310 we are investigating another issue in these demos which _might_ have something to do with why they give strange results on ATI (would still be a ATI bug but there's hope to avoid hitting it).
If it is a driver bug there's something about WebGL that triggers it. The system in question is used as a gaming platform for OpenGL apps without issue - in fact it's my OpenGL development machine. Other than that, I don't have any objections to it being labelled as invalid.
(In reply to comment #9)
> If it is a driver bug there's something about WebGL that triggers it. The
> system in question is used as a gaming platform for OpenGL apps without issue -
> in fact it's my OpenGL development machine. Other than that, I don't have any
> objections to it being labelled as invalid.

ok, let's keep this open and investigate. It just is very strange because we're not doing very special things here compared to what a game would do. The only thing I can think of is that we're rendering to an off-screen FBO. Since this is your OpenGL development machine, it could be interesting if you tried to write a simple OpenGL program rendering something with a texture onto an off-screen FBO... other than that I'm pretty much clueless. You can see the implementations for most of the WebGL functions in this file:

http://hg.mozilla.org/mozilla-central/file/d510e199203c/content/canvas/src/WebGLContextGL.cpp
I can confirm that OpenGL (or at least, the OpenTK C# wrappers) works fine in that capacity. I wonder if the 'white' is the typical diffuse on the models - since most of demos I've seen have evolved from one or two sources. I'll have to knock up a test case to check that hypothesis.
Is this still an Issue for that Box mentioned in Comment 0 + maybe newer Driver-/Firefox Version?

FWIW, my "Legacy 4850" with Version 12.6 is WFM against Firefox 4 up to recent Nightlies.
Flags: needinfo?(opensource)
Unfortunately I don't have access to this system anymore, so unable to provide further information :(
Flags: needinfo?(opensource)
Then I'd suggest closing this bug; maybe WORKSFORME.
No traffic here in the last nine months, so I'm going to mark this WFM.
Status: UNCONFIRMED → RESOLVED
Closed: 11 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.